ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:725.51KB ,
资源ID:2702112      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2702112.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象的程序设计课程设计报告.docx)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

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

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营业执照举报