C10-01 · Bảng điểm
Xem dạng PDFĐề
Bài đầu của chuỗi bài dự án Chương 10 (Quản lý điểm sinh viên). Đọc danh sách lớp theo khung XS-07 và in bảng điểm theo đúng thứ tự nhập, mỗi sinh viên một dòng
ma Ho Ten diem_hp loai
trong đó:
- Họ tên được chuẩn hóa: các từ cách nhau đúng một dấu cách, mỗi từ viết hoa chữ đầu, còn lại viết thường (
hoang gia HAN→Hoang Gia Han). - Điểm học phần = 0,4 × điểm quá trình + 0,6 × điểm cuối kỳ, làm tròn 1 chữ số thập phân (hàm
tinh_diem_hp), in đúng 1 chữ số thập phân. - Loại xếp trên điểm học phần đã làm tròn (hàm
xep_loai): A nếu ≥ 8,5; B nếu ≥ 7,0; C nếu ≥ 5,5; D nếu ≥ 4,0; còn lại F.
Dòng có mã không hợp lệ (mã hợp lệ gồm đúng 8 chữ số) bị bỏ qua lặng lẽ, không in gì. Nếu không có sinh viên nào (n = 0, hoặc mọi dòng đều mã sai) thì in một dòng RONG.
Dữ liệu vào
- Dòng đầu: số nguyên n.
- n dòng tiếp theo, mỗi dòng dạng
ma ho ten diem_qt diem_ck: phần đầu là mã, hai phần cuối là hai điểm, mọi thứ ở giữa là họ tên.
Kết quả
Bảng điểm như mô tả ở trên (mỗi sinh viên hợp lệ một dòng, theo thứ tự nhập), hoặc một dòng RONG.
Ràng buộc
- 0 ≤ n ≤ 1000.
- Mã: 1–12 ký tự, chỉ gồm chữ số và chữ cái Latin; hợp lệ khi gồm đúng 8 chữ số. Các mã hợp lệ không trùng nhau.
- Họ tên: 1–10 từ, mỗi từ 1–20 chữ cái Latin không dấu, viết hoa thường tùy ý; giữa các phần của dòng có thể có nhiều dấu cách; không có khoảng trắng ở đầu và cuối dòng.
- Mỗi điểm trong đoạn [0; 10], viết dạng số nguyên (
8) hoặc có đúng một chữ số thập phân, dấu chấm hoặc dấu phẩy (7.5,8,8).
Gợi ý
Dùng lại nguyên văn các hàm của quan_ly.py (mục 10.3): tinh_diem_hp, xep_loai, chuan_hoa_ho_ten, ma_sv_hop_le, tach_dong, tao_sinh_vien, dong_bang_diem, bang_diem; phần đọc danh sách là khung chung của mục 10.3.4. Nộp một tệp: chép các hàm lên đầu tệp, không dùng import quan_ly.
Ví dụ 1
Dữ liệu vào:
3
23010001 Nguyen Van An 7.5 8.0
2301002 Tran Thi Binh 6.5 7.0
23010005 hoang gia HAN 5 3
Kết quả:
23010001 Nguyen Van An 7.8 B
23010005 Hoang Gia Han 3.8 F
Ví dụ 2
Dữ liệu vào:
0
Kết quả:
RONG
Giải thích ví dụ
- Ví dụ 1 (ví dụ của sách): An có 0,4 × 7,5 + 0,6 × 8,0 = 3,0 + 4,8 = 7,8, loại B. Dòng
2301002 …có mã 7 chữ số nên bị bỏ qua, không in gì. Han được 0,4 × 5 + 0,6 × 3 = 3,8, loại F; họ tênhoang gia HANđược in thànhHoang Gia Han. - Ví dụ 2: lớp không có ai nên in
RONG. Lưu ý: n > 0 mà mọi dòng đều mã sai cũng phải inRONG.
Nguồn trong sách: Bài C10-01, mục 10.5, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long · Mức: (*)