- 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。再设计一个容器类Container,所有物品的对象实现自动编号。这里的容器要用vector来做,我们在Container类中定义vectorPoint?*?Po数据成员既可实现自动编号又可实现运行时的多态。详细设计在所有的类Point,Line Segment(线段),Rectangle,Cuboid, Square,Cube,Circle,Cylinder中包含一个构造函数,一个析构
文档评论(0)