iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
1
自我挑戰組

學習30天的c++系列 第 8

DAY8 學習30天的c++

物件導向程式
使用結構化程式可以輕鬆的管理一個或少數個班級的成績,可是使用結構化程式管理多數個班級時,主程式會變得非常龐大難以管理。如下圖只管理兩個班級的成績,主程式就令人覺得有點複雜,若是管理全校的成績時,則主程式就令人更複雜,更何況全校成績時,那只能計算各班總分與平均,要再計算較成績或同年級及高分同學,這麼一來主程式會變得很龐大,造成管理與除厝的困擾。
以下結構化程式
函數

     `void setPoint(int arrray[35]){                           
         //設定全班成績
     }`
     `void showPoint(int arrray[35]){
         //顯示全班成績
     }`
     `void totalPoint(int arrray[35]){
         //計算並顯示全班成績
     }`
     `void average(int arrray[35]){
         //計算並顯示全班平均
     }`

        主程式
        `int main(int argc,char** argv){
        int chiC[35];               //C班中文
        int mathC[35];               //C班數學
        int engC[35];               //C班英文
        setPoint(chiC);
        setPoint(mathC);
        setPoint(engC);
        showPoint(chiC,mathC,engC);
        totalPoint(chiC,mathC,engC);
        average(chiC,mathC,engC);
        int chiD[35];               //D班中文
        int mathD[35];               //D班數學
        int engD[35];               //D班英文
        setPoint(chiD);
        setPoint(mathD);
        setPoint(engD);
         showPoint(chiD,mathD,engD);
        totalPoint(chiD,mathD,engD);
        average(chiD,mathD,engD);
        system("PAUSE");
        return EXIT_SUCCESS;
        }`

        將上圖結構化程式改成下圖物件導向,主程式就變得簡單且清楚。即使在計算同一年級的總分與平均,
        比較同年級不同科不同班的成績,找出成績或同年級及高分同學。要管理各年級成績時,可定義一個
        Grade類別,且令Grade類別繼承Point類別的資料和函數。
        
        物件導向程式
        
        類別
        `class Point
        {
        private:
         int chinese[35];    
        int math[35];    
        int english[35];  
        public:
        void setPoint(){                           
         //設定全班成績
        }
        void showPoint(){
         //顯示全班成績
        }
        void totalPoint(){
         //計算並顯示全班成績
        }
        void average(){
         //計算並顯示全班平均
        }
        };`
        主程式
        `int main(int argc,char** argv){
        Point C;    //C班物件
        C.setPoint();
        C.showPoint();
        C.totalPoint();
        C.average;
        
        int main(int argc,char** argv){
        Point D;    //D班物件
        D.setPoint();
        D.showPoint();
        D.totalPoint();
        D.average;
        .
        .
        .
        .
        .
        system("PAUSE");
        return EXIT_SUCCESS;
        }`

上一篇
DAY7 學習30天的c++
下一篇
DAY9學習30天的c++
系列文
學習30天的c++30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言