收藏 分享(赏)

面向对象的程序设计课程设计报告.docx

上传人:dreamzhangning 文档编号:2702112 上传时间:2018-09-25 格式:DOCX 页数:26 大小:725.51KB
下载 相关 举报
面向对象的程序设计课程设计报告.docx_第1页
第1页 / 共26页
面向对象的程序设计课程设计报告.docx_第2页
第2页 / 共26页
面向对象的程序设计课程设计报告.docx_第3页
第3页 / 共26页
面向对象的程序设计课程设计报告.docx_第4页
第4页 / 共26页
面向对象的程序设计课程设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、面向对象的程序设计课程设计报告姓 名: 学 号: 班 级: 院 系: 日 期: 一、设计目的课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。本次课程设计通过设计和实现几个应用程序,达到以下目标:1.使学生能够比较熟练地掌握 C+语言的基本语法规则;2.熟练掌握基本的面向对象的程序设计方法,如类的实现、创建类的实例对象、实现类的继承等;3.掌握各种面向对象的程序设计技术,如继承和派生,虚继承、虚函数、抽象类、多态的实现、运算符重载

2、、使用 C+标准库等。4.掌握在 VC+平台上进行程序设计和调试的方法。题目 1:通过组合和派生构成新的类本设计题目的任务是使用 Point 类产生 Line 类。分别通过组合类及派生类两种方法实现,并要求分别给出使用类模板实现的程序。本设计题的目的是使学生掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。另外本设计题目要让学生进一步掌握和理解类模板的技术及其实现方法。题目 3:成绩管理系统 输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对 N 门考试的成绩进行管理(例 N=5) 要求: 用户录入每个学生每

3、门课程的分数; 能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名; 计算全班各门功课的平均分,显示每门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息; 显示每门科目中,成绩在 90 分以上的学生信息。另外还输出每门科目中不及格的学生信息; 能按姓名或者学号查找,增加,删除和保存各个学生的信息。题目 1:通过组合和派生构成新的类组合类:#includeusing namespace std;class Pointpublic:Point()coutusing namespace std;templateclass Pointpublic:Po

4、int()coutclass Linepublic:Line()cout b=n;cout a;Point b;void main()Point a1(1,2);Point b1(3,4);Line c1(a1,b1);c1.display();Point a2(1.1,2.1);Point b2(3.1,4.1);Line c2(a2,b2);c2.display();用组合类模板实现时运行结果:本实验小结:由于老师给了一个模板,从而帮助了我在这个试验中的编写,在第一个程序修改正确之后,再写组合类模板时没有多大困难。派生类:#includeusing namespace std;class

5、Pointpublic:Point()x=0;y=0;coutusing namespace std;templateclass Pointpublic:Point()coutclass Line:public Pointpublic:Line()cout(x1,y1,x2,y2)cout line1(1,2,3,4);line1.display1();Line line3=line1;Line line2(1.1,2.1,3.1,4.1);line2.display1();用派生类模板实现时运行结果:本实验小结:在本实验编写时,还想参照所给模板,结果运行后在继承时,把所继承的类去掉和添加对实

6、验结果没有影响,从而知道,组合类模板和继承类模板是不同的,然后根据继承类实现时的程序写出用继承类模板实现功能,从而得到实验结果。实验一总结:在第一个实验中四个小程序的编写中,出现很多错误和不明白的地方,经检查和调试,改了一些不合理的地方和由于写的时候的不细心造成的错误,然后不会的地方查资料和请教别人,懂了很多,包括一些以前上课时没记住的知识点和没弄懂的知识点,总的来说,这个实验使我收获很多。题目三:成绩管理系统#include#include#includeusing namespace std;class studentpublic:char name20;double maths,Chin

7、ese,English,physics,chemistry,average,sum;student()coutp; if(p=0 coutChinese; coutmaths; coutEnglish; coutphysics;coutchemistry;filej=new ofstream(“d:document“,ios:ate); *filejc; flag2=0;do if(c!=y else flag2=1; while(flag2=0); while(c=y); break; case 1: char name20;double Chinese,maths,English,phys

8、ics,chemistry; char c; do coutname; coutChinese; coutmaths; coutEnglish; coutphysics;coutchemistry;filej=new ofstream(“d:document“,ios:ate); *filejc; if(c!=y while(c=y); break; case 2: char name20;bool flag3=0;char c; do coutname; for(int h=0;hname)=0) flag3=1;i-; do sh=sh+1; h+; while(hc; if(c!=y w

9、hile(c=y);break; case 3: char name20;double mat,Chin,Eng,phy,che;flag2=0; char c;do coutname;for(int h=0;hname)=0) flag2=1; coutChin; coutmat; coutEng; coutphy;coutche;sh-maths=mat; sh-Chinese=Chin;sh-English=Eng; sh-physics=phy;sh-chemistry=phy;coutc; if(c!=y while(c=y); break; case 4: double t;cha

10、r c; do int flag1=0; coutt;for(int q=0;qgetsum()=t) flag1=1; coutc;if(c!=y while(c=y); break; case 5: char n20;int j=0;char c; do int flag=0; coutn; for(int j=0;jc; if(c!=y while(c=y); break; case 6: coutnameChinesemathsEnglishphysicschemistrygetsum()getsum() t=y; if(t!=x) b=*sx; *sx=*st; *st=b; if(

11、i=0) coutnameChinesemaths Englishphysicschemistrymaths)maths) t=y; if(t!=x) b=*st; *st=*sx; *sx=b; if(i=0) coutnameChinesemaths EnglishphysicschemistryChinese)Chinese) t=y; if(t!=x) b=*st; *st=*sx; *sx=b; if(i=0) coutnameChinesemaths EnglishphysicschemistryEnglish)English) t=y; if(t!=x) b=*st; *st=*

12、sx; *sx=b; if(i=0) coutnameChinesemaths Englishphysicschemistryphysics)physics) t=y; if(t!=x) b=*st; *st=*sx; *sx=b; if(i=0) coutnameChinesemaths Englishphysicschemistrychemistry)chemistry) t=y; if(t!=x) b=*st; *st=*sx; *sx=b; if(i=0) coutnameChinesemaths Englishphysicschemistryw;if(w!=ywhile(w=y);

13、for(int x=0;xi;x+) delete sx; cout“delete all members!“endl;return 0;运行结果如下:实验二总结:刚看到题目时,一下子就想到结构,后来想,用类也可以做。因为要实现的功能很多,所以想自定义函数,把这些函数定为友元函数,后来,有些地方不会弄,就采用了把main()函数定为由于友元函数,然后在 main()函数中一一试验这些功能,写完后想到,如果用 main()函数调用实现各功能的自定义函数时,更方便数据的修改,但是由于时间的紧迫,没来得及这样做,但我会在课下完成这些的。实验中遇到的问题是对磁盘文件的输入输出不熟悉和运用不熟练,经过查看书和资料,我渐渐地熟悉了这一用法。并且,指针数组时由于一些不熟练而运用错误。另外,在实验中,大量的篇幅被都是由 do-while 语句所占用,而且这些 case 里面的内容差不多是一个模式,稍有不慎,就很容易出错误。经调试,有些地方一个小小的错误,编译之后根本显示出不来,只有在运行结果出来之后,根据结果哪个地方不正确,找出错误所在地,然后进行修改。在这个实验中,我复习并运用了很多知识,并且收益匪浅。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报