《C++课程设计》报告.docx
- 文档编号:10031613
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:12
- 大小:95.42KB
《C++课程设计》报告.docx
《《C++课程设计》报告.docx》由会员分享,可在线阅读,更多相关《《C++课程设计》报告.docx(12页珍藏版)》请在冰豆网上搜索。
《C++课程设计》报告
《C++课程设计》报告
课程设计题一:
使用类和对象设计回应程序
一课题内容和要求
1.测试程序如下(假使类名为Welcome):
voidmain(void)
{
welcomewe;
welcomeyou(we);
you.Display();
you.Set("thankyou!
");
cout< you.Talk(); you.Display(); } 2.测试程序的输出结果如下: Welcome! Thankyou. 输入: Howareyou? 输出: Howareyou? 输入: Fine,thankyou. 输出: Fine,thankyou. 输入: ok Allright! Goodbye! Ok Goodbye! Goodbye! 3.对类的要求 (1)在头文件cpp1.h中声明类。 (2)在源文件cpp1.cpp中实现类。 (3)使用内联函数定义Display()函数。 二详细设计 #include"cpp1.h"; voidwelcome: : talk() { str=newchar[100]; for(;;) {cout<<"输入: "; cin.getline(str,'\n'); if(strcmp(str,"ok")==0)break; cout<<"输出: "< } welcomethey("allright! "); they.display(); } welcome: : welcome(char*s) {str=newchar[strlen(s)+1]; strcpy(str,s); } welcome: : welcome(welcome&s) {str=newchar[strlen(s.str)+1]; strcpy(str,s.str); } voidwelcome: : set(char*s) {str=newchar[strlen(s)+1]; strcpy(str,s); } inlinevoidwelcome: : display() {cout< char*welcome: : get() {returnstr;} welcome: : ~welcome() {cout<<"goodby! "< deletestr; } voidmain(void) {welcomewe; welcomeyou(we); you.display(); you.set("thankyou! "); cout< you.talk(); you.display(); } 三、测试数据及其结果分析 四、调试过程中的问题 在本题的调试中一开始对程序的函数的定义不能正确的把握,以至于在多次的反复的调试中还是不能确定其正确的思路,在后来对程序中可容得变量进行改进了之后,加大了容量,就不会出现需要换行的现象。 课程设计题二: 设计一个菜单程序 一课题内容和要求 1.菜单内容: 程序运行后,给出4个菜单项的内容和输入提示。 1.解一元二次方程 2.出圈游戏之一 3.出圈游戏之二 4.退出程序 选择1-4: 2.设计要求: 使用数字1-4来选择菜单项,其它输入则不起作用。 下面是测试运行的例子。 1.解一元二次方程 2.出圈游戏之一 3.出圈游戏之二 4.退出程序 选择1-4: 1 解一元二次方程 1.解一元二次方程 2.出圈游戏之一 3.出圈游戏之二 4.退出程序 选择1-4: 2 出圈游戏之一 1.解一元二次方程 2.出圈游戏之一 3.出圈游戏之二 4.退出程序 选择1-4: 4 再见! 二、详细设计 #include"cpp2.h" voidhandle_menu(void) {for(;;) {switch(menu_select()) {case1: cout<<"\n\t解一元二次方程\n\n"; break; case2: cout<<"\n\t出圈游戏之一\n\n"; break; case3: cout<<"\n\t出圈游戏之二\n\n"; break; case4: cout<<"\n\t再见! \n"; return; } } } intmenu_select() {chars[2]; intcn; cout<<"\t1.解一元二次方程\n"; cout<<"\t2.出圈游戏之一\n"; cout<<"\t3.出圈游戏之二\n"; cout<<"\t4.退出程序\n\n"; cout<<"\t选择1-4: "; for(;;) {gets(s); cn=atoi(s); if(cn<1||cn>4) cout<<"\n\t输入错误,重选1-4: "; else break; returncn; } } voidmain(void) {handle_menu();} 三、测试数据及其结果分析 四、调试过程中的问题 在本题中最重要的就是对一个循环函数设定,一开始的时候只能输一部分的值在返回的时候,就不能在进行下一轮的值的输入了,在调试的时候 课程设计题三: 通过组合和派生构成新的类 一课题内容和要求 1.设计题目 使用包含的方法,编写一个点类Point和线段类Line,演示构造函数、复制构造函数、析构函数及其调用顺序。 2.设计要求 (1)Point类只能有一个构造函数,而且这个构造函数只能具有两个参数。 (2)测试的主程序如下: voidmain(void) { pointa; pointb(7.8,9.8),c(34.5,67.8); a=c; cout<<"两点之距为: "< cowcw={3,5}; lines(a,b,cw); lines1(s); cout< } (3)Line类的声明如下: structcow {intcolor; intwidth; }; classline {pointa,b; cowcw; public: line(point&,point&,cow&); doubledisplay(line&); line(line&); ~line(); }; (4)Point类有输出数据成员的内联函数Display(),原型为voidDisplay(void)。 (5)Point类有输出两点距离的函数Distance()。 (6)分析输出结果,总结构造函数和析构函数的调用顺序。 二、详细设计 #include"cpp3.h" point: : point(doublea,doubleb): x(a),y(b) {cout<<"调用point的构造函数\n";} point: : point(point&a) {x=a.x;y=a.y; cout<<"调用point的复制构造函数\n";} point: : ~point() { cout<<"deletepoint"< doublepoint: : distance(point&a) {returnsqrt((x-a.x)*(x-a.x)+(y-a.y)*(y-a.y));} line: : line(point&a1,point&a2,cow&a3): a(a1),b(a2),cw(a3) {cout<<"调用line的构造函数\n";} line: : line(line&s): a(s.a),b(s.b),cw(s.cw) {cout<<"调用line的复制构造函数\n";} line: : ~line() { cout<<"deleteline"<<'\n';} doubleline: : display(line&a) {a.a.display(); a.b.display(); cout<<"color="< doublex=a.a.getx()-a.b.getx(); doubley=a.a.gety()-a.b.gety(); returnsqrt(x*x+y*y); } voidmain(void) {pointa; pointb(7.8,9.8),c(34.5,67.8); a=c; cout<<"两点之距为: "< cowcw={3,5}; lines(a,b,cw); lines1(s); cout< } 三、测试数据及其结果分析 四、调试过程中的问题 在本题的程序调试中我发现了,对多个函数的同时构造是一个非常复杂的事情,一步的构造关系到下一具体的输出值的大小。 在前几次不断的改进中,把第一个程序弄出来之后就为下面的提供了相似的模板,变的更容易了。 实训体会: 通过本次的实训,我更加的了解了,C++语言的广泛的用途和其复杂的程度,对于这一么门科目我有很深的感触,上学期刚开始的时候觉得还不是很难,也比较的感兴趣,但后来由于日积月累的加深感觉到了题目的难度也在不断的提高,这对我就是一个不小的考验。 再经过两个月的暑假还有两个月的实习,这可以说是一件很坏的事情,对于C++所学的知识也基本的没有多少内容能记得住了。 如果不是在老师的提示下,我估计凭借我自己的力量是完成不了的,这一点也提醒了我在今后的学习中得注意复习工作的重要性,还有的就是在本次的是实训中我了解了不同的饿语句对不同情况下的套用也是不同的,有时在多个循环语句中对多个事件进行赋植的时候容易把前一个程序中涉及到的量与本题中的变化量相混淆,一开始的时候我了解到变量在不同语句中执行的目标也是不一样的,当程序的运行有两个函数相套有的时候,不是自动的报错就是有语句中的数值有两种语句套用的循环结果输出,这就很难判断题目中存在的错误了。 也许是我们这些新手特容易会对自己所学习的东西产生疑惑、迷茫。 觉得自己学这个东西,花了这么多时间有没有用,其实这种思想很普遍。 在一些论坛上经常会看到一些各语言的优劣比较,知道自己所学语言的优劣也好,但是我认为如果一味停留在这个层面就没有用了。 就对这一次实训我总体上的感觉是比较顺利的的,但我想在今后不短的日积月累中更需要保持一份学习的热情。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+课程设计 C+ 课程设计 报告