首页 课程设计实验报告(史上最全面最详细)

课程设计实验报告(史上最全面最详细)

举报
开通vip

课程设计实验报告(史上最全面最详细)信息科学与技术学院 课程设计报告书 课程名称面向对象程序设计 姓  名 XXXXXXXXXX 班  级 12(6)班 学  号 12263716 指导教师 钱苏斌 XXXXXX信息科学与技术学院 2013.12 题目: 设计图形类,并依据不同的形状类型计算相关图形的几何体表面积与体积。 设计的目的和要求: 一、定义一个抽象类形状shape(),包含输入基本图形的信息函数input()、显示基本图形信息函数disp()、计算表面积的函数area()、计算体积的函数volume(),它们均为纯虚函数。通过继承...

课程设计实验报告(史上最全面最详细)
信息科学与技术学院 课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 报告书 课程名称面向对象程序设计 姓  名 XXXXXXXXXX 班  级 12(6)班 学  号 12263716 指导教师 钱苏斌 XXXXXX信息科学与技术学院 2013.12 题目: 设计图形类,并依据不同的形状类型计算相关图形的几何体 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 面积与体积。 设计的目的和要求: 一、定义一个抽象类形状shape(),包含输入基本图形的信息函数input()、显示基本图形信息函数disp()、计算表面积的函数area()、计算体积的函数volume(),它们均为纯虚函数。通过继承形状类派生出球体类、正方体类、长方体类、圆柱体类。通过继承形状类派生出球体类、正方体类、长方体类、圆柱体类 二、实现功能: 1.设计菜单实现功能选择; 2.输入各种形状信息; 3.显示各种形状信息; 4.计算各种形状的表面积; 5.计算各种形状的体积。 设计的软件环境: 操作系统:Windows XP 应用软件:Visual C++ 6.0 设计过程和内容(可加附页): 一、 案例设计选题 说起案例选题,有一个小插曲,钱老师给我们五个选题,要求宿舍每人要选不一样的,而我们宿舍选题集中又没人愿意调换,故引发大家的不愉快!后来我们一起放下不愉快,坐下来讨论,按个人能力选题,互相给予理解,在轻松快乐的环境下选择了自己满意的题目。 为什么我要说这个插曲呢?因为做一件自己喜欢的事情能让结果事半功倍,编程也是如此。而良好的宿舍氛围更可以提升学习环境,难道不是吗? 言归正传,选择图形类的题目比较有意思,这道题涉及到的知识内容主要是类的继承与派生,另外还有虚函数、构造函数等内容。程序首先建立一个抽象类shape,作为公共接口,建立四个图形类:zft、cft、qt、yzt,公有继承shape类,分别计算各物体的表面积和体积。在主函数中定义各对象,调用各类中的成员函数,输出所要结果。 二、编码过程 使用面向对象的程序设计思想进行 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 ,整个系统涉及五大类信息和操作:形状、球体、圆柱体、正方体、长方体。所以系统的总体框架是shape类、球体类、圆柱体类、正方体类、长方体类的定义(首先定义一个shape类,然后四个类分别公有继承shape类)。按照几何体的形状计算出其表面积和体积。确定程序应该具备如下功能:输入、显示、计算等。要确定几何体的形状可以在主函数中使用一个switch()语句,显示主菜单并根据用户选择的几何体,调用成员函数,从而计算出其表面积和体积。switch()语句,有以下5种情况: 1.正方体 2.长方体 3.球 体 4.圆柱体 5.退出 三、系统框架(函数和类): (1)形状类shape:包含input()、disp()、area()、volume()四个虚函数。 (2)正方体类zft:公有继承shape类,包含input()、disp()、area()、 volume()四个成员函数。 (3)长方体类cft:公有继承shape类,包含input()、disp()、area()、volume()四个成员函数。 (4)球体类qt:公有继承shape类,包含input()、disp()、area()、 volume()四个成员函数。 (5)圆柱体类yzt:公有继承shape类,包含input()、disp()、area()、 volume() 四个成员函数。 shape 【 input() , disp(), area(), volume()】 zftcftqtyzt 【input(), 【input(), 【input(), 【input(), disp(), disp(), disp(), disp(), area(), area(), area(), area(), volume()】 volume()】 volume()】 volume()】 其中: input()为输入函数,disp()为显示函数,area()为计算几何体表面积的函数,volume()为计算几何体体积的函数;下面四个类分别公有继承shape类。 四、编程要点 1.定义纯虚函数: virtual double input() {return 0;} virtual double disp() {return 0;} virtual double volume() {return 0;} virtual double area() {return 0;} 2.求正方体的面积的操作:virtual double area() {return ar*ar*6;} 求正方体的体积的操作:virtual double volume() {return ar*ar*ar;} 求长方体的面积的操作:virtual double volume() {return a*b*c;} 求长方体的体积的操作:virtual double area() {return (a*b+a*c+b*c)*2;} 求球体的面积的操作:virtual double volume() {return 4/3*PI*r*r*r;} 求球体的体积的操作:virtual double area() {return 4*PI*r*r;} 求圆柱体的面积的操作:virtual double volume() {return PI*b*b*h;} 求圆柱体的体积的操作:virtual double area() {return 2*PI*b*b+2*PI*b*h;} 五、系统关键算法流程图: 开始 输出界面 选择图形 圆柱体 球体 长方体 正方体 y 调用函数 要继续吗?[y/n] 显示数据 n 结束 五、遇到的问题及解决方法 1. 重载运算符问题 针对问题一,记得老师在第六章运算符重载中着重强调过。我的程序运算了N遍检查了N遍,就是有7个错误,后来经老师调试才发现是重载运算符这方面错了,问题的要点是在定义输入输出时,运算符函数不可使用using namespace std,机器会报错,而应换成 using std::cout;using std::ostream;using std::istream; using std::cin;using stdendl; 2.设计菜单实现功能选择问题 不知道是直接写一个menue函数呢还是如何?不知所措下,经与同学商讨,知利用switch和do while语句即可实现菜单功能选择。其间,为了完善菜单功能,添加一个“要继续吗?[y/n]”功能,利用do while来实现。 3.Shape s; // 错误, "形状"是抽象类, 不可以实体化 4.class Shape{virtual int Area() = 0; // 后面的=0 表示纯虚函数.}; // 一个类只要其中有任意一个纯虚函数出现, 那就是抽象类了 5.一开始定义的virtual double input() {return 0;} virtual double disp() {return 0;} virtual double volume() {return 0;} virtual double area() {return 0;} 写了return 0 表示他们有返回值,所以后面即使没有什么要返回的值也要写return 0,否则系统报错!如: virtual double input() {cout<<"请输入球体的半径:"; cin>>r;return 0;} //这里没有返回值,但不写return 0 就错。 6.接下来这个不知道算不算错误,当我有好多错时,就一个个进行尝试,原来const double PI=3.1415926;在#include之后,错误显示,而当我把他移到圆柱和球体所需类下时就,就少了一个错误! 7.也有许多粗心的错误,如拼错看错漏写的就不一一列举了。 六、程序清单(源程序) 【shape.h】 # include using namespace std; class shape{ public: shape(){} virtual double input() {return 0;} virtual double disp() {return 0;} virtual double volume() {return 0;} virtual double area() {return 0;} }; class zft : public shape{ public: virtual double input() {cout<<" 请输入正方体的边长:"; cin>>ar;return 0;} virtual double disp() {cout<>a>>b>>c;return 0;} virtual double disp() {cout<>r;return 0;} virtual double disp() {cout<>b>>h;return 0;} virtual double disp() {cout< using namespace std; int main() { zft x1; cft x2; qt x3; yzt x4; int n; char ch; do{ //cout<<"===========我的课程设计四==========="<>n; switch(n) { case 1: x1.input(); x1.disp(); cout<<" 正方体的表面积为: "<>ch; }while(ch=='y'||ch=='Y'); return 0; } 实验结果及分析: 结果: 这个程序应用到了构造函数、虚函数、类的多态性、继承等,程序建立一个抽象类shape,作为公共接口,建立四个图形类:zft、cft、qt、yzt,公有继承shape类,分别计算各物体的表面积和体积。在主函数中定义各对象,调用各类中的成员函数,输出所要结果。通过设计运行程序,从错误中学到了很多,具体的见五中遇到的问题及解决方法,讲得很全面,这里就不再重复,我想强调的一点,即多重继承的问题,C++不允许一个基类被同一个派生类多次直接继承,这会导致编译错误。但是同一个类可能间接地被继承多次。例如: class A(); class B: public A{}; class C: public A{}; class D: public B{}; public C{}; A 相应的类层次如图 : C B D 收获: 对于本次实践,本人实在是获益非浅!C++需要C语言的基础,C语言是上个学期开的课程所以这个学期并没怎么看过,当要开始设计的时候还真不知从哪下手!结果第一次的上机我傻坐着不知道该做什么后来就写了几个小程序。回去以后我想这样不行这样下去还得了!我就重新复习了一遍我们上个学期学习的内容,发觉自已有许多都遗忘了!特别是有指针、函数等操作几乎是一遍空白!温习过后开始听C++课程! 这次设计让我更了解了C++语言而且还得到了用C++语言解决实际问题的宝贵 经验 班主任工作经验交流宣传工作经验交流材料优秀班主任经验交流小学课改经验典型材料房地产总经理管理经验 !我觉得课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节。 我对C++有了更进一步的认识和了解。在不长的时间里我明白了,不仅仅是要重视,而且要通过不断的上机操作才能更好地学习这门语言。我也认识到我有很多不足得地方: 1.对于C语言程序模块的不熟悉是课程设计中所遇到的最大的问题 2.程序基础的不扎实是课程设计不能完美,高效的完成的最大影响 3.自己在指法上还不行,经常按错字母,但通过学习和练习,已经有了很大的提高 4.对C++语言的一些概念不太了解,对构造函数、虚函数的正确使用不够熟悉 5.对C++语言中经常出现的错误也不了解。 通过设计实践,使我在这几个方面的认识有所提高。程序设计中我也遇到了很多难题。例如我在程序中遇到了出现乱码卡机,明明检查没错误就偏偏显示7个错误。后来我通过大量的上机实验,通过翻阅书籍,和老师的指导以及同学的讨论下,在克服了重重的困难后,终于成功的运行了课程设计所要求的程序。 这次我也深感压力,因为平时对编程序这方面没有过多的关注,平时所学到的一点理论知识在实际应用中也很有限,实习过程中明显的准备不充分,使自己遇到了很多的难题,但在和同学们合作讨论下有颇有收获,从中我了解的个人的学识终究是限的,但集体的智慧是无限的,当然我们能取得这样的成绩也来于老师的指导有方,我们能够完成一个程序,从起初的总体设计,进行可行性分析,在进行编程,最后进行调式。编一个所要求程序也不像刚开始所想象中的那么难,那么复杂,只要我们肯用心用脑,肯去花功夫钻研就会一定会有收获。 我还想说这次程序设计是我在C++语言程序的思想下第一次整体完成的程序设计,所以还有很多的不完美的地方,希望老师予以指出和改正。 我在学习过程中的困难并不只在程序的设计中有所体现,每一个函数都设计好了,也调试好了,把它们分开运行并没有错误,但是当把它们组合成一个程序时,便是一个一个地出现错误,把这个问题解决了,另一个新的问题又来了。这不能不说是对知识的欠缺。无论什么事都 要去做才会发现问题,才有可能去解决问题。对知识的学习,不能潜偿辄止,要深入去学习,去了解,这样才会有所收获。不去实践,永远也不会有提高,尤其是学习计算机。 最后,非常感谢老师和一起学习的同学! 成 绩    教师签名    日 期     
本文档为【课程设计实验报告(史上最全面最详细)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_601191
暂无简介~
格式:doc
大小:89KB
软件:Word
页数:0
分类:工学
上传时间:2019-09-09
浏览量:19