C++课程设计足球联赛积分.docx

上传人:b****4 文档编号:5026353 上传时间:2022-12-12 格式:DOCX 页数:15 大小:484.10KB
下载 相关 举报
C++课程设计足球联赛积分.docx_第1页
第1页 / 共15页
C++课程设计足球联赛积分.docx_第2页
第2页 / 共15页
C++课程设计足球联赛积分.docx_第3页
第3页 / 共15页
C++课程设计足球联赛积分.docx_第4页
第4页 / 共15页
C++课程设计足球联赛积分.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++课程设计足球联赛积分.docx

《C++课程设计足球联赛积分.docx》由会员分享,可在线阅读,更多相关《C++课程设计足球联赛积分.docx(15页珍藏版)》请在冰豆网上搜索。

C++课程设计足球联赛积分.docx

C++课程设计足球联赛积分

足球联赛积分

1.需求和规格说明

1.1问题描述:

足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。

试编一程序统计最近一轮比赛后,各队积分及排名。

1.2基本要求

设积分表结构如下:

队名(不超过15个字符),已比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。

积分表放在正文文件中。

最近一轮的比赛结构从键盘输入,其形式为:

主队名(可用代码),客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。

程序应根据此结果修改各队的积分和名次,所得的最近积分表仍在原积分文件中并同时在屏幕上显示。

2.设计

2.1文字描述

根据要求,设计一个球队类TEAM,其中包含了该类对象的私有数据成员,即:

已比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。

公有成员方面,除了定义该类构造函数外,还将球队名定义为公有的,目的是便于被类外函数调用。

除此之外,由于该程序并非针对单个对象即某个球队进行的操作,故将诸如排名、更新球队数据、排序后输出等函数定义为普通函数。

又因为需要调用该类对象的某些私有数据成员,于是将此等函数声明为类的友元函数。

2.2图示

3.用户手册

根据提示操作即可,具体为:

(1)程序运行时,首先要求初始化参赛队总数,各队队名等;

(2)按提示操作,即可选择性修改最近一轮比赛中主客队得分,也可查看当前各队积分排名。

注意:

请输入与程序要求相应的选择以及正确的格式,不要超出程序给定的范围!

4.附录源程序

#include

#include

#include

#include

usingnamespacestd;

classTEAM//球队类

{

private:

intrace_num;//比赛场数

intwin_num;//赢的场数

intpeace_num;//平的场数

intlose_num;//输的场数

intball_win;//进球数

intball_lose;//失球数

intscore;//积分

public:

char*name;//队名,在后文初始化参赛球队队名函数initical_name()中规定队名不超过15个字符

TEAM();//构造函数

//TEAMoperator=(TEAM&b);//赋值运算符重载成员函数,方便TEAM类型对象间的赋值操作

friendvoidrank(TEAMarray[],intsize);//联赛排序方法函数

friendvoidrewrite_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)//赋值运算符重载,方便TEAM类型对象间的赋值操作

//{

//TEAMt;

//t.name=b.name;

//t.race_num=b.race_num;

//t.win_num=b.win_num;

//t.peace_num=b.peace_num;

//t.lose_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(S[0].name=="0")

{

cout<<"Caution:

当前无参赛队伍,请建立!

(y/n)__";

strings;

cin>>s;

if(s=="y"||s=="Y")

{

cout<<"_______________________________________________________________________"<

intnum,i;

do

{

cout<<">>>请输入参赛队伍总数(2---"<

cin>>num;

cout<

if(num<2||num>size)

{

cout<<"Caution:

您的输入有误,请重新输入!

"<

}

}while(num<2||num>size);

//ofstreamfout("lsjf.txt");

//fout<

//fout.close;

for(i=0;i

{

cout<<">>>请输入第"<

charstr[15];

cin>>str;

S[i].name=newchar[strlen(str)+1];

strcpy(S[i].name,str);

//ofstreamfout("lsjf.txt");

//fout<

cout<

}

//fout.close();

cout<<"____数据初始化成功!

";

cout<<"________________________________________________________________________"<

cout<

}

elseif(s=="n"||s=="N")

{

cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>谢谢使用,祝您愉快!

再见!

<<<<<<<<<<<<<<<<<<<<<<<<<<"<

exit(0);

}

project(S,size);

}

elseif(S[0].name!

="0"){}

return;

}

voidproject(TEAMT[],intsize)//程序主工作函数

{

intchoice;

do

{

cout<<">>>>>>>>>>>>>>>>>>>>>>>>>请选择您要执行的操作<<<<<<<<<<<<<<<<<<<<<<<<"<

cout<<"1.查看当前球队排名"<

cout<<"2.更新球队比赛数据"<

cout<<"0.退出";

cout<<"_____________________________________________________________"<

cout<<">>>请输入您的选择:

(0-2)__";

cin>>choice;

cout<

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);

print_af_rank(T,size);

break;

case0:

cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>谢谢使用,祝您愉快!

再见!

<<<<<<<<<<<<<<<<<<<<<<<<<<"<

exit(0);

break;

default:

cout<<"Caution:

您的输入有误,请重新进行选择!

"<

break;

}

}

while(choice!

=0);

return;

}

voidrank(TEAMarray[],intsize)//联赛排序方法函数

{

//cout<<"执行排序函数1"<

TEAMtemp;

//cout<<"执行排序函数2"<

//cout<<"执行排序函数3"<

intL=0,k=0;

for(k=0;k

{

//ifstreamfin("lsjf.txt");

//fin>>

if(array[k].name!

="0")L++;

}

inti=0,j=0;

for(i=0;i

{

for(j=0;j

{

if(array[j].score>array[j+1].score){}

elseif(array[j].score

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

//cout<<"执行排序函数a"<

}

elseif(array[j].score==array[j+1].score)//积分相同时,净胜球数多者在前

{

//比较净胜球数多少

if((array[j].ball_win-array[j].ball_lose)>(array[j+1].ball_win-array[j+1].ball_lose)){}

elseif((array[j].ball_win-array[j].ball_lose)<(array[j+1].ball_win-array[j+1].ball_lose))

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

//cout<<"执行排序函数b"<

}

//积分与净胜球数均相同时,进球数多者在前

elseif((array[j].ball_win-array[j].ball_lose)==(array[j+1].ball_win-array[j+1].ball_lose))

{

if(array[j].ball_win>array[j+1].ball_win){}

//比较进球数多少

elseif(array[j].ball_win

{

temp=array[j];

array[j]=array[j+1];

array[j+1]=temp;

//cout<<"执行排序函数c"<

}

elseif(array[j].ball_win=array[j+1].ball_win){}

}

}

}

}

return;

}

voidprint_af_rank(TEAMarray[],intsize)//显示排名后的各队数据

{

intn;

cout<<"________________________________________________________________________"<

cout<<"当前各队积分排名"<

cout<<"名次\t队名\t赛\t胜\t平\t负\t进\t失\t净\t积分"<

for(n=0;n

{

if(array[n].name!

="0")

{

cout<<"第"<

}

}

cout<<"________________________________________________________________________"<

return;

}

voidrewrite_data(TEAMTeam[],intsize)//最近一轮比赛结束后主客队数据更新

{

intm;

intht_num,at_num,ht_ball_win,at_ball_win;

cout<<"________________________________________________________________________"<

cout<<"参赛球队代码:

"<

for(m=0;m

{

if(Team[m].name!

="0")cout<<""<

}

cout<<"________________________________________________________________________"<

cout<<">>>请选择主队代码:

__";

cin>>ht_num;

cout<

cout<<">>>请选择客队代码:

__";

cin>>at_num;

cout<

Team[ht_num-1].race_num++;//主队比赛总场数默认+1

Team[at_num-1].race_num++;//客队比赛总场数默认+1

cout<<">>>请输入主队"<<"“"<

__";

cin>>ht_ball_win;

cout<

Team[ht_num-1].ball_win+=ht_ball_win;

Team[at_num-1].ball_lose+=ht_ball_win;

cout<<">>>请输入客队"<<"“"<

__";

cin>>at_ball_win;

cout<

Team[at_num-1].ball_win+=at_ball_win;

Team[ht_num-1].ball_lose+=at_ball_win;

if(ht_ball_win>at_ball_win)

{

Team[ht_num-1].win_num++;

Team[at_num-1].lose_num++;

Team[ht_num-1].score=3*Team[ht_num-1].win_num+1*Team[ht_num-1].peace_num;

}

elseif(ht_ball_win

{

Team[at_num-1].win_num++;

Team[ht_num-1].lose_num++;

Team[at_num-1].score=3*Team[at_num-1].win_num+1*Team[at_num-1].peace_num;

}

elseif(ht_ball_win==at_ball_win)

{

Team[at_num-1].peace_num++;

Team[ht_num-1].peace_num++;

Team[at_num-1].score+=1;

Team[at_num-1].score+=1;

}

return;

}

intmain()

{

TEAMteam[18];

cout<

cout<

cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"<

cout<<"★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆★"<

cout<<"★☆☆★"<

cout<<"★☆☆★"<

cout<<"★☆☆★"<

cout<<"★☆联赛积分应用系统☆★"<

cout<<"★☆☆★"<

cout<<"★☆☆★"<

cout<<"★☆☆★"<

cout<<"★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆★"<

cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★"<

cout<

cout<<"->->->->->->->->->->->->->->WELCOME<-<-<-<-<-<-<-<-<-<-<-<-<-"<

cout<

project(team,18);

return0;

}

7.程序实现

 

 

 

 

 

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1