当前位置:首页 > C++ - Exercise12实验报告
学生实验报告
学生姓名 实验项目 学号 同组人 □必修 □选修 □演示性实验 □验证性实验 □操作性实验 □综合性实验 实验地点 指导教师 实验仪器台号 实验日期及节次 5.12.2011
一、实验综述
1、实验目的及要求
1.判断下列主函数程序哪一句错误,给出原因,应如何修改? #include
void setx(int n){x=n;}
void showx(){cout< class derived:private base{ //私有派生类 int y; public: void sety(int m){y=m;} void showy(){cout< void main() { derived obj; obj.setx(10); //? obj.sety(20); //? obj.showx(); //? obj.showy(); //? } 2. 首先完成下列person的定义,然后从person类派生一个教师类,新增的属性有:专业,职称,主讲课程(一门),并为这些属性定义相应的方法。(本题不需要设计构造函数) class person{ char *Name; int Age; char Sex; public: void Init(char *name, int age, char sex); //初始化对象 ~person(); char *GetName() {return Name;} int GetAge() {return Age;} char GetSex() {return Sex;} void show(); }; 3. 建立一般的类building,用来存储楼房的层数、房间数、建筑面积。以其为基础建立派生类housing、officebuilding,使它们分别存储卧室和浴室的数量、灭火器和电话的数目。试编制程序,建立类housing、officebuilding的对象,并输出它们的有关数据。 (本题不需要设计构造函数) 4. 定义一个钟表类,数据成员有时、分、秒,成员函数包括设置时间和显示时间。再从钟表类派生出闹钟类,新增数据成员有响铃时间,成员函数包括响铃、显示响铃时间和设置响铃时间。(本题不需要设计构造函数) 提示:响铃可用下列函数完成。 void Alerm() // 转义字符'\\a'完成响铃 { cout << \} 2、实验仪器、设备或软件 电脑、VC++6.0 二、实验过程(实验步骤、记录、数据、分析) 1.解答:错误原因见相应行的后面注释,修改:直接把私有派生改为共有派生 #include class base //基类 int x; public: void setx(int n){x=n;} void showx(){cout< class derived:public base{ //私有派生类 (修改为共有派生类) int y; public: void sety(int m){y=m;} void showy(){cout< void main() { derived obj; obj.setx(10);//对于private inherit,派生类的对象不能访问基类任何成员 obj.sety(20);// OK obj.showx();//对于private inherit,派生类的对象不能访问基类任何成员 obj.showy();// OK } 2.源程序 #include class person{ char *Name; int Age; char Sex; public: void Init(char *name, int age, char sex); //初始化对象 ~person(); char *GetName() {return Name;} int GetAge() {return Age;} char GetSex() {return Sex;} void show(); }; void person::Init(char *name, int age, char sex) { Name=new char[strlen(name)+1]; strcpy(Name,name); Age=age; Sex=sex; cout<<\} person::~person() { delete []Name; cout<<\} void person::show() { cout << \姓名:\cout << \年龄:\cout << \性别:\ } class teacher:public person { char *Speciality; char *Zhicheng; public: void Init2(char *name, int age, char sex,char *speciality,char *zhch); char *GetSpeciality() {return Speciality;} char *GetZhicheng() {return Zhicheng;} void display(); }; void teacher::Init2(char *name,int age,char sex,char *speciality,char *zhch) { Init(name,age,sex); Speciality=new char[strlen(speciality)+1]; Zhicheng=new char[strlen(zhch)+1]; strcpy(Speciality,speciality); strcpy(Zhicheng,zhch); cout<<\} void teacher::display() { show(); cout << \专业:\cout << \职称:\} void main() { teacher t; t.Init2(\张三\程序设计语言\副教授\t.display(); } 运行结果:
共分享92篇相关文档