问答题

使用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(......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题