- Mã:
- 1921_OOP_Mid_Remake_2_2
- Tên:
- Câu 2
- Dạng thi:
- oi
- Thang điểm:
- 5 điểm
- Giới hạn thời gian:
- 1 giây
- Giới hạn bộ nhớ:
- 256 MB
- Được tạo bởi:
- khiet
Câu 02: (5.0 đ): Xây dựng lớp đối tượng Student như yêu cầu trên. Bổ sung cho lớp Student các hàm sau:
-
Quá tải toán tử [ ] để lấy
giá trị theo Mã số sinh viên
-
Quá tải toán tử < theo
yêu cầu sau:
o
Sinh viên nào có AvgScore nhỏ hơn thì nhỏ hơn
o
Nếu hai sinh viên có cùng AvgScore thì sinh viên nào
có MSSV theo thứ tự từ điển nhỏ hơn thì nhỏ hơn
(Thứ tự từ điển giữa hai chuỗi:
Chuỗi nào có độ dài ngắn hơn thì có thứ tự từ điển nhỏ hơn, nếu hai chuỗi có độ
dài bằng nhau thì xét: Giả sử hai chuỗi s và t có cùng độ dài, nếu tồn tại một
vị trí i (1 <= i <= length) sao cho s[i] < t[i] (xếp
theo thứ tự trong bảng mã ASCII) thì s < t. Ví dụ:
zz
< aaaaaa (zz có độ dài là 2 còn aaaaaa có độ dài là 6)
zza < zzb ( zza có độ dài bằng zzb ta xét thấy vị
trí thứ 3 a < b nên zza < zzb)
Gợi ý: C++ cho phép so sánh 2 chuỗi theo
thứ tự từ điển
)
Input:
- Dòng đầu tiên chứa số nguyên c và n lần lượt là số lượng sinh viên và số lượng bài trong bài thi
-
c dòng tiếp theo mỗi dòng chứa lần lượt Mã số sinh viên, theo
sau mã số là danh sách điểm của sinh viên kết thúc bằng -1
-
Dòng cuối chứa
một chuỗi s và số nguyên r lần lượt là mã số sinh viên và thứ tự cần truy vấn theo xếp
hạng
Output:
-
Xuất
thông tin của sinh viên có mã số s
-
Xuất id của sinh viên có thứ tự r sau khi đã sắp xếp
(Xem ví dụ để hiểu rõ)
Ví dụ 1:
Input
Output
4 5
S01 5 5.5 2.5 3.5 6.5 -1
S02 1.3 2.35 3 -1
S03 9 10 6.55 7 8.5 -1
S04 3 4 5.5 8 5.6 1.5 -1
S03 2
S03-5-8.21
S01
Ví dụ 2:
Input
Output
4 5
S04 3 4 5.5 8 5.6 1.5 -1
S01 5 5.5 2.5 3.5 6.5 -1
S03 5.5 5 3.5 2.5 6.5 -1
S02 1.3 2.35 3 -1
S03 2
S03-5-4.6
S01
Theme :
Mời bạn soạn code