Bài học cùng chủ đề
Báo cáo học liệu
Mua học liệu
Mua học liệu:
-
Số dư ví của bạn: 0 coin - 0 Xu
-
Nếu mua học liệu này bạn sẽ bị trừ: 2 coin\Xu
Để nhận Coin\Xu, bạn có thể:
Lý thuyết về Thực hành thiết kế chương trình theo mô đun SVIP
1. Tính điểm tổng hợp của các vận động viên
❓Đề bài: Trong một cuộc thi đấu thể thao khu vực dạng Sea Games, các cầu thủ tham gia giải đấu ở các bộ môn khác nhau và do sự phức tạp của các trận đấu nên ban tổ chức (BTC) đã quyết định nhập thông tin kết quả thi đấu của các vận động viên vào các tệp văn bản, sau đó các tệp này được chuyển về trung tâm để xử lí. Mỗi bộ môn thể thao sẽ có số lượng ban giám khảo khác nhau. Mỗi tệp dữ liệu lưu thông tin sẽ có khuôn dạng gồm nhiều dòng, mỗi dòng là thông tin của một vận động viên thi đấu tại một bộ môn nào đó. Mỗi dòng của tệp thông tin sẽ bao gồm:
- Mã số của vận động viên;
- Điểm cho của các giám khảo có thể là số nguyên hoặc số thập phân theo thang điểm 10, giữa các điểm số đều có dấu cách.
Theo quy định của BTC, quy định tính điểm chung cho mỗi vận động viên như sau:
- Điểm tổng hợp của mỗi vận động viên là trung bình cộng điểm của ban giám khảo. Tuy nhiên trong mỗi ban giám khảo luôn có hai giám khảo đặc biệt, hai giám khảo này có hệ số tổng hợp là 2, trong khi các giám khảo khác có hệ số 1.
- Theo quy định của BTC thì các giám khảo đặc biệt sẽ ở vị trí đầu tiên và cuối cùng của danh sách.
- Ở tất cả các bộ môn thể thao số lượng thành viên ban giám khảo phải lớn hơn 2.
Hãy tính điểm tổng hợp của các vận động viên từ tệp văn bản SeaGames.inp. Kết quả ghi ra tệp ketqua.out có dạng như sau:
- Tệp sẽ có nhiều dòng, số dòng bằng đúng số dòng của tệp đầu vào.
- Trên mỗi dòng ghi mã của vận động viên và điểm tổng hợp tương ứng. Yêu cầu ghi điểm tổng hợp với hai chữ số sau dấu phẩy.
a) Phân tích tổng quát
Chương trình có thể chia thành ba công việc tương đối độc lập như sau:
Mô đun 1: Đọc dữ liệu từ tệp.
Mô đun 2: Xử lí dữ liệu đã đọc ở mô đun 1.
Mô đun 3: Ghi dữ liệu đã xử lí ra tệp theo yêu cầu.
Các mô đun sẽ được thiết kế một cách độc lập. Chương trình chính sẽ tổng hợp và kết nối các mô đun.
b) Thiết kế mô đun nhập dữ liệu
Dữ liệu sẽ được nhập từ tệp SeaGames.inp và được đưa vào hai mảng:
- Mảng DS là danh sách mã số của các vận động viên.
- Mảng Diem tương ứng với mỗi vận động viên từ mảng thứ nhất, mỗi phần tử của mảng thứ hai là dãy các điểm số mà ban giám khảo chấm cho vận động viên này.
Mô đun 1 được thiết lập bằng hàm nhapDL() với tham số đầu vào là tên tệp dữ liệu và trả lại hai mảng.
c) Thiết kế mô đun xử lí dữ liệu chính
Mỗi vận động viên sẽ tương ứng với một dãy các điểm số được lấy từ mảng Diem.
- Hàm diem_gk(d) tính điểm tổng hợp các giám khảo từ dãy các điểm. Chú ý theo yêu cầu thì các giám khảo đầu tiên và cuối cùng có hệ số 2 nên cần tính điểm các giám khảo này hai lần.
- Hàm Xuly(B) tính toán điểm tổng hợp cho tất cả các vận động viên với dãy đầu vào là mảng Diem. Hàm này sẽ sử dụng hàm diem_gk() đã thiết lập ở phần trên. Kết quả tính toán là một dãy điểm tổng hợp và là giá trị trả lại của hàm này. Kết quả là dãy kq.
d) Thiết kế mô đun đưa kết quả ra
Hàm ghiDL(fout, A, B), trong đó fout là tên tệp dữ liệu đầu ra, A là mảng danh sách các mã số của vận động viên, B là mảng ghi kết quả điểm tổng hợp của các vận động viên.
Câu hỏi:
@206003765702@@206003766497@
Bạn có thể đăng câu hỏi về bài học này ở đây