西南科技大学C++实验作业2——继承派生多态_代码

目录

一、实验效果预览

 二、实验要求

三、实现代码

目录结构

book.h

book.cpp

booktype.h

borrow.h

borrow.cpp

library.h

library.cpp

student.h

student.cpp

main.cpp


一、实验效果预览

 二、实验要求

作业2:继承派生多态

目 的:

1) 巩固类的定义,成员变量、成员方法的定义;

2) 巩固类的对象的定义,对象对成员变量、成员方法的访问;

3) 掌握类的继承和派生的使用;

4) 掌握多态的应用(尤其是虚函数多态)。

5) 实现一个合理的操作符重载(可选)。

要 求:

1)认真阅读实验指导书实验三和实验四内容,单人完成;

2)依据自己之前作业1所选参考,不得进行更换。即延续作业1所选参考,保留作业1组合或依赖关系,进一步进行扩展优化 ,加入基类和派生类,虚函数设计,操作符重载(可选)。

3)提交材料包括:对分易上提交作业源码(把.h和.cpp文件压缩成一个压缩包上传)与文档作业。

题目1:小学多边形面积、周长计算练习

在上一个继承、派生实验基础上进行扩展优化设计,功能与上一次实验基本相似,程序能够自动的为学生出计算几何图形面积周长的题目,并统计学生的完成成绩。

1) 用户通过键盘输入每次练习的题目数。

2) 随机生成要计算的多边形类型(正方形,长方形,圆形,三角形,梯形等)

3) 随机生成多边形的基本信息(长,宽,高,半径等)。

4) 通过键盘输入计算的面积值、周长值。

5) 程序计算多边形的面积,并对比输入值。

6) 汇总成绩并输出。

7) 用户可检查和回看所做题目。

问题分析

根据需求分析父类和子类中是否存在一些功能操作可以设计成为虚函数,或者可以进行操作符重载的设计与实现,如计算面积,周长等虚函数,大于,小于等操作符重载。在题库类中优化设计,包含基类指针数组,将多种几何图形题目对象统一到基类指针数组或动态数组(vector),一个统一的数据结构下来,优化之前需要多种子类对象数组的设计。该题目主要涉及到的知识点有:组合、继承、派生、虚函数多态,操作符重载。

编程要求

1) 程序至少包括组合、继承、派生、虚函数多态。

2) 可以使用new 和delete建立类对象和释放类对象。

3) 界面提示友好,给出菜单选项,及输入提示(由于程序是给小学生使用,所以提示信息必须详细易懂,如果图示更好)。

题目2:狼吃羊

在上一个继承、派生实验基础上进行扩展优化设计,扩展该程序为一个狼吃羊,羊吃草模拟,大灰狼吃小绵羊,羊吃草。所有大灰狼和小绵羊都在青青草原中生活。系统首先初始化大灰狼们和小绵羊们的基本信息。经过一段时间的自动运行。查看当前系统的基本情况。

1) 每个大灰狼和小绵羊都具有位置信息,性别、年龄等基本信息。

2) 大灰狼和小绵羊都有一定的生存规则,如运动规则,繁殖规则(年龄、性别),死亡规则(年龄),捕食规则(可以通过位置判定可以捕食,小绵羊可以逃跑)等。

3) 程序初始化时,需要初始化大灰狼和小绵羊的数量,随机生成每个生物的基本信息。并打印输出。

4) 通过键盘输入运行时间。

5) 程序根据运行时间运行,大灰狼和小绵羊按照自己的生存规则运行。

6) 程序需要输出生存期间的重要事件(如捕食、逃脱、繁殖等)。

7) 运行结束,输出当前青青草原中大灰狼和小绵羊的基本信息(数量,基本信息)。

问题分析

根据需求分析父类和子类中是否存在一些功能操作可以设计成为虚函数,可以进行操作符重载的设计与实现(可选),如可以设计捕食、死亡等虚函数,可以在之前的基础上优化捕食等虚函数,捕食的依赖关系设计中传参可以考虑传递基类指针和基类引用,使得其扩展性更强。在类的设计中增加生态系统或者草原类的设计,包含多个狼,羊,草的对象,并将狼,羊,草不同的种类的生物对象统一到基类指针数组(生物对象指针)或动态数组下来,统一为一个数据类型的数组。该题目主要涉及到的知识点有:组合、继承、派生、多态。

编程要求

1) 程序至少包括继承、派生、虚函数多态。

2) 可以使用new 和delete建立类对象和释放类对象。

3) 界面提示友好,给出菜单选项,及输入提示。

题目3:图书馆管理系统

实现一个简单的图书馆管理系统,管理维护已有图书资源,图书资源有不同的类型,

有一般图书,杂志,电子资源等。不同资源有不同的属性和操作。

1) 增加新的图书或资源

2) 增加已有图书或资源的数量

3) 显示某一图书或资源情况,根据资源类型不同显示的信息也不一样。

4) 显示所有图书或资源情况。

5) 减少已有图书或资源的数量。

6) 删除某一图书或资源。

问题分析:

根据需求分析父类和子类中是否存在一些功能操作可以设计成为虚函数,或者可以进行操作符重载的设计与实现(可选),如图书或资源的显示信息等虚函数。将图书馆设计为一个组合类,图书馆类包含各种资源对象,优化设计,图书馆类包含基类(资源类)对象指针数组或动态数组(vector),将多种子类的对象统一到基类指针数组的数据结构下进行统一处理,利用基类指针调用虚函数,各个子类对象不同的功能仍然能够发挥出来。该题目主要涉及到的知识点有:组合、继承、派生、虚函数多态,操作符重载多态。

编程要求

1) 程序至少包括组合、继承、派生、虚函数多态。

2) 可以使用new 和delete建立类对象和释放类对象。

3) 界面提示友好,给出菜单选项,及输入提示。

题目4:简单图形绘制系统

利用EasyX库实现一个简单的图形绘制系统,可以绘制不同的图形。

1) 根据不同的输入选择绘制相应的形状。

2) 给绘制形状的填充颜色

问题分析:

根据需求分析父类和子类中是否存在一些功能操作可以设计成为虚函数,如绘制图形设计为纯虚函数,在各种子类图形中去实现真正的绘制。将系统画布设计为一个组合类,接收输入消息部分,使用鼠标事件进行绘制,该组合类组织已经绘制的图形对象,优化设计,该类包含基类(图形类)对象指针数组或动态数组(vector)&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值