C++课程设计足球联赛积分_第1页
C++课程设计足球联赛积分_第2页
C++课程设计足球联赛积分_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、足球联赛积分1. 需求和规格说明1.1问题描述:足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编一程序统计最近一轮比赛后,各队积分及排名。1.2基本要求设积分表结构如下:队名(不超过15个字符),已比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。积分表放在正文文件中。最近一轮的比赛结构从键盘输入,其形式为:主队名(可用代码)

2、,客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此结果修改各队的积分和名次,所得的最近积分表仍在原积分文件中并同时在屏幕上显示。2. 设计2.1文字描述根据要求,设计一个球队类TEAM其中包含了该类对象的私有数据成员,即:已比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。公有成员方面,除了定义该类构造函数外,还将球队名定义为公有的,目的是便于被类外函数调用。除此之外,由于该程序并非针对单个对象即某个球队进行的操作,故将诸如排名、更新球队数据、排序后输出等函数定义为普通函数。又因为需要调用该类对象的某些私有数据成员,于是将此等函数声明为类的友元函数。2.

3、2图示类名intiniH'牛(private)intint成员类别类型int名称描述race_num比赛场数win_num赢的场数peace_num平的场数lose_num负的场数ball_win进球数intball_lose失球数intscore积分属性(public)char*name球队名方法TEAM()构造函数函数类别函数名描述viodproject()程序主工作函数viodinitical_name()初始化参赛球队队名friendviodrewritedata()友兀:更新球队数据friendviodrank()友元:积分排序friendviodprintafrank()友

4、元:排序后输出用户手册根据提示操作即可,具体为:(1) 程序运行时,首先要求初始化参赛队总数,各队队名等;(2) 按提示操作,即可选择性修改最近一轮比赛中主客队得分,也可查看当前各队积分排名。注意:请输入与程序要求相应的选择以及正确的格式,不要超出程序给定的范围!附录源程序#include<iostream>#include<String>#include<fstream>#includeviomanip>usingnamespacestd;classTEAM/球队类private:intrace_num;/比赛场数intwin_num;/赢的场数in

5、tpeace_num;/平的场数intlose_num;/输的场数intball_win;/进球数intball_lose;/失球数intscore;/积分public:char*name;/队名,在后文初始化参赛球队队名函数initical_name()中规定队名不超过15个字符TEAM();/构造函数/TEAMoperator=(TEAM&b);/赋值运算符里载成员函数,方便TEAM类型对象间的赋值操作联赛排序方法函数最近一轮比赛结束球队当前数据查询函数显示排名后的各此处声明,便于后面friendvoidrank(TEAMarray,intsize);/friendvoidrewr

6、ite_data(TEAMTeam,intsize);/后主客队数据更新一/friendvoidprint(TEAMarray,intsize);/friendvoidprint_af_rank(TEAMarray,intsize);/队数据;voidproject(TEAMT,intsize);/程序主工作函数,调用TEAM:TEAM()(name="0"race_num=0;win_num=0;peace_num=0;lose_num=0;ball_win=0;ball_lose=0;score=0;/TEAMTEAM:operator=(TEAM&b)/赋值运

7、算符里载,方便TEAM类型对象间的赋值操作/(/TEAMt;/=;/t.race_num=b.race_num;/t.win_num=b.win_num;/t.peace_num=b.peace_num;/tose_num=b.lose_num;/t.ball_win=b.ball_win;/t.ball_lose=b.ball_lose;/t.score=b.score;/returnt;/)voidinitical_name(TEAMS,intsize)/初始化参赛球队队名(_if(SO.name="0")(cout?”Caution:当前无参赛

8、队伍,请建立!(y/n)_"strings;cin>>s;if(s="y”|s="Y")(cout?""<<endl?endl;intnum,i;do(cout<<”>>>请输入参赛队伍总数(2-"<<size<<”)"cin?num;cout?endl;if(num<2|num>size)(cout<<"Caution:您的输入有误,请S新输入!"<<endl?endl;while

9、(num<2|num>size);/ofstreamfout("lsjf.txt");/fout<<num<<endl;/fout.close;for(i=0;i<num;i+)(coutvv">>>请输入第"<<i+1<<"个球队的队名_"/charstr15;cin>>str;S=newcharstrlen(str)+1;strcpy(S,str);ofstreamfout("lsjf.txt"

10、;);/cout?endl;/fout.close();coutvv"数据初始化成功!Jcoutvv""<<endl;cout?endl;elseif(s="n”|s="N")coutvv">>>>>>>>>>>>>>>>>>>>>>>>>>>才谢使用,祝您愉快!再见!vvvvvvvvvvvvvvvvvvvvvvvvvv"vvendl;exit

11、(0);project(S,size);elseif(SO.name!="0”)return;voidproject(TEAMT,intsize)/intchoice;docout<<">>>>>>>>>>>>>>>>>>>>>>>>>vvvvvvvvvvvvvvvvvvvvvvvv"vvendl;coutvv"1."<<endl;coutvv"2."&

12、lt;<endl;coutvv"程序主工作函数请选择您要执行的操作查看当前球队排名更新球队比赛数据0.退出Jcoutvv<<endl;coutvv">>>请输入您的选择:(0-2)_"cin>>choice;coutvvendl;switch(choice)case1:initical_name(T,size);rank(T,size);print_af_rank(T,size);break;case2:initical_name(T,size);rewrite_data(T,size);rank(T,size);祝

13、您愉快!再见<<endl?endl;比较积分多少积分相同时,print_af_rank(T,size);break;case0:coutvv">>>>>>>>>>>>>>>>>>>>>>>>>>>谢谢使用vvvvvvvvvvvvvvvvvvvvvvvvvv"vvendl;exit(0);break;default:cout<<"Caution:您的输入有误,请£新进行选择

14、!break;while(choice!=0);return;voidrank(TEAMarray,intsize)/联赛排序方法函数/cout?"执彳亍排序函数1"<<endl;TEAMtemp;/cout?"执彳亍排序函数2"<<endl;/cout?"执行排序函数3"<<endl;intL=0,k=0;for(k=0;k<size;k+)/ifstreamfin("lsjf.txt");/fin>>if(!="0"

15、)L+;inti=0,j=0;for(i=0;i<L-1;i+)for(j=0;j<L-1-i;j+)/积分多者在前if(arrayj.score>arrayj+1.score)elseif(arrayj.score<arrayj+1.score)/temp=arrayj;arrayj=arrayj+1;arrayj+1=temp;/cout?"执彳亍排序函数a"<<endl;elseif(arrayj.score=arrayj+1.score)/净胜球数多者在前(/比较净胜球数多少if(arrayj.ball_win-arrayj.ba

16、ll_lose)>(array|j+1.ball_win-arrayj+1.ballose)(elseif(arrayj.ball_win-arrayj.ball_lose)v(arrayj+1.ball_win-arrayj+1.ball_lose)(temp=arrayj;arrayj=arrayj+1;arrayj+1=temp;/cout?”执彳亍排序函数b"<<endl;/积分与净胜球数均相同时,进球数多者在前elseif(arrayj.ball_win-arrayj.ball_lose)=(array|j+1.ball_win-arrayj+1.ball

17、_lose)(if(arrayj.ball_win>arrayj+1.ball_win)(/比较进球数多少elseif(arrayj.ball_win<arrayj+1.ball_win)(temp=arrayj;arrayj=arrayj+1;arrayj+1=temp;/cout?"执彳亍排序函数c"<<endl;elseif(arrayj.ball_win=arrayj+1.ball_win)return;显示排名后的各队数据voidprint_af_rank(TEAMarray,intsize)/intn;cout?"<<

18、;endl;coutvv"当前各队积分排名<<endl;cout?"名次t队名t赛t胜t平t负t进t失t净t积分"<<endl;for(n=0;n<size;n+)if(!="0")cout?""<<n+1<<""vv"t"<v"t"v<arrayn.race_num<v"t"v<arrayn.win_num<v&q

19、uot;t"v<arrayn.peace_num<v"t"v<arrayn.lose_num<v"t"v<arrayn.ball_win<<"t"v<arrayn.ball_lose<v"t"v<arrayn.ball_win-arrayn.ball_lose<v"t"vvarrayn.score<<endl?endl;cout?""<<endl;return;voidrewr

20、itedata(TEAMTeam,intsize)/更新最近一轮比赛结束后主客队数据intm;intht_num,at_num,ht_ball_win,at_ball_win;cout?""<<endl?endl;cout?"参赛球队代码:"<<endl?endl;for(m=0;m<size;m+)if(T!="0”)cout<<""<<Teamm."<<m+1<<".name?endl?endl;cout?

21、""<<endl;cout<<">>>请选择主队代码:_"cin>>ht_num;cout?endl;cout<<">>>请选择客队代码:"cin>>at_num;cout?endl;Teamht_num-1.race_num+;/Teamat_num-1.race_num+;cout<<">>>请输入主队"<<"/“"<<Teamht_num-1

22、.name<<”主队比赛总场数默认+1客队比赛总场数默认+1”"<<"的进球数:cin>>ht_ball_win;cout?endl;Teamht_num-1.ball_win+=ht_ball_win;Teamat_num-1.ball_lose+=ht_ball_win;cout<<">>>请输入客队"<<"“"<<Teamat_<<"”"<<"的进球数:_,cin&g

23、t;>at_ball_win;cout?endl;Teamat_num-1.ball_win+=at_ball_win;Teamht_num-1.ball_lose+=at_ball_win;if(ht_ball_win>at_ball_win)Teamht_num-1.win_num+;Teamat_num-1ose_num+;Teamht_num-1.score=3*Teamht_num-1.win_num+1*Teamht_num-1.peace_num;5elseif(ht_ball_win<at_ball_win)Teamat_num-1.win_num+;Teamht_num-1.lose_num+;Teamat_num-1.score=3*Teamat_num-1.win_num+1*Teamat_num-1.peace_num;Ielseif(ht_ball_win=at_ball_win)Teamat_num-1.peace_num+;Teamht_num-1.peace_num+;Teamat_num-1.score+=1;Teamat_num-1.score+=1;_return;intmain()TEAMteam18;cout?endl;cout?endl;cout?"cout

温馨提示

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

评论

0/150

提交评论