欢迎来到天天文库
浏览记录
ID:38698391
大小:64.96 KB
页数:6页
时间:2019-06-17
《实验三继承和类的派生》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++与数据结构实验报告实验三类的派生与继承实验目的和要求1掌握继承和派生类的概念。2掌握派生类对基类的继承。3了解多继承。实验内容1.编写一个程序,其中有一个书类book,其数据包括书号、书名、定价、出版社及出版时间:有一个作者类author,其数据成员包括姓名、年龄和写作时间,每个类都有相应的输入输出。以此两个为基类派生出图书查询卡card,并增加一个数据成员表示书籍系统名称,以及一个可以显示系统名称、书名、作者、作者年龄、出版时间、出版社和定价等数据的函数。2.设计一个大学的类系统,学校中有学生、教师,每种人员都有自己的特性,他们
2、之间有相同的地方(以person类为基类,有姓名、编号),又有各自不同的特性(学生:专业、平均成绩;教师:职称、工资)。利用继承机制定义这个系统中的各个类,要求输入姓名等信息后再将这些信息输出。实验原理:1、继承与派生的概念及目的;2、派生类大的声明方式、构成以及访问属性;3、多继承的声明方法;4、含有子对象的派生类的声明方式以及执行顺序;实验内容一:编程思想:编程过程中考虑到过程较为复杂,我采用了分步、分块编程的方法,使得程序的功能逐步地实现。程序的基本框架如下:Time类book类author类card类第一步:因为考虑到book和
3、author中都需要输入和时间有关的变量,所以将时间作为它们共同的基类,向它们传递时间变量的属性。Time类是一个比较基本的类的建立,在第一章中已经可以较为熟练地掌握。第二步:实现书籍基本信息的输入和输出。此步中用到了继承,因为此类中需要建立出版时间,所以建立了一个Time类的对象:bpubt。在Book类中设计数据的输入输出函数,并在C++与数据结构实验报告输入输出函数中通过对象bpubt调用时间类的输入输出函数。编程过程中,Book类的功能通过以下代码实现,并检查运行结果无误。C++与数据结构实验报告#include4、m>#include#includeusingnamespacestd;classTime{private:intday;intmonth;intyear;public:Time(intd=0,intm=0,inty=0){day=d;month=m;year=y;}voidsetin(){cout<<"请输入时间:"<>day>>month>>year;}voidsetout(){cout<5、k:publicTime{private:floatbp;intbnum;stringbname;stringbpubl;Timebpubt;public:voidsetin(){cout<<"请输入书的简单情况:"<>bnum>>bname>>bp>>bpubl;bpubt.setin();}voidsetout(){cout<6、book1;book1.setin();book1.setout();system("PAUSE");return0;}运行结果:C++与数据结构实验报告在编写过程中遇到字符串的输入问题,通过调用头文件#include得以解决。第三步:在编写好Book类以及处理好Book类与Time类之间的关系后,author类的处理就变得比较简单。同样,设计好author类的输入输出函数,在输入输出函数中通过建立Time类writime来调用Time类的输入输出函数。第四步:建立card类,其中包含card类自身的输入输出函数。同7、时,建立card类和Book类、author类之间的继承、派生关系。在card类中,通过建立Book和author类来实现对于这两个基类的输入输出函数的调用。C++与数据结构实验报告第五步:建立主函数main(),在主函数中建立card类的对象,并实现对于对象输入输出函数的调用。程序代码:C++与数据结构实验报告#include#include#includeusingnamespacestd;classTime{private:intday;intmonth;intyear;pu8、blic:Time(intd=0,intm=0,inty=0){day=d;month=m;year=y;}voidsetin(){cout<<"请输入时间:"<>day>>month>
4、m>#include#includeusingnamespacestd;classTime{private:intday;intmonth;intyear;public:Time(intd=0,intm=0,inty=0){day=d;month=m;year=y;}voidsetin(){cout<<"请输入时间:"<>day>>month>>year;}voidsetout(){cout<5、k:publicTime{private:floatbp;intbnum;stringbname;stringbpubl;Timebpubt;public:voidsetin(){cout<<"请输入书的简单情况:"<>bnum>>bname>>bp>>bpubl;bpubt.setin();}voidsetout(){cout<6、book1;book1.setin();book1.setout();system("PAUSE");return0;}运行结果:C++与数据结构实验报告在编写过程中遇到字符串的输入问题,通过调用头文件#include得以解决。第三步:在编写好Book类以及处理好Book类与Time类之间的关系后,author类的处理就变得比较简单。同样,设计好author类的输入输出函数,在输入输出函数中通过建立Time类writime来调用Time类的输入输出函数。第四步:建立card类,其中包含card类自身的输入输出函数。同7、时,建立card类和Book类、author类之间的继承、派生关系。在card类中,通过建立Book和author类来实现对于这两个基类的输入输出函数的调用。C++与数据结构实验报告第五步:建立主函数main(),在主函数中建立card类的对象,并实现对于对象输入输出函数的调用。程序代码:C++与数据结构实验报告#include#include#includeusingnamespacestd;classTime{private:intday;intmonth;intyear;pu8、blic:Time(intd=0,intm=0,inty=0){day=d;month=m;year=y;}voidsetin(){cout<<"请输入时间:"<>day>>month>
5、k:publicTime{private:floatbp;intbnum;stringbname;stringbpubl;Timebpubt;public:voidsetin(){cout<<"请输入书的简单情况:"<>bnum>>bname>>bp>>bpubl;bpubt.setin();}voidsetout(){cout<6、book1;book1.setin();book1.setout();system("PAUSE");return0;}运行结果:C++与数据结构实验报告在编写过程中遇到字符串的输入问题,通过调用头文件#include得以解决。第三步:在编写好Book类以及处理好Book类与Time类之间的关系后,author类的处理就变得比较简单。同样,设计好author类的输入输出函数,在输入输出函数中通过建立Time类writime来调用Time类的输入输出函数。第四步:建立card类,其中包含card类自身的输入输出函数。同7、时,建立card类和Book类、author类之间的继承、派生关系。在card类中,通过建立Book和author类来实现对于这两个基类的输入输出函数的调用。C++与数据结构实验报告第五步:建立主函数main(),在主函数中建立card类的对象,并实现对于对象输入输出函数的调用。程序代码:C++与数据结构实验报告#include#include#includeusingnamespacestd;classTime{private:intday;intmonth;intyear;pu8、blic:Time(intd=0,intm=0,inty=0){day=d;month=m;year=y;}voidsetin(){cout<<"请输入时间:"<>day>>month>
6、book1;book1.setin();book1.setout();system("PAUSE");return0;}运行结果:C++与数据结构实验报告在编写过程中遇到字符串的输入问题,通过调用头文件#include得以解决。第三步:在编写好Book类以及处理好Book类与Time类之间的关系后,author类的处理就变得比较简单。同样,设计好author类的输入输出函数,在输入输出函数中通过建立Time类writime来调用Time类的输入输出函数。第四步:建立card类,其中包含card类自身的输入输出函数。同
7、时,建立card类和Book类、author类之间的继承、派生关系。在card类中,通过建立Book和author类来实现对于这两个基类的输入输出函数的调用。C++与数据结构实验报告第五步:建立主函数main(),在主函数中建立card类的对象,并实现对于对象输入输出函数的调用。程序代码:C++与数据结构实验报告#include#include#includeusingnamespacestd;classTime{private:intday;intmonth;intyear;pu
8、blic:Time(intd=0,intm=0,inty=0){day=d;month=m;year=y;}voidsetin(){cout<<"请输入时间:"<>day>>month>
此文档下载收益归作者所有