面向对象程序设计剖析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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。再

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档