运动会比赛计分系统

2020-03-03 04:20:09 来源:范文大全收藏下载本文

#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(\"\\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\");

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

printf(\"\\n\\n\\n\"); } //查询函数

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(\"此次运动会没有这个项目\\n\\n\");//学校编号超出范围,则输出警告

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(\"所获得的名次:%d\\n\",h[i-1].c[j-1].range[k]); //输出要查询学校项目的成绩

}

}

}

printf(\"\\n\");

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

scanf(\"%d\",&s);

printf(\"\\n\\n\");

}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 opened\\n\");

exit(1);

}

for(i=0;i

{

printf(\"学校编号:\");

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

printf(\"%d\\n\",k);

printf(\"学校总分:\");

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

printf(\"%d\\n\",k);

printf(\"男团总分:\");

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

printf(\"%d\\n\",k);

printf(\"女团总分:\");

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

printf(\"%d\\n\",k);

printf(\"\\n\\n\\n\");

getch();

for(j=0;j

{

printf(\"项目编号:\");

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

printf(\"%d\\n\",k);

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

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

printf(\"%d\\n\",k);

for(s=0;s

{

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

if(k!=0)

printf(\"名次:\");

printf(\"%d\\n\",k);

}

for(s=0;s

{

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

if(k!=0)

printf(\"分数:\");

printf(\"%d\\n\",k);

}

}

printf(\"\\n\\n\\n\");

getch(); }

fclose(report); //关闭文件

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

void main() {

int choice;

printf(\"\\n ╔===================★ welcome ★======================╗\\n\");

printf(\"\\n

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

printf(\"\\n

★★★★★★

Design by 陈雪芸

★★★★★★

\\n\");

printf(\"\\n\\n

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

printf(\"

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

printf(\"

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

printf(\"

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

*********************\\n\\n\");

printf(\" ╚========╝\\n\\n\\n\");

printf(\"请选择要实现步骤的编号:\\n\\n\");

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);

} }

c语言课程设计运动会比赛计分系统(含任务书)

网球比赛计分规则

网球比赛计分制(优秀)

象棋比赛计分小表

高尔夫比赛中计分方式

趣味运动会计分规则(全文)

第五章计分考核管理系统

体育课_网球作业_网球比赛计分规则

运动会比赛

违章计分

《运动会比赛计分系统.doc》
运动会比赛计分系统
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文