免費開始練習
司法三等申論題 110年 [檢察事務官電子資訊組] 程式語言

第 一 題

一、以下為 C++定義類別 Student 與 Class 的程式碼,請撰寫一「班級成績計算」的 C++程式,首先讓使用者輸入兩班學生(每班各有 3 位學生)的姓名與國文、英文、數學課的成績,並符合以下的要求:(25 分)  為類別 Class 撰寫一建構元函式,將班上 3 位學生的國文、英文、數學的成績、該班學生成績的平均分數與最高總分設為 0  為類別 Class 撰寫一方法 cal( ),計算該班學生的平均分數  為類別 Class 撰寫一方法 findTop( ),找出該班學生的最高總分與其所在位置  撰寫運算子>多載(overloading)功能,可以比較兩班的最高總分,並回傳是那一班的最高總分較高  撰寫主程式 main( )以驗證此程式的正確性 類別 Student 與 Class 的程式碼如下: class Student { //學生類別定義 public: string name; //學生姓名 int chn,eng,math; //學生國英數成績 }; class Class { //班級類別定義 public: Student student[3]; //每班 3 位學生 double avg; //該班學生的平均分數 int top, top_index; //該班學生的最高總分與其所在位置 public: Class(); //建構元函式將類別內變數初值設為 0 int operator>(Class &win); //定義運算子>的多載,以回傳最高 //總分班級 void cal(void); //計算該班學生的平均分數 void findTop(void); //找出該班學生的最高總分與其所在位置 }; 程式執行範例如下: 第 1 班第 1 位學生名字:大明 請依序輸入他的國英數成績:85 66 92 第 1 班第 2 位學生名字:阿美 請依序輸入他的國英數成績:92 85 78 第 1 班第 3 位學生名字:小凱 請依序輸入他的國英數成績:96 92 90 第 2 班第 1 位學生名字:大雄 請依序輸入他的國英數成績:65 82 72 第 2 班第 2 位學生名字:阿吉 請依序輸入他的國英數成績:98 92 99 第 2 班第 3 位學生名字:小文 請依序輸入他的國英數成績:90 92 95 第 1 班平均成績:86.22 第 2 班平均成績:87.22 最高分在第 2 班是阿吉,總分為 289 分
📝 此題為申論題

思路引導 VIP

本題為典型的 C++ 物件導向與運算子多載實作題。解題時應先完成各個類別方法的實作(包含建構子初始化、成績總計及最大值搜尋),接著針對 operator> 進行多載以比較兩班最高分,最後在 main() 透過迴圈處理資料的輸入輸出,並使用 <iomanip> 格式化輸出以符合範例要求,同時務必於註解中釐清變數的生命週期。

🤖
AI 詳解 AI 專屬家教

【破題】 本題旨在評量 C++ 物件導向程式設計的基本概念,包含類別(Class)的方法實作、建構子(Constructor)的初始設定、運算子多載(Operator Overloading)的應用,以及在主程式中對物件陣列的操作。以下給出符合語法標準且經過格式化的完整 C++ 程式碼。 【程式實作】

▼ 還有更多解析內容

升級 VIP 解鎖