运动会比赛计分系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

#include

#define n 2//学校数目

#define m 1//男子项目数目

#define w 1//女子项目数目

#define null 0

struct itemnode{

int itemnum; //项目编号

int top; //取名次的数目

int range[5]; //名次

int mark[5]; //分数

char name[8];

}; //定义项目结点的类型

struct headnode{

int schoolnum; //学校编号

int score; //学校总分

int mscore; //男团体总分

int wscore; //女团体总分

itemnode c[m+w]; //项目数组

};//定义头结点类型

headnode h[n];//定义一个头结点数组

void inputinformation() //输入信息,建立系统

{

int i,j,k,s;

char ch;

for(i=0;i

{

h[i].score=0;

h[i].mscore=0;

h[i].wscore=0; //初始化头结点

printf("====参赛学校编号:");

scanf("%d",&h[i].schoolnum); //输入头结点信息

for(j=0;j

{

printf(" 参赛项目编号:");

scanf("%d",&h[i].c[j].itemnum);

printf(" 取前3名or前5名:");

scanf("%d",&h[i].c[j].top);

printf(" 所取名次数量:");

scanf("%d",&k); //输入项目信息

for(s=0;s

{

h[i].c[j].range[s]=0;

h[i].c[j].mark[s]=0; //初始化排名和分数

printf(" 所获得的名次:");

scanf("%d",&h[i].c[j].range[s]); //输入所获名次信息

printf(" 该运动员姓名:");

getchar(ch);

gets(h[i].c[j].name);

if(h[i].c[j].top==3)

switch(h[i].c[j].range[s])

{

case 0: h[i].c[j].mark[s]=0; break;

case 1: h[i].c[j].mark[s]=5; break;

case 2: h[i].c[j].mark[s]=3; break;

case 3: h[i].c[j].mark[s]=2; break;

}

else

switch(h[i].c[j].range[s])

{

case 0: h[i].c[j].mark[s]=0; break;

case 1: h[i].c[j].mark[s]=7; break;

case 2: h[i].c[j].mark[s]=5; break;

case 3: h[i].c[j].mark[s]=3; break;

case 4: h[i].c[j].mark[s]=2; break;

case 5: h[i].c[j].mark[s]=1; break;

}

h[i].score=h[i].score+h[i].c[j].mark[s]; //按取前三名还是取前五名分别记分

if(j<=m-1)

h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子项目(取前三名)则记到男子分数里面去

else

h[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子项目(取前五名)则记到女子项目里面去

}

printf("\n");

}

}

printf("\n");

}

void output() //输出函数

{

int choice,i,j,k;

int remember[n];

int sign;

do

{

printf("*******************1.按参赛学校编号输出.*******************\n");

printf("*******************2.按参赛学校总分输出.*******************\n");

printf("\n*********************** 请选择编号*************************\n:");

scanf("%d",&choice);

switch(choice)

{

case 1:

for(i=0;i

{

printf("\n\n*****学校编号:%d",h[i].schoolnum);

printf("*****学校总分:%d" ,h[i].score);

printf("*****男团总分:%d",h[i].mscore);

printf("*****女团总分:%d ",h[i].wscore);

} //按编号顺序输出

break;

case 2:

for(i=0;i

remember[i]=i;

for(i=0;i

{

for(j=i+1;j

if(h[remember[i]].score

{

k=remember[i];

remember[i]=remember[j];

remember[j]=k;

}

} // 用冒泡排序方法,用辅助数组记住头结点下标

for(i=0;i

{

printf("\n\n*****学校总分:%d",h[remember[i]].score);

printf("*****学校编号:%d" ,h[remember[i]].schoolnum);

printf("*****男团总分:%d",h[remember[i]].mscore);

printf("*****女团总分:%d ",h[remember[i]].wscore);

//按所记下标顺序输出

} //按学校总分输出

break;

}

printf("\n");

printf("请选择 2 继续,0 跳出\n");

相关文档
最新文档