[Buổi 20][Chuỗi][RDD] Bài 32: Quản lý điểm thi
Quản lý điểm thi
Bối cảnh
Bài toán được mô tả qua yêu cầu và dữ liệu dưới đây.
Yêu cầu
Trường FullHouse Dev muốn quản lý điểm thi của sinh viên. Quy tắc đánh giá như sau:
- Điểm trung bình = (Điểm giữa kỳ × 40%) + (Điểm cuối kỳ × 60%)
- Xếp loại:
- Nếu Điểm trung bình ≥ 9.0: Xuất sắc
- Nếu Điểm trung bình ≥ 7.5: Giỏi
- Nếu Điểm trung bình ≥ 5.0: Trung bình
- Nếu Điểm trung bình < 5.0: Yếu
Hãy nhập thông tin điểm thi của các sinh viên và tính toán điểm trung bình, xếp loại, điểm cao nhất, điểm thấp nhất và điểm trung bình của lớp.
Input
- Dòng đầu ghi số sinh viên (không quá 100 sinh viên)
- Mỗi sinh viên ghi trên 4 dòng:
- Tên sinh viên
- Điểm giữa kỳ
- Điểm cuối kỳ
- Mã sinh viên
Output
Ghi ra danh sách sinh viên đã được tính điểm gồm các thông tin:
- Mã sinh viên
- Tên sinh viên
- Điểm giữa kỳ
- Điểm cuối kỳ
- Điểm trung bình
- Xếp loại
Dòng cuối ghi điểm cao nhất, điểm thấp nhất và điểm trung bình của lớp (theo mẫu trong ví dụ).
Ràng buộc
Đề gốc không nêu ràng buộc riêng.
Ví dụ 1
Input
3
Nguyen Van A
8.5
9.0
SV001
Tran Thi B
7.0
8.0
SV002
Le Van C
4.5
6.0
SV003
Output
SV001 Nguyen Van A 8.5 9.0 8.7 Xuat sac
SV002 Tran Thi B 7.0 8.0 7.6 Gioi
SV003 Le Van C 4.5 6.0 5.4 Trung binh
Diem cao nhat: 8.7
Diem thap nhat: 5.4
Diem trung binh cua lop: 7.23
Giải thích ví dụ
- Đầu vào: Nguyen Van A 8.5 9.0 SV001
- Đầu ra: SV001 Nguyen Van A 8.5 9.0 8.7 Xuat sac
Dòng này hiển thị thông tin chi tiết về sinh viên SV001, bao gồm mã sinh viên, tên, điểm giữa kỳ, điểm cuối kỳ, điểm trung bình và xếp loại. Tổng điểm cao nhất, điểm thấp nhất và điểm trung bình của lớp cũng được tính toán và hiển thị ở dòng cuối.
Cách tính điểm trung bình cho Nguyễn Văn A: Điểm trung bình = (8.5 × 40%) + (9.0 × 60%) = 3.4 + 5.4 = 8.7
Thông tin học tập
- Buổi: B20
- Concepts: std::string/getline, if/else, max/min/average aggregation
- Giới hạn kiến thức: B01-B20
- Time limit: 2 seconds
- Memory limit: 64 MB
- Point: 15
Comments