C++程序设计实践报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1中南大学《C++课程设计》设计报告学生姓名学号专业班级指导老师******院2011年6月21、实验目的、内容··················································32、题目一:比赛求平均分2.1程序内容·····················································32.2实验程序设计及结构···········································32.3设计过程·····················································32.4运行结果·····················································43、题目二:火柴游戏3.1程序内容·····················································53.2实验程序设计·················································53.3设计过程·····················································53.4运行结果·····················································64、题目三:足球比分4.1设计内容·····················································64.2设计方案·····················································75、设计的特点与心得················································7参考文献···························································7附录题目一实验源代码···············································8题目二实验源代码···············································10题目三实验源代码···············································1231、实验目的、内容通过课程设计,能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术.要求学生在指导老师的指导下,独立完成实习课题的全部内容,包括:(1)通过调查研究和上机实习,收集和调查有关技术资料;(2)掌握设计课题的基本步骤和方法;(3)根据课题的要求进行上机实验调试.2、题目一:比赛求平均分2.1程序内容在体育、文艺比赛及选举等打分类项目中,为了公平起见,往往n个评委打出分数后,要去掉一个最高分和一个最低分,然后求取平均得分。当n较大时(本题设为9),则应取掉两个最高分和两个最低分,然后求取平均分。编程实现该算法。2.2实验程序设计及结构(1)需求分析:输入9个评委所打分数,程序运行最后结果为去掉最高分和最低分后的平均分.(2)设计结构:总体结构4数据结构从a[0]到a[9]依次为9位评委的打分.2.3设计过程(1)建立iostream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT数据.(2)根据流程图,建立main函数,并运用for循环.(3)运行main函数进行调试.2.4运行结果53、题目二:火柴游戏3.1程序内容:23根火柴游戏:两个游戏者开始拥有23根火柴(或小棒)。每个游戏者轮流移走1根、2根或3根火柴,拿到最后一根火柴的就算输了。编一程序与计算机玩这个游戏。3.2实验程序设计(1)需求分析:运行程序能使人与计算机进行23根火柴游戏。(2)设计思路:使计算机能最先使火柴变成4或4以下计算机就能赢了。3.3设计过程(1)建立iostream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT数据.(2)根据设计思路运用if判断语句设计(3)建立main函数(4)运行main函数调试63.4运行结果4、题目三:足球比分4.1设计内容:问题描述足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联7赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编一程序统计最近一轮比赛后,各队积分及排名。基本要求设积分表结构如下:队名(不超过15个字符),已比赛的场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。积分表放在正文文件中。最近一轮的结果从键盘输入,其形式为:主队名(可用代码),客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。测试数据可选择我国当年的甲A或甲B联赛的数据输入,并检查与报章公布的数据是否一致。4.2设计方案:定义一个球队类和对象数组,每个球队均是球队类的对象。由于联赛中参赛队伍数目是固定的,因此将每个球队存放在对象数组的一个数组元素中。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢得场数,进球数等等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数,积分为排序元素)排出名次并输出。5、设计的特点与心得:经过一个学期的学习和上机实践,使我对C++语言有了更认识和和了解,要想学好它要重在实践,要通过不断的上机操作才能更好的学习它,通过实践,我也发现我的好多不足之处,对各种控制结构及语句、数组的基本与高级应用、指针数组、字符数组、动态数组、函数的定义、调用方式;函数在编程中的具体应用;以及变量存储特征与标识符的作用域,通过实践,使我在这些方面有了认识和提高。课程设计它是一项任务,更是一种挑战和历练。在课程设计中,为了使用时方便,着重对不足方面的知识进行了分析与理解,在这一过程中对文件的操作有了很大的提高。通过实际的演练,可以增强对知识的理解和运用能力。参考文献[1]、杨长兴、刘卫国,《C++程序设计》,中国铁道出版社,2008年8附录题目一实验源代码:#includestdio.h#includeiostream.hvoidmain(){inta[9],i,j,temp,b=0,s;cout请打分:endl;for(i=0;i9;i++){cina[i];}for(i=0;i9;i++)for(j=i;j9;j++){if(a[i]=a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}for(i=2;i7;i++)9{b=b+a[i];}s=b/5;cout最后成绩为:s;}10题目二实验源代码:#includestdio.h#includestdlib.h#includeiostreamintgetMin(inta,intb){returnab?a:b;}intmain(){printf(游戏开始\n);intcount=23;intinput;intcomputerInput;while(true){printf(当前还剩%d根火柴,请玩家拿取火柴:\n,count);printf(1.一根火柴);if(count=2){printf(2.两根火柴);}if(count=3){printf(3.三根火柴);}printf(\n);while(true){std::cininput;if(input==1||(input==2&&count=2)||(input==3&&count=3))break;elseprintf(请正确输入序号\n);}count-=input;if(count==0){printf(游戏结束,玩家输掉了游戏\n);break;}if(count%4==1)11{computerInput=rand()%(getMin(count,3))+1;}else{computerInput=(count%4==0)?3:count%4-1;}printf(电脑拿走了%d根火柴\n,computerInput);count-=computerInput;if(count==0){printf(游戏结束,电脑输掉了游戏\n);break;}}system(pause);}12题目三实验源代码://程序需要先在d盘建立2个文本文档teams.txt,teamlist.txt,以保存球队信息和比分信息//#includeiostream#includestring#includefstreamusingnamespacestd;classTeam{private:intgoal;intcgoal;intpgoal;intwin;intlost;intequal;intscorce;public:charname[20];Team(){goal=0;cgoal=0;pgoal=0;win=0;lost=0;equal=0;scorce=0;}voidDisplay(){coutname''goal''cgoal''pgoal''win''lost''equal''scorceendl;}voidgoalchg(inta);voidmatchchg(inta,intb);voidmatch(Team&t);voidsetIm();intgetS();intgetPG();};voidTeam::goalchg(inta){if(a0)this-goal+=a;13if(a0)this-cgoal-=a;pgoal=goal-cgoal;}voidTeam::matchchg(inta,intb){if(ab){this-win+=1;this-scorce+=3;}if(ab){this-lost+=1;}if(a==b){this-equal+=1;this-scorce+=1;}}voidTeam::match(Team&t){inta,b;coutpresshome'sgoal:;cina;if(a0){coutwarningendl;exit(1);}coutpressihome'sgoal:;cinb;if(b0){coutwarningendl;exit(1);}this-goalchg(a);this-goalchg(0-b);t.goalchg(b);t.goalchg(0-a);this-matchchg(a,b);t.matchchg(b,a);}voidTeam::setIm(){coutteam'sname:;cinthis-name;}14intTeam::getS(){returnthis-scorce;}intTeam::getPG(){returnthis-pgoal;}voidgetteamlist();fstreamteam(d:\\teams.txt,ios::in|ios::out|ios::binary);voidmain(){charname[20];Teamt[5];intt1,t2;charn;inti;if(!team){coutlostfileendl;exit(1);}while(1){cou

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功