Nội dung Bài tập
Mã:
1921_OOP_Mid_Remake_1_1
Tên:
Câu 1
Dạng thi:
oi
Thang điểm:
5 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
khiet

Xây dựng lớp Contestant dùng để mô tả thông tin bài làm của một thí sinh trong cuộc thi. Cụ thể:

-          id (string) : Mã số của thí sinh

-          n (int) : Số lượng bài trong cuộc thi

-       scores (int[ ]): Mảng số nguyên dương với n phần tử, với mỗi phần tử i là kết quả của bài thứ i. Có hai trường hợp:

o   Nếu giá trị là -1 : Thí sinh không làm đúng bài thứ i

o   Nếu giá trị khác -1 : Thí sinh làm đúng bài thứ i và giá trị đại diện cho thời điểm thí sinh làm đúng bài thứ i

-          Các phương thức khởi tạo (mặc định, có tham số, sao chép): mặc định id là chuỗi rỗng, n = 0, scores là mảng số nguyên với 15 phần tử

Dựa vào thiết kế lớp đối tượng cơ bản (như hình trên), hãy bổ sung thêm:

-          Hàm getAC(): Trả về số nguyên là số lượng bài đúng của thí sinh

-          Hàm getTime(): Trả về số nguyên là tổng của các thời điểm giải được các bài đúng

Giải thích:

            Giả sử cuộc thi có 5 bài, một thí sinh có kết quả là mảng scores = [-1,20,25,45,-1]

            Bài thứ 1 và bài thứ 5 sai nên giá trị là -1, các bài đúng là 2,3,4 giá trị là 20, 25 và 45 nên đây là các bài đúng. Ứng với mỗi giá trị là thời điểm làm đúng bài của thí sinh

            Vì vậy:

-          Hàm getAC() sẽ trả về kết quả là 3

-          Hàm getTime() sẽ trả về kết quả là 90 (20 + 25 + 45 = 90) (Lưu ý chỉ tính tổng thời điểm của những bài đúng)


Câu 01: (5.0 đ): Xây dựng lớp đối tượng Contestant như yêu cầu trên. Bổ sung cho lớp Contestant các hàm sau:

-          Quá tải toán tử >> và << theo Input và Output bên dưới

Input:

-          Dòng đầu tiên chứa số nguyên cn lần lượt là số lượng thí sinh và số lượng bài của cuộc thi

-          c dòng tiếp theo mỗi dòng chứa lần lượt Mã số thí sinh, theo sau mã số là n số nguyên là thông tin bài làm của mỗi thí sinh theo mô tả bên trên

Output:   

-          Gồm n dòng, mỗi dòng là thông tin của một thí sinh theo thứ tự input với định dạng:

{id}-{getAC()}-{getTime()}

Ví dụ 1:

Input

Output

3 5

TS01 -1 20 40 64 -1

TS02 -1 -1 -1 -1 -1

TS03 5 10 23 34 83

TS01-3-124

TS02-0-0

TS03-5-155


Ví dụ 2:

Input

Output

4 5

TS01 -1 20 40 64 -1

TS02 5 16 25 40 100

TS03 5 10 23 34 83

TS04 -1 25 -1 -1 -1

TS01-3-124

TS02-5-186

TS03-5-155

TS04-1-25


    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận