- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2014220902010-赵天豪-实验5
电子科技大学信息与软件工程学院标准实验报告(实验)课程名称:面向对象程序设计C++电子科技大学教务处制表学生姓名:赵天豪学号:2014220902010指导教师:李巧勤实验地点:信软学院实验室实验时间:15/12/21一、实验室名称:信软学院软件实验室二、实验项目名称:基于MFC的C++桌面应用开发三、实验学时:16学时四、实验原理:本次实验基于MFC开发C++桌面应用程序,实现可视化操作。五、实验目的:充分运用所学的C++的数据封装、继承与派生、多态等全部核心内容,补充完整一个基于MFC的应用,使学生能够基本掌握OOA、OOD方法;熟练掌握OOP方法;初步了解基于Windows平台的桌面图形化应用的开发过程,掌握编程工具的使用;初步掌握建模工具的使用;基本掌握阅读、调试程序的能力。六、实验内容:一位小学教师Ken希望完成这样的任务:针对于小学生正在学习四边形(quadrangle)的特性,编写一个小软件,能够随机在屏幕上显示矩形(rectangle)、正方形(square)、平行四边形(parallelogram)、梯形(trapezoid)和菱形(diamond)五种形体之一,同时显示该形体的特性和关键数据(随机产生),学生复习形体的特性,然后根据给出的关键数据计算形体的面积,软件判断其结果的正确性。在学习过程中,软件记录产生的每一个形体,在学生选择不再继续后,将其学习的过程重放一遍,用以重温,加深印象。根据上述描述,需要完成:必做内容根据Ken老师的要求,需要至少编写六个类:Rect //注意:类名不要使用RectangleSquareParallelogramTrapezoidDiamondList(注:这六个类必须以上述名字命名)其中,前五个类用于描述五种形体。五种形体不用顶点坐标的表示形式,而只是简单地用它们的特征值表示。例如:矩形、平行四边形用长和高表示;正方形用边长表示;梯形用两条平行边长和高表示;菱形用两条对象线长表示。要求为这五种形体编写相应的类,每个类的设计要求如下:Quadrangle类必须成为抽象类,是其它形体类的祖先。它拥有如下成员:成员类型是否纯虚name数据/area函数是draw函数是what函数可选其它形体类之间的继承关系请自行拟定。其中,Parallelogram类必须拥有如下虚成员:Width(); //返回宽Height(); //返回高每个形体类必须完成如下操作:设置标志名属性name。五种形体的标志名必须是Parallelogram、Rectangle、Diamond、Trapezoid和Square之一(第一个字母大写,其余小写);重载area()成员;重载draw()成员;重载Width()成员以返回宽;重载Height()成员以返回高;提供Width2()成员以返回第二条平行边长(仅对梯形)List类必须拥有如下成员函数:size();//返回列表中的节点数push_back();//将数据添加到列表末尾operator[];//返回指定下标的数据traverse();//遍历,需要一个访问函数作为参数pop_back() //用来删除列表的最后一个节点,其原型为:void pop_back();重温过程实际上就是遍历List类对象的过程。选作内容List类实际上是一种称为“容器”的类。除了容纳形体指针,其实它还可以容纳任何类型的对象。在本选作内容中,请将List类改为模板类,使其能容纳任何类型的对象;请为List类编写迭代器。要求如下:该迭代器的类名为Iterator;该迭代器必须重载如下运算符:++:迭代器后移!=:两个迭代器比较*:返回迭代器指向节点的数据域中的值,即quad指针。=:两个迭代器的复制+。该运算符函数的原型为:Iterator operator+(int i);其功能为:假设当前迭代器(的内部指针)指向了第k个节点(从0开始计数),那么+运算符返回一个迭代器,该迭代器是在当前迭代器的基础上向后移动i个位置得到的,即该迭代器指向了第k+i个节点。例如:Iterator itr = list.begin() + 5;那么迭代器itr就指向了从列表的头节点往后数第5个结点。为Iterator类编写begin()和end()成员。七、实验器材(设备、元器件):PC计算机、Windows 系列操作系统、Visual Studio2013软件八、实验步骤:1)完成类的设计;2)根据设计结果编写各种形体类的代码;完成学习模式的编程与测试3)完成List类的编码与测试;4)完善程序流程,实现复习模式;5)对前面完成的所有文件进行整合,生成一个解决方案,并进行调试;6)程序优化。九、实验程序及结果分析:Canvas.h:#pragmaonce#includequad.hc
文档评论(0)