Danh sách sinh viên (Đề 1)
Mỗi sinh viên trong một khóa được coi là một đối tượng gồm những thuộc tính sau:
- Họ và tên.
- Mã học sinh (xâu gồm \(9\) kí tự số).
Điểm sinh viên là đối tượng con của sinh viên, có thêm một thuộc tính là điểm trung bình chung hệ \(4\).
Viết lớp sinh viên, điểm sinh viên (kế thừa từ lớp sinh viên), nhập các thông tin của sinh viên rồi thực hiện những yêu cầu dưới đây:
\(a)\) Tìm kiếm theo mã sinh viên và xác định học lực của sinh viên đó, biết học lực được xếp theo điểm hệ \(4\) như sau:
- Từ \(3.6\) đến \(4.0\): Xuất sắc;
- Từ \(3.2\) đến cận \(3.6\): Giỏi;
- Từ \(2.5\) đến cận \(3.2\): Khá;
- Từ \(2.0\) đến cận \(2.5\): Trung bình;
- Từ \(1.0\) đến cận \(2.0\): Yếu;
\(b)\) In ra danh sách sinh viên tăng dần theo thứ tự chữ cái của họ và tên, hai người trùng họ tên thì so sánh theo mã sinh viên.
Đặc tả đầu vào
Dòng đầu tiên chứa \(2\) số nguyên \(a, b\) (chỉ nhận giá trị \(0\) hoặc \(1\)), với ý nghĩa số nào bằng \(0\) thì bỏ qua phần xuất kết quả ở câu tương ứng.
Dòng tiếp theo chứa số nguyên \(n\), số sinh viên.
\(3*n\) dòng tiếp theo, mỗi \(3\) dòng đặc tả các thông tin của một sinh viên như sau:
- Dòng thứ nhất chứa mã sinh viên.
- Dòng thứ hai chứa họ và tên sinh viên (chỉ gồm các chữ cái tiếng Anh, không có dấu cách ở đầu và cuối).
- Dòng thứ ba ghi điểm sinh viên.
Dòng cuối cùng chứa mã sinh viên cần tìm kiếm.
Đặc tả đầu ra
Câu \(a\): Nếu tồn tại mã sinh viên, xuất ra các thông tin của sinh viên dưới dạng MaSinhVien - Ho Va Ten - Diem - HocLuc
, học lực có thể là "Xuat sac", "Gioi", "Kha"
"Trung binh", "Yeu". Nếu không tồn tại xuất ra "Khong tim thay sinh vien";
Câu \(b\): Xuất ra \(n\) dòng, mỗi dòng là thông tin của một sinh viên với định dạng như câu a.
Ghi chú: Máy chấm sẽ tự động bỏ qua những dòng trống và những dấu cách ở cuối dòng.
Chú ý: Để bỏ qua buffer '\n' trong C++, sử dụng cin.ignore(1e9, '\n')
, không sử dụng fflush(stdin)
.
Tỉ lệ test
\(60\%\) số test có \(a = 1, b = 0\).
\(40\%\) số test có \(a = b = 1\).
\(n \le 1000\) trong mọi test.
Ví dụ
Đầu vào:
1 1
4
123456789
Lul Lul Lul
4
135901355
Uasjbd AAkks Dfn
2.5
301598350
Lfpfie Aijeb Add
3
929363656
Skjals Ajbjds Aa
3
123456789
Đầu ra:
123456789 - Lul Lul Lul - 4 - Xuat sac
301598350 - Lfpfie Aijeb Add - 3 - Kha
123456789 - Lul Lul Lul - 4 - Xuat sac
929363656 - Skjals Ajbjds Aa - 3 - Kha
135901355 - Uasjbd AAkks Dfn - 2.5 - Kha
Comments
Em sai đâu vậy ạ :<<<
12/20 Test
Buồn :(
#define float -> double
AC luôn a :<<<idollllll
quá đỉnh :))
bổ sung thêm ví dụ điểm < 1 được không a
e phải đảm bảo yêu cầu OOp lớp sinh viên, điểm sinh viên (kế thừa từ lớp sinh viên) là đc nhé dưới 1 in ra gì cũng không quan trọng
mãi mới AC khổ thật, fix 1 hồi vẫn chưa biết mình sai ở đâu a ạ ._.
ý em ấy là đề bài ko có trường hợp gpa < 1 mà trong test lại có
bài này test cũng bịp thế nào ý t để < 1 ko in gì cũng AC mà hình như < 1 thì in "Yeu" là đc hay sao á
Cho em hỏi bài của em sai ở đâu vậy ạ :<
e để điểm sinh viên (kế thừa từ lớp sinh viên) xem chứ lỗi này a cũng ko rõ
dạ vâng ạ, nãy giờ e fix mãi ko biết sai chỗ nào :<
Ad sửa lại đề đi ạ em cout << "Khong tim thay sinh vien"; mới AC