使用VC6打开考生文件夹下的工程test22_3,此工程包含一个源程序文件test22_3.cpp,其中定义了用于表示考生的类 CStudent和它的派生类CGraduateStudent,但它们的定义并不完整。请按要求完成下列操作,将程序补充完整。

admin2010-02-08  64

问题 使用VC6打开考生文件夹下的工程test22_3,此工程包含一个源程序文件test22_3.cpp,其中定义了用于表示考生的类 CStudent和它的派生类CGraduateStudent,但它们的定义并不完整。请按要求完成下列操作,将程序补充完整。
   (1)定义CStudent的构造函数,函数含参数nm,它是char型的指针数据,请使用字符串函数将类数据成员name初始化。请在注释“//**1**”之后添加适当的语句。
   (2)完成类CStudent的成员函数void addscore(double sc)的定义,将类数据成员score加上参数sc,请在注释“//**2**”之后添加适当的语句。
   (3)添加类CGraduateStudent的成员函数void addpaper(int d)的定义,将int型的参数d的值加到类的数据成员paper上,请在注释“//**3**”之后添加适当的语句。
   (4)调用对象sdt的成员函数addpaper使得该考生的论文数量变为10,将请在注释“//**4**”之后添加适当的语句。
   输出结果如下:
       Student Hanson
       (Advisor:MichaelPhong)
       Total paper is 10
   注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
   源程序文件test22_3.cpp清单如下:
       #include<iostream.h>
       #include<string.h>
       class CStudent
       {
       private:
        char name[30];
        int code;
        double score;
       public:
        CStudent(char* nm)
       {
       //**1**
       }
        CStudent(){}
        void putname(char* nm){ strcpy(name,nm);}
        void putcode(int d){code=d;}
        void putscore(double sc){score=sc;}
        void getname(char* nm){strcpy(nm,name);}
        double getcode(){return code;)
        double getscore(){return score;}
        void addscore(double sc)
       {
       //**2**
       }
       };
       class  CGraduateStudent:public CStudent
       {
       private:
        char advisor[30];
        int paper;
       public:
        void putadvisor(char*nm){ strcpy(advisor, nm);}
        void getadvisor(char*nm){ strcpy(nm, advisor);}
        void putpaper(int d){ paper=d;}
       //**3**
        int getpaper(){ return paper;}
       };
       void main()
       {
        CGraduateStudent sdt;
        sdt.putname("Hanson");
        sdt.putadvisor("MichaelPhong");
        sdt.putpaper(8);
        //**4**
        char csname[30];
        sdt.getname(csname);
        char caname[30];
        sdt.getadvisor(caname);
        cout<<"Student"<<csname<<endl;
        cout<<"(Advisor:"<<caname<<")"<<endl;
        cout<<"Total paper is"<<sdt.getpaper()<<endl;
       }

选项

答案(1) strcpy(name,nm); (2) score+=sc; (3) void addpaper(int d){paper+=d;} (4) sdt.addpaper(2);

解析 本题主要考查考生对于类的定义和使用对象调用成员函数的理解,注意认真的阅读主程序,弄清楚(4)中paper的原值为8。
转载请注明原文地址:https://jikaoti.com/ti/7MkiFFFM
0

最新回复(0)