课题一 运动会分数统计 20

课题一运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1~m,女子m+1~m+w。不同的项目取前五名或前... 课题一 运动会分数统计
任务:
参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1~m,女子m+1~m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定。(m<=20,n<=20)

功能要求:
1) 可以输入各个项目的前三名或前五名的成绩;
2) 能统计各学校总分;
3) 可以按学校编号、学校总分、男女团体总分排序输出;
4) 可以按学校编号查询学校某个项目的情况;
5) 可以按项目编号查询取得前三或前五名的学校。
用C语言编程,急啊,求求各位高手帮帮忙
展开
 我来答
波尔艾南Cc
2008-01-12 · 超过18用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:54.3万
展开全部
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define NULL 0
# define N 4
# define M 3
# define W 2

struct match_data
{int Range; /*paiming*/
char name[20];
int Score; /*defen*/
}match_data[M+W];

struct school_data
{struct match_data match_data[M+W];
int m_Score; /*nan yundongyuan defen*/
int w_Score; /*nv yundongyuan defen*/
int total_Score; /*zongfen*/
}school_data[N];

Waring_message()
{
printf ("\n Wrong input value! Please try again.\n");
}

input_1(m)
{
int i,j,k,T=1;
for(i=1,k=7;i<=3;i++,k-=2)
{printf ("\n NO.%d : %d points.",i,k);
while(T)
{printf ("\n\n School number: (1--%d)",N);
scanf ("%d",&j);
if ((j>0)&&(j<=N)) T=0;
else { Waring_message();T=1;}
}
printf ("\n Please input the athlete's name:");
scanf ("%s",&school_data[j-1].match_data[m-1].name);
if (m<=M) school_data[j-1].m_Score+=k;
else school_data[j-1].w_Score+=k;
school_data[j-1].total_Score+=k;
school_data[j-1].match_data[m-1].Range=i;
school_data[j-1].match_data[m-1].Score=k;
T=1;
}

for(i=4,k=2;i<=5;i++,k-=1)
{printf ("\n NO.%d : %d points",i,k);
while(T)
{printf ("\n\n School number: (1--%d)",N);
scanf ("%d",&j);
if ((j>0)&&(j<=N)) T=0;
else { Waring_message();T=1;}
}
printf ("\n The athlete's name:");
scanf ("%s",&school_data[j-1].match_data[m-1].name);
if (m<=M) school_data[j-1].m_Score+=k;
else school_data[j-1].w_Score+=k;
school_data[j-1].total_Score+=k;
school_data[j-1].match_data[m-1].Range=i;
school_data[j-1].match_data[m-1].Score=k;
T=1;
}
}

input_2(m)
{int i,j,k=5; int T=1;
printf ("\n NO.1 : 5 points");
while(T)
{printf ("\n\n School number: (1--%d)",N);
scanf ("%d",&j);
if ((j>0)&&(j<=N)) T=0;
else { Waring_message();T=1;}
}
printf ("\n The athlete's name:");
scanf ("%s",&school_data[j-1].match_data[m-1].name);
if (m<=M) school_data[j-1].m_Score+=k;
else school_data[j-1].w_Score+=k;
school_data[j-1].total_Score+=k;
school_data[j-1].match_data[m-1].Range=1;
school_data[j-1].match_data[m-1].Score=k;

for(i=2,k=3;i<=3;i++,k-=1)
{T=1;
printf ("\n NO.%d : %d points",i,k);
while(T)
{printf ("\n\n School number: (1--%d)",N);
scanf ("%d",&j);
if ((j>0)&&(j<=N)) T=0;
else { Waring_message();T=1;}
}
printf ("\n The athlete's name:");
scanf ("%s",&school_data[j-1].match_data[m-1].name);
if (m<=M) school_data[j-1].m_Score+=k;
else school_data[j-1].w_Score+=k;
school_data[j-1].total_Score+=k;
school_data[j-1].match_data[m-1].Range=i;
school_data[j-1].match_data[m-1].Score=k;
}
}

input_3(m)
{int i,j,k,T,Q,S=1;
for(i=1,T=1;T==1;i++)
{printf ("\n NO.%d\n points:",i);
scanf ("%d",&k);
while(S)
{printf ("\n School number: (1--%d)",N);
scanf ("%d",&j);
if ((j>0)&&(j<=N)) S=0;
else { Waring_message();S=1;}
}
printf ("\n The athlete's name:");
scanf ("%s",&school_data[j-1].match_data[m-1].name);
if (m<=M) school_data[j-1].m_Score+=k;
else school_data[j-1].w_Score+=k;
school_data[j-1].total_Score+=k;
school_data[j-1].match_data[m-1].Range=i;
school_data[j-1].match_data[m-1].Score=k;

printf ("\n Continue?\n key 0:yes\n key 1-9:end\n");
scanf ("%d",&Q);
T=(Q==0);
S=1;
}
}

input()
{
int i,T=1;
while(T)
{printf ("\n Please input the number of the game: (1--%d)",M+W);
scanf ("%d",&i);
if ((i>0)&&(i<=M+W)) T=0;
else {Waring_message(); T=1;}
}
return (i);
}

output_1()
{
int n,m,T=1;
while (T)
{printf ("\n Please input the school number: (1--%d)",N);
scanf ("%d",&m);
if ((m>0)&&(m<=N)) T=0;
else { Waring_message(); T=1;}
}
printf ("\n Data of school %d:",m);
printf ("\n **************************************************************");
printf ("\n Item NO. Range Score NAME");
for (n=1;n<=(M+W);n++)
{printf ("\n\n %d %d",n,school_data[m-1].match_data[n-1].Range);
printf (" %d",school_data[m-1].match_data[n-1].Score);
printf (" %s",school_data[m-1].match_data[n-1].name);
}
printf ("\n **************************************************************\n");
}

output_2()
{int m,T=1;
while (T)
{printf ("\n Please input the school number:(1--%d)",N);
scanf ("%d",&m);
if ((m>0)&&(m<=N)) T=0;
else { Waring_message();T=1;}
}
printf ("\n Team data of school %d",m);
printf ("\n ****************************************************************");
printf ("\n M_Score W_Score TOTAL_Score");
printf ("\n\n %d",school_data[m-1].m_Score);
printf (" %d",school_data[m-1].w_Score);
printf (" %d",school_data[m-1].total_Score);
printf ("\n ****************************************************************\n");
}

main()
{
clrscr();
int s,m,T=1;
while(T)
{
m=input();
printf ("\n Please input the game type: ");
printf ("\n 0 : Type1");
printf ("\n 1 : Type2");
printf ("\n 2--9:user-defined\n");
scanf ("%d",&s);
if (s==0) input_1(m);
else if (s==1) input_2(m);
else input_3(m);
printf ("\n Press key 0 to continue input.\n key 1--9 to view data.");
scanf ("%d",&s);
if(s==0) T=1;
else T=0;
}

T=1;
while(T)
{printf ("\n key 0 : View school's game data.");
printf ("\n key 1 : View school's team data.");
printf ("\n key 2--9: End the programe.");
scanf ("%d",&s);
if(s==0) output_1();
else if(s==1) output_2();
else {T=0; printf (" Thanks, goodbye!\n");}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式