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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(用C++写足球联赛积分的.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用C++写足球联赛积分的.docx

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

2、可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。测试数据:可选择我国当年的甲A或甲B联赛的数据输入,并检查与报章公布的数据是否一致。实现提示:定义一个球队类,每个球队是均是此类的对象。由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现(当然也可以用链表结构)。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢的场数,平的场数,负的场数,进球数,失球数,积分等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。选做内容:篮球联赛(如NBA)往往采用胜率

3、来决定名次,胜率就是取胜的场数比赛场数之比。若胜率相同,再由净胜球及进球数来决定名次,通过继承性完成上述要求。/以下是FootBallTeam.h的头文件代码 #pragma once class FootBallTeam public: char name15; int win_num;/胜场 int lose_num;/败场 int draw_num;/平场 int game_num;/比赛场次 int goal_num;/进球数 int miss_num;/失球数 int score; /积分 int index; /球队编号,这个是方便输入用的 int grade; /球队名次 boo

4、l LoadData(int g_num,int l_num,int is_win); FootBallTeam(void); FootBallTeam(int w,int l,int d,int gm,int gl,int m,int s,int i,char* n,int g); FootBallTeam(void); ; /以下是FootBallTeam.cpp文件代码#include FootBallTeam.h#include using namespace std;FootBallTeam:FootBallTeam():win_num(0),lose_num(0),draw_num

5、(0),game_num(0),goal_num(0),miss_num(0),score(0),grade(1)FootBallTeam:FootBallTeam(int w,int l,int d,int gm,int gl,int m,int s,int i,char* n,int g) win_num=w; lose_num=l; draw_num=d; game_num=gm; goal_num=gl; miss_num=m; score=s; index=i; grade=g; strcpy(name,n);bool FootBallTeam:LoadData(int g_num,

6、 int l_num, int is_win) game_num+; goal_num+=g_num; miss_num+=l_num; if (is_win0) win_num+; score+=3; else if (is_win=0) draw_num+; score+=1; else lose_num+; return true;FootBallTeam:FootBallTeam(void)/以下是运行文件代码,你自己随便起名字把x.cpp#include #include FootBallTeam.husing namespace std;#define TeamNum 10/假设有

7、10个球队,你自己可以根据你们实际的表里的数目定义void SortList(FootBallTeam list,int n) /参数list为最新球队数据,n为球队数目 /这里就用最简单算法为O(n2)的冒泡排序吧,你自己要提升算法的话,试着自己使用 /2分或快速 for(int i=1;i=0) if(liststart.scorelistj.score) FootBallTeam temp=listj; listj=listi; listi=temp; start=j; j-; j=i; /这里自己写输入代码把,很简单,循环着输出你想要的结果就行了。void main() char* p

8、ath=D:/test.txt;/这个你根据你们积分表的文件名和路径自己写清楚 /如果你们老师没给提供原始文件的话,你就自己编一个吧 /* 同样的定义一个FootBallTeam ListTeamNum; for(int k=0;kTeamNum;k+) FootBallTeam f(.);/.省略号是你自己要的数据,具体参数看代码的构造函数列表。 就那个多参数的构造函数。 Listk=f; char* path=D:/test.txt; FILE* fp=fopen(path,w); fwrite(&List,sizeof(FootBallTeam)*TeamNum,TeamNum,fp);

9、 fclose(fp); 这样就存储进去了,然后下面继续。 */ FootBallTeam ScoreListTeamNum; /首先从积分表文件中读取原始数据 FILE* fp=fopen(path,r); if (fp=NULL) return; if(fread(&ScoreList,sizeof(FootBallTeam)*TeamNum,TeamNum,fp)=-1); return; fclose(fp); for(int i=0;iTeamNum;i+) ScoreListi.index=i; /把当前球队名次作为索引号 for(int i=0;iTeamNum/2;i+) in

10、t i1,i2;/分别记录两个输入球队的索引号 int g1,g2;/分别记录两个球队的进球数 char* input; while(1) cout请输入第iinput; char temp2; /球队索引号最多为2位数,进球数一般也不超过2位数,篮球的自己改 int num=strlen(input); int index=0;/记录input的索引 int temp_index=0;/记录temmp的索引 while(inputindex!=v|inputindex!=s) /这里自己加对输入的判断,比如把数字输入成字母了, /我这里就不罗嗦了,下面几个while里卖弄是一样的。如果不写,

11、就保证别输入错 temptemp_index+=inputindex+; if(index=num) cout=num) cout=num) cout你输入的数据有错请重新输入; continue; g1=atoi(temp); temp_index=0; while(inputindex!=0) temptemp_index+=inputindex+; g2=atoi(temp); ScoreListi1.LoadData(g1,g2,g1-g2); ScoreListi2.LoadData(g2,g1,g2-g1); break; SortList(ScoreList,TeamNum);

12、system(pause); 补充回答:不好意思,忘记判断积分相同的情况了,给你加上了,用这个吧 /以下是FootBallTeam.h的头文件代码 #pragma once class FootBallTeam public: char name15; int win_num;/胜场 int lose_num;/败场 int draw_num;/平场 int game_num;/比赛场次 int goal_num;/进球数 int miss_num;/失球数 int score; /积分 int index; /球队编号,这个是方便输入用的 int grade; /球队名次 bool same

13、; /所有比较都一样的时候为真,用于排名用 bool LoadData(int g_num,int l_num,int is_win); FootBallTeam(void); FootBallTeam(int w,int l,int d,int gm,int gl,int m,int s,int i,char* n,int g); FootBallTeam(void); ; /以下是FootBallTeam.cpp文件代码#include FootBallTeam.h#include using namespace std;FootBallTeam:FootBallTeam():win_nu

14、m(0),lose_num(0),draw_num(0),game_num(0),goal_num(0),miss_num(0),score(0),grade(1),same(false)FootBallTeam:FootBallTeam(int w,int l,int d,int gm,int gl,int m,int s,int i,char* n,int g) win_num=w; lose_num=l; draw_num=d; game_num=gm; goal_num=gl; miss_num=m; score=s; index=i; grade=g; same=false; str

15、cpy(name,n);bool FootBallTeam:LoadData(int g_num, int l_num, int is_win) game_num+; goal_num+=g_num; miss_num+=l_num; if (is_win0) win_num+; score+=3; else if (is_win=0) draw_num+; score+=1; else lose_num+; return true;FootBallTeam:FootBallTeam(void)/以下是运行文件代码,你自己随便起名字把x.cpp#include #include FootBal

16、lTeam.husing namespace std;#define TeamNum 10/假设有10个球队,你自己可以根据你们实际的表里的数目定义void SortList(FootBallTeam list,int n) /参数list为最新球队数据,n为球队数目 /这里就用最简单算法为O(n2)的冒泡排序吧,你自己要提升算法的话,试着自己使用 /2分或快速 for(int i=1;i=0) if(liststart.scorelistj.score) FootBallTeam temp=listj; listj=listi; listi=temp; start=j; if(liststa

17、rt.score=listj.score)/积分相同 int m=liststart.goal_num-liststart.miss_num-(listj.goal_num-listj.miss_num); if (m0) /净胜球多 FootBallTeam temp=listj; listj=listi; listi=temp; start=j; if (m=0) /净胜球也一样,看进球数 if(liststart.goal_numlistj.goal_num) FootBallTeam temp=listj; listj=listi; listi=temp; start=j; if (l

18、iststart.goal_num=listj.goal_num) liststart.same=true; j-; j=i; int t=1; for(int i=0;iTeamNum;i+) /排名次 if(listi.same)/和前面球队名次一样 listi.grade=t; else listi.grade=+t; /这里自己写输入代码把,很简单,循环着输出你想要的结果就行了。void main() char* path=D:/test.txt;/这个你根据你们积分表的文件名和路径自己写清楚 /如果你们老师没给提供原始文件的话,你就自己编一个吧 /* 同样的定义一个FootBallT

19、eam ListTeamNum; for(int k=0;kTeamNum;k+) FootBallTeam f(.);/.省略号是你自己要的数据,具体参数看代码的构造函数列表。 就那个多参数的构造函数。 Listk=f; char* path=D:/test.txt; FILE* fp=fopen(path,w); fwrite(&List,sizeof(FootBallTeam)*TeamNum,TeamNum,fp); fclose(fp); 这样就存储进去了,然后下面继续。 */ FootBallTeam ScoreListTeamNum; /首先从积分表文件中读取原始数据 FILE*

20、 fp=fopen(path,r); if (fp=NULL) return; if(fread(&ScoreList,sizeof(FootBallTeam)*TeamNum,TeamNum,fp)=-1); return; fclose(fp); for(int i=0;iTeamNum;i+) ScoreListi.index=i; /把当前球队名次作为索引号 for(int i=0;iTeamNum/2;i+) int i1,i2;/分别记录两个输入球队的索引号 int g1,g2;/分别记录两个球队的进球数 char* input; while(1) cout请输入第iinput;

21、char temp2; /球队索引号最多为2位数,进球数一般也不超过2位数,篮球的自己改 int num=strlen(input); int index=0;/记录input的索引 int temp_index=0;/记录temmp的索引 while(inputindex!=v|inputindex!=s) /这里自己加对输入的判断,比如把数字输入成字母了, /我这里就不罗嗦了,下面几个while里卖弄是一样的。如果不写,就保证别输入错 temptemp_index+=inputindex+; if(index=num) cout=num) cout=num) cout你输入的数据有错请重新输入; continue; g1=atoi(temp); temp_index=0; while(inputindex!=0) temptemp_index+=inputindex+; g2=atoi(temp); ScoreListi1.LoadData(g1,g2,g1-g2); ScoreListi2.LoadData(g2,g1,g2-g1); break; SortList(ScoreList,TeamNum); system(pause);

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

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