- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计(C++)
课程设计报告
班级:191152
学号:20151001188
姓名:夏体凡
日期:2016年7月4日
目录
一、原创性申明…………………………………………3
二、题目与要求…………………………………………4
三、需求分析…………………………………………….4
四、概要设计……………………………….…………..5
五、 详细设计…………………………………….……5
六、测试……………………………………………….….7
七、结论 …………………………………………….…..9
八、附录 ………………………………………….….11
原创性声明:
本人声明报告者中的内容和程序为本人独立完成,引用他人的文献、数据、 图件、资料均已明确标注出。除标注内容外,不包含任何形式的他人成果,无侵 权和抄袭行为,并愿意承担由此而产生后果。
作者签字: 时间:
指导教师评语:
课程成绩:
程序界面 (10 分)
程序结构和功能 (40 分)
程序安全和效率 (40 分)
报告 (10 分)
指导教师签字: 时间
题目与要求
设计如下类,其功能和部分成员如下:
Object: 抽象类,所有的物体都有价值(profit)属性;Point: 点的位置三维空间;Line Segment(线段),Rectangle,Cuboid, Square,Cube,Circle,Cylinder
功能:能够实现上述物体的移动(move),放大(zoomin),缩小(zoomout),大小比较(compare),打印物品信息(cout编号、面积、容积和价值)等操作,且所有物品的对象实现自动编号。
移动: Line类对象移动其中点,Rectangle、Square和Circle: 移动重心,Cubiod、Cube和Cylinder: 移动底面重心
放大和缩小:以倍数为参数,进行相应组件的放大和缩小
判断:空间内某一点(Point)是否在另一物体内;线段(Line)是否和另一物体相交
默认比较方式:Line: 比较长度,Rectangle、Square和Circle:比较面积
Cubiod、Cube和Cylinder: 比较体积。同维度(或不同维度)空间内的不同类物体之间可进行大小比较。 相等返回0,小于返回-1、大于返回1
再设计一个容器类(Container). 容器具有最大容量属性。
功能: 能容纳以上定义的各种3D物品(Cylinder,Cube和Cuboid), 实现添加一个物品(add),移除容器里的一个物品(remove),重载[], 排序:不改变物品在容器中的位置(下标),把物品的id按照排序结果(根据物品某一关键字)返回 ;
附加功能:给定一定数量的物品(假设物品的总容量超过容器最大容量),挑选部分装入容器中,设计算法实现所装物品的总价值最大。
需求分析
1.本次上机题目主要运用继承和派生建立多个类,这些类都主要一个点类point继承而来,然后每一个类设计一个头文件和一个源文件,然后最后设计一个操作类container,用来处理移动(move),放大(zoomin),缩小(zoomout),大小比较(compare),打印物品信息(cout编号、面积、容积和价值)等操作,最后设计一个主函数,用来控制整个系统。
2.系统环境、运行要求:Visual?Studio?2015?
概要设计
从设计的要求可知,要有一个最底层的抽象基类即Object类,然后就是多个类之间的关系,Point继承Object——然后Line继承Point,添加length新成员;Circle继承Point,添加新成员R;Square继承Point,添加L1新成员;Rectangle继承Point,添加L1,L2新成员;最后Cylinder继承Circle,添加height新成员;Cube继承Square,添加high新成员;Cuboid继承Rectangle,添加high新成员。这样就完成了继承与派生类的设计。除了这些类,还必须有操作,否则就没有意义了,要实现上述物体的move,zoomin,zoomout,compare,打印物品信息等操作,这里要用到运行时的多态,即需要基类的指针,将在下一条详细讲,这里要做的是函数成员的设计,这要求在每个类要有同名函数,即(overriding?a?virtual?function),返回值类型,参数类型等都得一样,而且基类的要是virtual?function。再
您可能关注的文档
最近下载
- (建筑工程管理)砌砖及基础工程技术交底.pdf VIP
- DB11∕T 1748-2020 物体表面新型冠状病毒样本采集技术规范.pdf
- 三年级劳动技术浙教版下册:任务二 煮鸡蛋 蒸馒头-教学课件.pptx
- (高清版)-B-T 34590.10-2022 道路车辆 功能安全 第10部分:指南.pdf VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 江苏省建筑工程施工质量验收资料 .docx
- 2025新修订《监察法实施条例》培训课件.pptx VIP
- NB∕T 25043.6-2016 核电厂常规岛及辅助配套设施建设施工技术规范 第6部分:管道.pdf
- 2025年四年级上册数学口算天天练100题.pdf VIP
- 《小篮球多种形式的抛接球游戏》第一课时教学设计.pdf VIP
文档评论(0)