




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三 派生类与继承、实验目的1、学习类的继承,能够定义和使用类的继承关系。2、学习派生类的声明与定义方法。3、掌握类的定义和对象的声明。4、熟悉公有派生和私有派生的访问特性。5、掌握派生类构造函数和析构函数的执行顺序。6、掌握利用访问声明调整基类成员在派生类中的访问属性。 二、试验内容1、下面的程序可以输出 ASCII 字符与所对应的数字的对照表。修改下列程 序,使其可以输出字母a到z (或任意两个字符间)与所对应的数字的对照表。 class tablepublic:table(int p)i=p;void ascii(void);protected:int i;void table:asc
2、ii(void)int k=1;for (;i<127;i+)cout<<setw(4)<<i<<" "<<(char)i; if(k)%12=0) cout<<"n"k+;cout<<"n"class der_table:public tablepublic:der_table(int p,char *m):table(p)c=m;void print(void);protected:char *c;void der_table:print(void)co
3、ut<<c<<"n"table:ascii();int main()der_table obl(32,"ASCII value-char");obl.print();return 0; 提示:修改后的主程序为: int main()der_table ob('a','z',"ASCII value-char"); ob.print();return 0; 修改后的程序:(蓝色字体为改动处) #include<iostream> using namespace std;
4、#include<iomanip>class tablepublic:table(int p) i=p;void ascii(void);protected:int i;void table:ascii(void)int k=1;for (;i<=122;i+)cout<<setw(4)<<i<<" "<<(char)i;if(k)%13=0) cout<<"n"k+;cout<<"n"class der_table:public tablepu
5、blic:der_table(int p,char *m):table(p)c=m;void print(void);protected:char *c;void der_table:print(void)cout<<c<<"n"table:ascii();int main()der_table obl(97,"ASCII value-char") obl.print();return 0;实现结果:'C:'Win do ws?y stem J2Cebugl 11 r*x?'卜 口-|j 矿|l适hSCI1
6、 u*Luechar9? a ?6 b ?9 c 10 d 101 e 102 F 103 g 194 h10&i10&j 107 k 10S 1丄09nIIS n 1L1 o 112 p 113 q 114 ” 115 e 11G t 117 u.119u£19w 120 x 121 y122areis anLj key to continue2、已有类Time和Date,要求设计一个派生类Birthtime,它继承类Time和Date, 并且增加一个数据成员Child name用于表示小孩的名字,同事设计主程序显示一 个小孩的出生时间和名字。class Timep
7、ublic:Time(i nt h,i nt m, int s)hours=h;minu tes=m;sec on ds=s;void display。cout«"出生时间:"vvhoursvv"时"<<mi nu tes<<"分"<<seco ndsvv'秒"<<e ndl;protected:int hours, minu tes,sec on ds;class Datepublic:Date(i nt m,i nt d,i nt y)month=m; d
8、ay=d; year=y;void display()cout«"出生年月:"vvyearvv"年"<<month<<"月"<<day<<"日"<<endl;protected:int month,day,year;实现程序如下 :#include<iostream>using namespace std;#include<string>class Timepublic:Time(int h,int m, int s)ho
9、urs=h;minutes=m;seconds=s;void display()cout«"出生时间:"vvhoursvv"时"<<mi nu tes<<"分"<<seco ndsvv'秒 "<<endl;protected:int hours,minutes,seconds;class Datepublic:Date(int mo,int d,int y)month=mo;day=d;year=y;void display()cout«"
10、出生年月:"vvyearvv"年"<<month<<"月"<<day<<"日"<<''protected:int month,day,year;class Birthtime:public Time,public Datepublic:Birthtime(int h,int m, int s,int y,int mo,int d,string name):Time(h,m,s),Date(mo,d,y) Childname=name;void dis
11、play()cout«"姓名:"Childname«''private:string Childname;int main()Birthtime peo(11,30,26,1993,12,26,陈珊珊");peo.Birthtime:display();peo.Date:display();peo.Time:display();return 0;实现结果:3、编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、 年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将 编号、姓名、性别、年龄的输入和
12、显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。#in clude<iostream>using n amespace std;#in clude<stri ng>class Pers onpublic:Pers on (i nt nu ,stri ng n a,stri ng se,i nt ag)nu mber=nu;n ame=na;sex=se;age=ag;void display。cout«"编号:"< <nu mber«e ndl;coutv<"姓名:
13、"<<name«endl;coutvv"性另廿:"vvsexvvendl;cout«"年龄:"vvagevve ndl;private:int number;string name;string sex;int age;class Student:public Personpublic:Student(int nu,string na,string se,int ag,string maj,float sco):Person(nu,na,se,ag) major=maj;score=sco;void displa
14、y1()Person:display();cout«"系另 y:"vvmajorvve ndl;cout«"成绩:"<<score<<e ndl;private:string major;float score;class Teacher:public Personpublic:Teacher(int nu,string na,string se,int ag,string sit,string dep):Person(nu,na,se,ag) situation=sit; department=dep;voi
15、d display2()Person:display();coutvv"职称:"vvsituati onvven dl;cout«"部门:"vvdepartment<<endl;private:string situation;string department;int main()Stude nt stu(122591,陈珊珊","女",20,"计算机",100);stu.display1();Teacher tea(2012冰 音","女",30,&
16、quot;教授","教务处");tea.display2();return 0;'LProqrann Ales fx86'MicrcsoftVsljI StudiQryPriojec:5inmDebijgnnm-ex?'匚UHI机 处 3rits墨r湘W.tocontinue4、给出下面的基类:class areaprotected:double height;double width;public:area(double h,double w)height=h;width=w;virtual double getarea()=0;【要求】
17、(1) 建立基类area的俩个派生类rectangle与isosceles让每一个派生类都 包含一个函数getarea(),分别用来返回矩形与三角形的面积。用构造函数对height 与width进行初始化。(2) 写出主程序,用来求height与width分别为10.0与5.0的矩形面积, 以及求height与width分别为4.0与6.0的三角形面积。(3) 要求通过使用基类指针访问虚函数的方法(即运行时的多态性)分别 求出矩形和三角形面积。源代码:#include<iostream>using namespace std;class areaprotected:double h
18、eight;double width;public:area(double h,double w)height=h;width=w;virtual double getarea()=0;class rectangle:public areapublic:rectangle(double h,double w):area(h,w)double getarea()cout<<" 长 为 "<<height<<" 宽 为 "<<width<<" 的 矩 形 面 积 为:"v<height*widthv<e ndl;return 0;class isosceles:public areapublic:isosceles(doub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国气动钉枪行业投资研究分析及发展前景预测报告
- 2025年中国调料行业发展潜力预测及投资战略研究报告
- 电器可行性报告范文
- 2025年中国智能控制器行业发展趋势及投资前景预测报告
- 2025-2030年中国建材预制构件项目投资可行性研究分析报告
- 名表培训课件
- 建筑工程施工合同
- 中国音乐播放器行业发展监测及市场发展潜力预测报告
- 轮纹特胶悬剂行业深度研究分析报告(2024-2030版)
- 中国汽车防锈市场竞争格局及投资战略规划报告
- 2024-2030年中国小型涡喷发动机行业竞争格局展望及投资策略分析报告
- 《酒店营销推广方案》课件
- 大学生积极心理健康教育知到智慧树章节测试课后答案2024年秋运城职业技术大学
- 危险化学品安全管理领导小组及工作职责
- 工程建筑劳务合作协议范本
- 房屋优先购买权申请书
- 留学销售话术培训
- 酒店安全生产月培训
- 高中美术高中美术鉴赏《抒情与写意-文人画》课件
- 110kV变电站施工组织总设计
- DB32T-中小学生健康管理技术规范 第1部分:心理健康编制说明
评论
0/150
提交评论