(十)Student

#include <iostream>
#include <string>

using namespace std;

const int N = 5;   /*課程數(shù)*/
const int M = 2;   /*競(jìng)賽項(xiàng)目數(shù)*/

class Student
{
    protected:
        int stuNo;
        string name;
        double GPA;      /*綜合成績(jī)*/
        int (*grades)[2]; /*各門(mén)課程成績(jī)和學(xué)分*/

    public:
        Student(const int stuNo, const string &name, int grades[][2])
        {
            this -> stuNo = stuNo;
            this -> name = name;
            this -> grades = grades;
        }

        virtual ~Student()
        {

        }

        int getStuNo()
        {
            return stuNo;
        }

        string getName()
        {
            return name;     
        }

        virtual double getGPA() = 0;   //(1)

        double computeWg()
        {
            int totalGrades = 0, totalCredits = 0;

            for(int i = 0; i < N ; i++)
            {
                totalGrades += grades[i][0] * grades[i][1];
                totalCredits += grades[i][1];
            }

            return GPA = (double)totalGrades / totalCredits;
        }
};

class ActStudent : public Student
{
    int Apoints;

    public:
        ActStudent(const int stuNo, const string &name, int gs[][2], int Apoints) : Student(stuNo, name, gs)               //(2)
        {
            this->Apoints = Apoints;
        }

        double getGPA()
        {
            return GPA = computeWg() + Apoints;    //(3)
        }
};

class CmpStudent : public Student
{
    private:
        int (*awards)[2];

    public:
        CmpStudent(const int stuNo, const string &name, int gs[][2], int awards[][2]):Student(stuNo,name,gs)             //(4)
        {
            this -> awards = awards;
        }

        double getGPA()
        {
            int Awards = 0;
            for(int i = 0; i < M ; i++)
            {
                // int a = awards[i][0];
                // int b = awards[i][1];
                Awards += awards[i][0]*awards[i][1];
            }

            return GPA = computeWg() + Awards;    //(5)
        }
};

void print_a(int a[][2], int n, int m)
{
    int i, j;
    
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < m; j++)
            printf("%d ", a[i][j]);
        
        printf("\n");
    }
}

int main()  //以計(jì)算3個(gè)學(xué)生的綜合成績(jī)?yōu)槔M(jìn)行測(cè)試
{
    int g1[][2] = {{80,3}, {90,2}, {95,3}, {85,4}, {86,3}},
        g2[][2] = {{60,3}, {60,2}, {60,3}, {60,4}, {65,3}},
        g3[][2] = {{80,3}, {90,2}, {70,3}, {65,4}, {75,3}}; //課程成絨
    int c3[][2] = {{2,3},  {3,3}};                         //競(jìng)賽成績(jī)
    Student* students[3] =
    {
        new ActStudent (101, "John", g1, 3),           //3為活動(dòng)分
        new ActStudent (102,"Zhang", g2, 0),
        new CmpStudent (103, "Li",   g3, c3), 
    };

    //輸出每個(gè)學(xué)生的綜合成績(jī)
    for(int i = 0; i < 3; i++)
    {
        cout << students[i]->getGPA() <<endl;      //(6)
    }
    // print_a(c3,2,2);
    delete *students;

    return 0;
}

答案:
(1)virtual double getGPA() = 0;

(2)Student(stuNo, name, gs)

(3)computeWg() + Apoints

(4)Student(stuNo,name,gs)

(5)computeWg() + Awards

(6)students[i]->getGPA()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潮模,一起剝皮案震驚了整個(gè)濱河市诗祸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌产上,老刑警劉巖睹晒,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赘那,死亡現(xiàn)場(chǎng)離奇詭異亚铁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)树枫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)直焙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人砂轻,你說(shuō)我怎么就攤上這事奔誓。” “怎么了搔涝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵厨喂,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我体谒,道長(zhǎng),這世上最難降的妖魔是什么臼婆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任抒痒,我火速辦了婚禮,結(jié)果婚禮上颁褂,老公的妹妹穿的比我還像新娘故响。我一直安慰自己傀广,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布彩届。 她就那樣靜靜地躺著伪冰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪樟蠕。 梳的紋絲不亂的頭發(fā)上贮聂,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音寨辩,去河邊找鬼吓懈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛靡狞,可吹牛的內(nèi)容都是我干的耻警。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼甸怕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼甘穿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起梢杭,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤温兼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后式曲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體妨托,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年吝羞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兰伤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钧排,死狀恐怖敦腔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恨溜,我是刑警寧澤符衔,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站糟袁,受9級(jí)特大地震影響判族,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜项戴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一形帮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦辩撑、人聲如沸界斜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)各薇。三九已至,卻和暖如春君躺,著一層夾襖步出監(jiān)牢的瞬間峭判,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工晰洒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朝抖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓谍珊,卻偏偏與公主長(zhǎng)得像治宣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子砌滞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容