C++课程设计报告模板.doc_第1页
C++课程设计报告模板.doc_第2页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成绩 课程名称:c+ 课程设计设计题目: 足球联赛积分 姓 名:贾坤学 号:1208020229专业班级:网络 1202 班完成日期:2013年7 月 4日1 设计任务1.1 设计目的c+面向对象程序设计是计算机专业中一门重要的专业课。这次课程设计的目的是以程序设计语言为基础,通过完成一些程序设计,运用所学理论知识掌握面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。通过课程设计,我们应该得到了一些有利锻炼:进一步加深我们对所学知识的理解、分析以及运用的灵活性。全面提高我们的综合能力,解决问题的能力。2.理论与实际相互交涉,既检验了对理论的掌握又检验了理论与实际相结合使用的能力。这不仅可以使我们充分理解理论,还可以提高我们的思考能力。3.掌握类与对象的知识,熟练使用数组。4.掌握面向对象程序的设计方法。5.进一步掌握编写、调试、运行各种能力的综合运用。1.2设计内容足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编写一个足球联赛积分排名程序,程序统计最近一轮比赛后,各队积分及排名。2 设计过程2.1 程序功能每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。2.2算法原理1问题分析:为了实现足球联赛积分,首先要定义一个球队类和对象数组,每个球队均是球队类的对象。由于联赛中参赛的队伍数是固定的,因此将每个球队存放在对象数组的一个数组元素中。每输入两个对的比赛成绩,则相应的队的有关数据(补赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等),即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数,积分为排列元素)排除名次并输出。2结构分析:在team球队类中,设置一个外部接口,对比赛的进球数,失球数,净胜球数,赢球、输球、平局,积分先进行初始化为0。存放类的相应函数,在类外再分别实现相应的函数。其中goaling类是实现比赛队伍本身的进球、失球、净胜球的信息;而在类matching中,实现的是两个不同的比赛队伍之间的比赛成绩。通过a与b的大小来对win、score,lost和equal进行相应的运算。这两个类均使用了this指针来保存这些值。match类中用户输入主队和客队的名字并调用goaling、matching函数。setname、gets、getpg函数是返回队伍的名字、积分和净胜球数,getteamlist的作用是文件以二进制的方法储存在d盘,并可读和写。3. 实现流程分析:创建一个team球队类,该类中具有进球数、失球数、净胜球数、赢球、输球、平局和积分的数据成员。在该类中定义成员函数实现相关信息的输出,函数的原型声明放在类的定义中,用构造函数初始化每个成员,显示信息函数要求将对象中的完整信息打印出来。2.3程序流程图main()display()goaling()matching()match()setname()gets()getpg()2.4 程序主要模块或者函数class teamprivate: int goal; int cgoal; int pgoal; int win; int lost; int equal; int scorce; public: char name20; team() goal=0; cgoal=0; pgoal=0; win=0; lost=0; equal=0; scorce=0; void display() coutname goal cgoal pgoal win lost equal scorce0) this-goal+=a; if(acgoal-=a; pgoal=goal-cgoal;void team:matching(int a,int b) if(ab) this-win+=1; this-scorce+=3; if(alost+=1; if(a=b) this-equal+=1; this-scorce+=1; void team:match(team &t) int a,b; couta; if(a0) coutwarningendl; exit(1); coutb; if(b0) coutwarninggoaling(a); this-goaling(0-b); t.goaling(b); t.goaling(0-a); this-matching(a,b); t.matching(b,a);void team:setname() coutthis-name;int team:gets() return this-scorce;int team:getpg() return this-pgoal;void getteamlist();fstream team(d:teams.txt,ios:in|ios:out|ios:binary);int main() char name20;team t5; int t1,t2; char n; int i; if(!team) coutlost fileendl; exit(1); while(1) coutdo you have set the team name?(y)n; if(n=y|n=y) break; for(int i=0;i=4;i+) ti.setname(); team.write(char*)&ti,sizeof(ti); break; team.seekg(0,ios:beg); for(i=0;i5;i+) team.read(char*)&ti,sizeof(ti); while(1) coutis any match now?(n)n; if(n=n|n=n) break; do coutname; for(i=0;i5;i+) if(strcmp(name,)=0) t1=i; break; else continue; while(i=5); do coutname; for(i=0;i5;i+) if(strcmp(name,)=0) t2=i; break; else continue; while(i=5); tt1.match(tt2); team.seekg(0,ios:beg); for(i=0;i5;i+) team.write(char*)&ti,sizeof(ti); getteamlist(); return 0;void getteamlist() team t15; team hao;fstream gamelist(d:teamlist.txt,ios:in|ios:out|ios:binary); if(!gamelist) coutwrong!endl; exit(1); team.seekg(0,ios:beg); for(int i=0;i5;i+) team.read(char*)&t1i,sizeof(t1i); for(int j=0;j4;j+) for(int i=0;i4-j;i+) if(t1i.gets()t1i+1.gets() hao=t1i; t1i=t1i+1; t1i+1=hao; if(t1i.gets()=t1i+1.gets() if(t1i.getpg()t1i+1.getpg() hao=t1i; t1i=t1i+1; t1i+1=hao; cout球队 进球数 失球数 净胜球胜 负 平 积分 endl; for(i=0;i5;i+) gamelist.write(char*)&t1i,sizeof(t1i); t1i.display(); gamelist.close(); 3软件运行或者测试结果(1)程序运行前没有建teams.txt和taemlist.txt这两个文本文档(2)程序运行钱建了team.txt和teamlist.txt这两个文本文档(3)输入y后的结果(4)输入n时的结果,程序无限循环下去(5)在3之后,输入n 之后的结果(6)在()之后的输入非y后的结果(7)输入n后的结果(8)在(6)后输入非n的结果(9)在(8)输入n的结果(10)在(9)后输入非n的结果4 软件设计过程中遇到的问题以及解决办法当自己写一个类的时候,有些功能只依赖于类的public接口函数。当需要用函数封装该功能时,是写成成员函数、友元函数还是普通函数? 解决方法: 查阅c+课本,使用普通函数。这样增强了类的封装性,实现新功能也更灵活。相关功能的普通函数还可以声明到一个namespace中作进一步打包封装。用namespace可以在很多文件中实现向同一个namespace添加功能函数,扩展灵活,编译依存度更低,使用起来语意像类的静态成员函数一样清晰。有百利而无一害。为什么将自定义代码放在std命名空间里会出错? 问题原因:因为std的所有成员,都能且只能由c+标准委员会指定。5 总结经历这次的课程设计,对自己的学习有很多帮助,在平时的很少有那么多的时间去学习c+,这次的课程设计使我有了一个相对比较集中的时间去练习我的编程,特别是我的动手能力有了极大的提高,因为这次的课程设计几乎涉及到了c+语言程序设计的整本书的重要内容,让我从中受益,有了一次巩固知识的机会。同时还让自己平时不怎么注意的问题得到了自己足够的关注,为以后写程序奠定下了坚实的基础,让自己对这门课的课程有了更深刻的认识。这次写完程序后,等到自己能顺利运行时,我觉得自己的任务才刚刚开始,我的目标是在没有我的讲解下,还能够顺利的运行我的程序。因为我觉得自己写程序就是给别人用的,自己运行的再好也没有什么用,只有别人运行的舒服,才能够说明你的程序取得了一定的成功。我的大学爱情观目录:1、 大学概念2、 分析爱情健康观3、 爱情观要三思4、 大学需要对爱情要认识和理解5、 总结1、什么是大学爱情:大学是一个相对宽松,时间自由,自己支配的环境,也正因为这样,培植爱情之花最肥沃的土地。大学生恋爱一直是大学校园的热门话题,恋爱和学业也就自然成为了大学生在校期间面对的两个主要问题。恋爱关系处理得好、正确,健康,可以成为学习和事业的催化剂,使人学习努力、成绩上升;恋爱关系处理的不当,不健康,可能分散精力、浪费时间、情绪波动、成绩下降。因此,大学生的恋爱观必须树立在健康之上,并且树立正确的恋爱观是十分有必要的。因此我从下面几方面谈谈自己的对大学爱情观。2、什么是健康的爱情:1) 尊重对方,不显示对爱情的占有欲,不把爱情放第一位,不痴情过分;2) 理解对方,互相关心,互相支持,互相鼓励,并以对方的幸福为自己的满足; 3) 是彼此独立的前提下结合;3、什么是不健康的爱情:1)盲目的约会,忽视了学业;2)过于痴情,一味地要求对方表露爱的情怀,这种爱情常有病态的夸张;3)缺乏体贴怜爱之心,只表现自己强烈的占有欲;4)偏重于外表的追求;4、大学生处理两人的在爱情观需要三思:1. 不影响学习:大学恋爱可以说是一种必要的经历,学习是大学的基本和主要任务,这两者之间有错综复杂的关系,有的学生因为爱情,过分的忽视了学习,把感情放在第一位;学习的时候就认真的去学,不要去想爱情中的事,谈恋爱的时候用心去谈,也可以交流下学习,互相鼓励,共同进步。2. 有足够的精力:大学生活,说忙也会很忙,但说轻松也是相对会轻松的!大学生恋爱必须合理安排自身的精力,忙于学习的同时不能因为感情的事情分心,不能在学习期间,放弃学习而去谈感情,把握合理的精力,分配好学习和感情。3、 有合理的时间;大学时间可以分为学习和生活时间,合理把握好学习时间和生活时间的“度”很重要;学习的时候,不能分配学习时间去安排两人的在一起的事情,应该以学习为第一;生活时间,两人可以相互谈谈恋爱,用心去谈,也可以交流下学习,互相鼓励,共同进步。5、大学生对爱情需要认识与理解,主要涉及到以下几个方面:(1) 明确学生的主要任务“放弃时间的人,时间也会放弃他。”大学时代是吸纳知识、增长才干的时期。作为当代大学生,要认识到现在的任务是学习学习做人、学习知识、学习为人民服务的本领。在校大学生要集中精力,投入到学习和社会实践中,而不是因把过多的精力、时间用于谈情说爱浪费宝贵的青春年华。因此,明确自己的目标,规划自己的学习道路,合理分配好学习和恋爱的地位。(2) 树林正确的恋爱观提倡志同道合、有默契、相互喜欢的爱情:在恋人的选择上最重要的条件应该是志同道合,思想品德、事业理想和生活情趣等大体一致。摆正爱情与学习、事业的关系:大学生应该把学习、事业放在首位,摆正爱情与学习、事业的关系,不能把宝贵的大学时间,锻炼自身的时间都用于谈情说有爱而放松了学习。 相互理解、相互信任,是一份责任和奉献。爱情是奉献而不时索取,是拥有而不是占有。身边的人与事时刻为我们敲响警钟,不再让悲剧重演。生命只有一次,不会重来,大学生一定要树立正确的爱情观。(3) 发展健康的恋爱行为 在当今大学校园,情侣成双入对已司空见惯。抑制大学生恋爱是不实际的,大学生一定要发展健康的恋爱行为。与恋人多谈谈学习与工作,把恋爱行为限制在社会规范内,不致越轨,要使爱情沿着健康的道路发展。正如马

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论