2020-08-03

98足球联赛积分程序
【问题描述】足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编一程序统计最近一轮比赛后,各队积分及排名。【基本要求】设积分表结构如下:队名(不超过15个字符),已比赛的场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。积分表放在正文文件中。最近一轮的结果从键盘输入,其形式为:主队名(可用代码)客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。【测试数据】可选择我国当年的甲A或甲B联赛的数据输入,并检查与报章公布的数据是否一致。目 录1 课程设计题目与要求 1.1设计题目 1.2设计要求 2 总体设计 (画出课题程序总体功能框架图并说明各个模块的功能)3 详细设计3.1数据结构设计(或类设计)说明设计所选用的数据结构,以及为什么?(数据结构形式及说明或类结构形式及说明)3.2模块设计 画出各模块程序流程图;各个模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等或画出类中的各成员函数程序流程图;各个成员函数模块功能说明:如函数功能、入口及出口参数说明,函数调用关系描述等,说明组内每个同学的分工,每个同学必须负责至少一个模块的编码任务。4 运行结果 (截图及说明)5 课程设计总结 必须结合题目实际,通过查阅和阅读相关资料文献以及在完成整个设计过程中碰到的问题及其解决方法,心得和收获。参考文献

求大佬,给我看看,
#include <stdio.h>
#include <stdlib.h>#include <string.h>#include<windows.h>#include<conio.h>#define LEN sizeof(match)typedef struct football{ char name[20];//[足球]队名 int num[4];//num[0]为单支球队需比赛场数, num[1]为赢场数,num[2]为平场数,num[3]为负场数 int goal;//进球数 int lose;//失球数 int integral;//积分 int pure;//净胜球 struct football *next; }match;void menu();//声明菜单函数 match *creat();//输入球队信息 void print(match *head);//排序 match *Add(match *head);//增加球队信息match *Amend(match *head);//修改球队信息 match *Del(match *head);//删除球队信息 void End();//退出该软件 int n=0;//记录节点长度 match *p2; void toxy(int x, int y)//将光标移动到X,Y坐标处{ COORD pos = { x , y }; HANDLE Out = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(Out, pos);} void menu(){ system(“cls”);//清屏 system(“color 72”);//颜色 toxy(17,4); printf("--------------------菜单-----------------------\n"); toxy(17,6); printf("| 1.创建球队 |\n"); toxy(17,8); printf("| 2. |\n"); toxy(17,10); printf("| 3.显示球队比赛信息 |\n"); toxy(17,12); printf("| 4. |\n"); toxy(17,14); printf("| 5.输入球队比赛信息 |\n"); toxy(17,16); printf("| 6. 结束操作 |\n"); toxy(17,18); printf("-----------------------------------------------\n"); toxy(17,20); printf(“输入你想要的操作:”);} match *creat(){ system(“cls”);//清屏 system(“color 74”);//颜色 int t,n=0; match *head,*p1; p2=p1=(match *)malloc(LEN); head=NULL; /录入足球队名,比赛场数,得、失 球数和进球积分/ /*输入第一个节点数据 */ printf(“输入参赛球队数量:”);//参赛的球队数量 scanf("%d",&t); while(n!=t) { n++; printf(“球队 %d :”,n);//球队名 scanf("%s",p1->name); p1->num[0]=0; p1->num[1]=0; p1->num[2]=0; p1->num[3]=0; p1->goal=0; p1->lose=0; p1->integral=0; p1->pure=0; if(n1) { head=p1; } else { p2->next=p1; p2=p1; } p1=(match *)malloc(LEN); } p2->next=NULL; return head;} match *Amend(match *head)//输入比赛信息 { system(“cls”); system(“color 72”); match *p1=head,*p2=head; char name1[15],name2[15]; int goal1,goal2; printf(“输入主队:”); scanf("%s",name1); printf(“输入客队:”); scanf("%s",name2); printf(“输入主队得分:”); scanf("%d",&goal1); printf(“输入客队得分:”); scanf("%d",&goal2); while(p1!=NULL&&strcmp(p2->name,name1)!=0) { p1=p1->next; if(p1!=NULL) { p1->goal=p1->goal+goal1; p1->lose=p1->lose+goal2; if(goal1>goal2){ p1->num[1]++; } else if(goal1goal2){ p1->num[2]++; } else{ p1->num[3]++; } p1->pure=p1->goal-p1->lose; p1->integral=p1->num[1]*3+p1->num[2]; p1->num[0]=p1->num[1]+p1->num[2]+p1->num[3]; } } while(p2!=NULL&&strcmp(p2->name,name2)!=0) { p2=p2->next; if(p2!=NULL) { p2->goal=p2->goal+goal2; p2->lose=p2->lose+goal1; if(goal2>goal1){ p2->num[1]++; } else if(goal1goal2){ p2->num[2]++; } else{ p2->num[3]++; } p2->pure=p2->goal-p2->lose; p2->integral=p2->num[1]*3+p2->num[2]; p2->num[0]=p2->num[1]+p2->num[2]+p2->num[3]; } } return head;} void End(){ system(“cls”); system(“color 74”); toxy(20,10); printf(“谢谢您的使用!-”); exit(0);//退出 getch();} void print(match *head){ system(“cls”); system(“color 74”); match *p,*q,t1,t2,t3,*pt; for(p=head;p!=NULL;p=p->next)//球队排序,冒泡法排序 ,关于链表的排序有点小复杂哦~ { for(q=p->next;q!=NULL;q=q->next) //这里有3重排序 { if(p->integralintegral) { t1=*p; *p=*q; *q=t1; pt=p->next; p->next=q->next; q->next=pt; } else if(p->integralq->integral) { if(p->purepure) { t2=*p; *p=*q; *q=t2; pt=p->next; p->next=q->next; q->next=pt; } else if(p->pure==q->pure) { if(p->goalgoal) { t3=*p; *p=*q; *q=t3; pt=p->next; p->next=q->next; q->next=pt; } } } } } p=head;//重新让p指向第一个结点 toxy(10,4); printf("-------------------------足球比赛信息---------------------------\n"); toxy(10,6); printf(“球队 总场数 赢局 平局 输局 进球数 失球数 积分\n”); int m=8; while(p!=NULL) { toxy(10,m); printf(" %s%10d%10d%10d%10d%10d%10d%10d\n",p->name,p->num[0],p->num[1],p->num[2],p->num[3],p->goal,p->lose,p->integral); p=p->next; m+=2; } printf("\n请输入任意数返回菜单 "); getch(); } int main(){ match *head; char x; do{ system(“cls”); system(“color 72”); menu(); x=getch(); switch(x) { case ‘1’: head=creat(); break; case ‘3’: print(head); break; case ‘5’: head=Amend(head); break; case ‘6’: End(); break; default: printf(“输入错误,请重新输入:”); } }while(1);//永远为真 return 0;}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值