运动会比赛计分系统_8运动会比赛计分系统

2020-02-28 其他范文 下载本文

运动会比赛计分系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“8运动会比赛计分系统”。

#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

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(“nn*****学校编号:%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(“nn*****学校总分:%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(“请选择继续,0 跳出n”);

scanf(“%d”,&sign);}while(sign==2);//循环执行输出语句

printf(“nnn”);} //查询函数

void inquiry()

{

int choice;int i,j,k,s;

printf(“n*****按学校编号查询*****n”);

do{

printf(“要查询的参赛学校编号:”);

scanf(“%d”,&i);

if(i>n)

printf(“错误:这个学校没有参加此次运动会!”);

else {

printf(“所要查询的参赛项目编号:”);

scanf(“%d”,&j);

if(j>m+w||j==0)

printf(“此次运动会没有这个项目nn”);//学校编号超出范围,则输出警告

else

{

printf(“n这个项目取前%d名,该学校的成绩如下:n”,h[0].c[j-1].top);

for(k=0;k

if(h[i-1].c[j-1].range[k]!=0)

{

printf(“所获得的名次:%dn”,h[i-1].c[j-1].range[k]);//输出要查询学校项目的成绩

}

}

}

printf(“n”);

printf(“请选择 2 继续 , 0 跳出n”);

scanf(“%d”,&s);

printf(“nn”);

}while(s==2);

//循环执行输出语句 } //把数据存储在文件中

void writedata()

{

FILE *report;

int i;

if((report=fopen(“sportsdata.txt”,“w”))==null){

printf(“不能打开文件n”);

exit(1);

} for(i=0;i

fwrite(&h[i],sizeof(headnode),1,report);

fclose(report);}

//按头结点块写入

//读出文件中数据的函数

void readdata()

{

FILE *report;

int i,j,k,s;

if((report=fopen(“sportsdata.txt”,“r”))==null)

{

printf(“file can not be openedn”);

exit(1);

}

for(i=0;i

{

printf(“学校编号:”);

fread(&k,sizeof(int),1,report);

printf(“%dn”,k);

printf(“学校总分:”);

fread(&k,sizeof(int),1,report);

printf(“%dn”,k);

printf(“男团总分:”);

fread(&k,sizeof(int),1,report);

printf(“%dn”,k);

printf(“女团总分:”);

fread(&k,sizeof(int),1,report);

printf(“%dn”,k);

printf(“nnn”);

getch();

for(j=0;j

{

printf(“项目编号:”);

fread(&k,sizeof(int),1,report);

printf(“%dn”,k);

printf(“所取得的名次数量:”);

fread(&k,sizeof(int),1,report);

printf(“%dn”,k);

for(s=0;s

{

fread(&k,sizeof(int),1,report);

if(k!=0)

printf(“名次:”);

printf(“%dn”,k);

}

for(s=0;s

{

fread(&k,sizeof(int),1,report);

if(k!=0)

printf(“分数:”);

printf(“%dn”,k);

}

}

printf(“nnn”);

getch();}

fclose(report);//关闭文件

} //按照读一个数据就输出一个数据的方式显示数据内容

void main(){

int choice;

printf(“n ╔===================★ welcome ★======================╗n”);

printf(“n

******************运动会比赛计分系统*******************n”);

printf(“n

★★★★★★

Design by 陈雪芸

★★★★★★

n”);

printf(“nn

********************1.输入比赛信息*********************n”);

printf(“

********************2.输出比赛信息*********************n”);

printf(“

********************3.查询比赛信息*********************n”);

printf(“

********************4.退出系统

*********************nn”);

printf(“ ╚========╝nnn”);

printf(“请选择要实现步骤的编号:nn”);

scanf(“%d”,&choice);switch(choice){

case 1:

inputinformation();

writedata();

main();

case 2:

output();

main();

case 3:

inquiry();

main();

case 4:

exit(0);

default:

exit(0);

} }

《运动会比赛计分系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
运动会比赛计分系统
点击下载文档
相关专题 8运动会比赛计分系统 运动会 系统 8运动会比赛计分系统 运动会 系统
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文