C10-01 · Bảng điểm

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

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ên hoang gia HAN được in thành Hoang 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 in RONG.

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: (*)


Đang tải...