版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二 类的继承与派生一、 实验目的1. 掌握类的声明和使用。2. 掌握对象的声明和使用。3. 掌握具有不同访问属性的成员的访问方式。4. 观察构造函数和析构函数的执行过程。5. 学习声明和使用类的继承关系,声明派生类;6. 熟悉不同继承方式下对基类成员的访问控制;二实验内容1. 设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。具有的属性如下:姓名 char name11、编号char number7、性别char sex3、生日birthday、身份证号
2、charid20。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。在测试程序中声明people 类的对象数组,录入数据并显示。2. 从people(人员)类派生出student(学生)类,添加属性:班号char classNO7;从people 类派生出teacher(教师)类,添加属性:职务char pship11、部门char departt21。从student 类中派生出graduate(研究生)类,添加属性:专业char subject21、导师teacher adviser;从gr
3、aduate 类和teacher 类派生出TA(助教博士生)类,重载相应的成员函数,测试这些类。三 . 实验步骤1. 程序代码第一题#include <iostream> #include <string> using namespace std; class Date /日期类 private: int year; int month; int day; public: Date() /默认构造 Date(int y,int m,int d) /带参构造 year=y; month=m; day=d; void set() /设置数据函数 cin>>yea
4、r>>month>>day; void display() /显示函数 cout<<year<<"年"<<month<<"月"<<day<<"日" ; class Person /人员类 private:string name;int num; char sex; Date birthday; char ID18; public: Person() /默认构造 Person(int n,int y,int m,int d,char id18
5、,char s='m'):birthday(y,m,d) num=n; sex=s; strcpy(ID,id); /有默认值的带参构造 Person(Person& p) /拷贝构造 name=;num=p.num; sex=p.sex; birthday=p.birthday; strcpy(ID,p.ID); void input() /输入函数 cout<<"录入数据:"<<endl; cout<<"姓名:"cin>>name;cout<<"
6、编号:" cin>>num; cout<<"性别(m/f):" cin>>sex; cout<<"生日:" birthday.set(); cout<<"身份证号:" cin>>ID; ID18='0' cout<<endl; void output() /输出函数 cout<<"编号:"<<num<<endl; cout<<"姓名:"&l
7、t;<name<<endl;cout<<"性别:"<<sex<<endl; cout<<"生日:" birthday.display(); cout<<endl; cout<<"身份证号:"<<ID<<endl; Person() /析构函数 cout<<" "<<num<<"号人员已经录入"<<endl; ; int main() P
8、erson p1; p1.input(); p1.output(); return 0; 第二题#include <iostream> #include <string> using namespace std; class Date /日期类 private: int year; int month; int day; public: Date() /默认构造 Date(int y,int m,int d) /带参构造 year=y; month=m; day=d; void set() /设置数据函数 cin>>year>>month>
9、>day; void display() /显示函数 cout<<year<<"年"<<month<<"月"<<day<<"日" ; class Person /人员类 private:string name;int num; char sex10; Date birthday; char ID18; public: Person() /默认构造 Person(int n,int y,int m,int d,char id18,char sex10):bir
10、thday(y,m,d) num=n; strcpy(ID,id); /有默认值的带参构造 Person(Person& p) /拷贝构造 name=;num=p.num; birthday=p.birthday; strcpy(ID,p.ID); void input() /输入函数 cout<<"姓名:"cin>>name;cout<<"编号:" cin>>num; cout<<"性别(男/女):" cin>>sex; cout<&l
11、t;"生日:" birthday.set(); cout<<"身份证号:" cin>>ID; ID18='0' cout<<endl; void output() /输出函数 cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl; cout<<"性别:"<<sex<<endl; cout<&l
12、t;"生日:" birthday.display(); cout<<endl; cout<<"身份证号:"<<ID<<endl; Person() /析构函数 /cout<<" "<<num<<"号人员已经录入"<<endl; ; class stduent:public Person char classno7;public:student()cout<<"*"<<endl;
13、 void input()Person:input(); cout<<"输入学号"<<endl; cin>>classno;void getno()Person:output(); cout<<"学号为:"<<classno<<endl;class teacher:public Person char pship11,departt21;public :teacher()cout<<"*"<<endl; void input()Person
14、:input();cout<<"输入职务"<<endl;cin>>pship;cout<<"输入部门"<<endl;cin>>departt;void inputt()cout<<"输入职务"<<endl;cin>>pship;cout<<"输入部门"<<endl;cin>>departt;void getno()Person:output(); cout<<&
15、quot;职务为:"<<pship<<endl;cout<<"部门为:"<<departt<<endl;void output ()cout<<"职务为:"<<pship<<endl;cout<<"部门为:"<<departt<<endl;class graduate:public stduent char subject21, adviser21;public :graduate() cout
16、<<""<<endl;void input()stduent:input();cout<<"输入专业:"<<endl;cin>>subject;cout<<"输入导师:"<<endl;cin>>adviser;void getno() stduent:getno(); cout<<"专业为:"<<subject<<endl; cout<<"导师为:"&l
17、t;<adviser<<endl;class TA :public graduate,teacherpublic :TA() void input()graduate:input();teacher:inputt();void getno() graduate:getno(); teacher:output(); ;int main() Person p1; stduent s;teacher t;graduate g;TA T;cout<<"请依次输入人员数据信息"<<endl;p1.input();cout<<&qu
18、ot;请输入学生数据信息"s.input();cout<<"请输入老师数据信息"t.input();cout<<"请输入研究生数据信息"g.input();cout<<"请输入助教博士数据信息" T.input(); cout<<"人员数据信息为:" p1.output(); cout<<"学生数据信息为:"s.getno();cout<<"老师信息为:"t.getno();cout<<"研究生信息为:"g.getno();cout<<"助教博士信息为:"T.getno(); 2. 调试程序第一次调试,发现没有名字的显示。后来依照其他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 43024.3-2026压电、介电和静电振荡器的测量技术第3部分:频率老化的试验方法
- 全国统考数学二习题集|2024考研(可打印版)
- 2026数学二模拟试卷(真题+答案对照)
- 2026考研数学三考点精练|真题+答案对照
- 2026考研全国统考数学三模拟试卷(含答题卡)
- 江西省上饶市横峰县2026-2027学年四年级数学第一学期期末综合测试试题含解析
- 江淮联考试题及答案高一
- 济南市医保考试题及答案
- 百度保安员考试题及答案
- 河北省邯郸市大名县2027届数学四年级第一学期期末经典模拟试题含解析
- 2026年广西公需科目《人工智能国家战略与政策通识》试题与答案
- 小儿血液系统疾病总论课件
- 自动喷水灭火设施评估报告
- 2026-2031年中国电炸锅行业市场调查与发展战略研究咨询报告
- 2026年国民经济核算考试题含答案
- 2026年共青团入团考试团章专项考核题库与答案
- 新版 【新教材】统编版(2024)七年级上册历史全册重点知识填空练习题(含答案)合集
- 项目安全员任命书
- 2026年唐山市市场监管辅助人员招录试题
- 2026年通信中级工程师(互联网技术)实务试卷及答案
- 2026年中国电信四川分公司校招笔试题及答案
评论
0/150
提交评论