C++实验三 派生类与继承.doc_第1页
C++实验三 派生类与继承.doc_第2页
C++实验三 派生类与继承.doc_第3页
C++实验三 派生类与继承.doc_第4页
C++实验三 派生类与继承.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三 派生类与继承班级:123班 姓名:朱广金 学号:122536一、实验目的1、学习类的继承,能够定义和使用类的继承关系。2、学习派生类的声明与定义方法。3、掌握类的定义和对象的声明。4、熟悉公有派生和私有派生的访问特性。5、掌握派生类构造函数和析构函数的执行顺序。6、掌握利用访问声明调整基类成员在派生类中的访问属性。*/*二、试验内容1、下面的程序可以输出ASCII字符与所对应的数字的对照表。修改下列程序,使其可以输出字母a到z(或任意两个字符间)与所对应的数字的对照表。*#include/*iomanip的作用:*主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样.以下是一些常见的控制函数的:*dec 置基数为10 相当于%d*hex 置基数为16 相当于%X*oct 置基数为8 相当于%o*setfill( c ) 设填充字符为c*setprecision( n ) 设显示有效数字为n位*setw( n ) 设域宽为n个字符*这个控制符的意思是保证输出宽度为n。*#include using namespace std;/基类class tablepublic:/构造函数 table(char p,char q) i=p; j=q; void ascii(void);protected: char i; char j;/void table:ascii(void)int k=1; for (;i=j;i+)coutsetw(4)i(int)i;if(k)%12=0) /每12个换行coutn;k+;coutn;/派生类class der_table:public table public:der_table(char p,char q,char *m):table(p,q)/派生类的构造函数c=m;void print(void);protected:char *c;/void der_table:print(void)coutcn;table:ascii();/主函数int main()der_table obl(a,z,ASCII value-char);obl.print();return 0;/*提示:修改后的主程序为:int main()der_table ob(a,z,ASCII value-char);ob.print();return 0;*/*2、已有类Time和Date,要求设计一个派生类Birthtime,*它继承类Time和Date,并且增加一个数据成员Childname用于表示小孩的名字,*同事设计主程序显示一个小孩的出生时间和名字。*/*#includeusing namespace std;#include/class Time public:Time(int h,int mi, int s)hours=h;minutes=mi;seconds=s;void display()cout出生时间:hours时minutes分seconds秒endl;protected:int hours; int minutes;int seconds;/class Datepublic: Date(int m,int d,int y) month=m; day=d; year=y; void display() cout出生年月:year年month月day日endl; protected: int month; int day; int year; ;/class BirthTime:public Time,public Datepublic:BirthTime(int h,int mi, int s,int m,int d,int y,string n):Time(s,h,m),Date(m,d,y) name=n;void display() cout姓名为:nameendl;private:string name;/int main() BirthTime child(36,34,12,11,30,2013,小明); child.display();child.Date:display();child.Time:display();return 0;*/*3、编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。*#includeusing namespace std;#include/class Personpublic:Person(int nu,string na,string se,int ag)number=nu;name=na;sex=se;age=ag;void display()cout编号: numberendl;cout姓名: nameendl;cout性别: sexendl;cout年龄: ageendl;private:int number; /编号string name; /姓名string sex; /性别int age; /年龄;/class Student:public Personpublic:Student(int nu,string na,string se,int ag,string fa,double sc):Person(nu,na,se,ag) faculty=fa;score=sc;void display()cout系别: facultyendl;cout成绩: scoreendl;private:string faculty; /系别double score; /成绩;/class Teacher:public Personpublic:Teacher(int nu,string na,string se,int ag,string po,string de):Person(nu,na,se,ag)position=po;department=de;void display()cout职称: positionendl;cout部门: departmentendl;private:string position; /职称string department; /部门;/int main()Student a(122536,小明,男,19,计算机院,87);Teacher b(122533,王明,男,33,特级教师,教务处);cout学生endl;a.Person:display();a.display();cout老师endl;b.Person:display();b.display();return 0;/*4、给出下面的基类:class area protected: double height; double width; public: area(double h,double w) height=h; width=w; virtual double getarea()=0;【要求】(1)建立基类area的俩个派生类rectangle与isosceles, 让每一个派生类都包含一个函数getarea(),分别用来返回矩形与三角形的面积。用 构造函数对height与width进行初始化。(2)写出主程序,用来求height与width分别为10.0与5.0的矩形面积,以及求height与width分别为4.0与6.0的三角形面积。(3)要求通过使用基类指针访问虚函数的方法(即运行时的多态性)分别求出矩形和三角形面积。*/*#includeusing namespace std;#include/class areaprotected: double height; double width;public: area(double h,double w) height=h; width=w; virtual double getarea()=0;/class rectangle:virtual public areapublic:rectangle(double h,double w):area(h,w)h1=h;w1=w; virtual double getarea() cout矩形的面积为:h1*w1endl; return h1*w1;private:double h1;double w1;/class isosceles: virtual public areapublic:isosceles(double h,double w):area(h,w)h2=h;w2=w;virtual double getarea()cout三角形的面积:(h2*w2)/2endl;return (h2*w2)/2;private: double h2;double w2;/int main()rectangle a(10.0,5.0);a.getarea();isosceles b(4.0,6.0);b.getarea();return 0;*/*5、编写一个程序,递归调用被继承的基类成员函数,实现求素数的功能。*/#includeusing namespace std;/class Numberpublic: Number() Number(int i) m=i; bool isprime(int i);protected: int m;/bool Number:isprime(int i) if(m=2) return 1; if(m=1|m%2=0) return 0; if(m%i!=0) retu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论