校际运动会成绩管理功能

完成校际运动会成绩管理功能,包括输入项目及参赛成绩,输入参赛学校,统计各校成绩并排序。
各项目名次取法有如下几种:
取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;
取前3名:第1名得分5,第2名得分3,第3名得分2;
用户自定义分数选择,并有查错功能(名次靠前的得分要高于名次靠后的得分)
【实现提示】
(1)显示主菜单功能选项,包括初始化、输入比赛成绩、修改比赛成绩、成绩统计、数据读取及存储。
(2)初始化:从文件读取比赛项目和参赛学校;增加比赛项目及名称;增加参赛学校及名称;
(3)输入各比赛项目比赛成绩:选择项目,输入各名次的选手名及所属学校。
(4)统计各学校总分并排序。
(5)输出显示所有参赛项目及已输入成绩,并提示未完成输入的项目。
(6)修改已输入比赛项目成绩:选择项目—>选择待修改名次—>修改该名次选手名及学校
(7)输出到文件,并能从文件进行数据的读取。
有哪位大哥愿意出手帮帮孩纸QAQ

可以定义两个结构体,比赛项目和学校

typedef struct
{
    char name[25];//比赛项目名
    char result[3][25];//前三3名运动员名
    char sc_result[3][25];//前3名运动员学校名
} Match;

typedef struct
{
    char schname[25];
    int score;
} School;

30解决

基本就是个数据录入和排序,给你个参考吧https://blog.csdn.net/Keep_Trying_Go/article/details/126692841

校季运动会成绩管理与统计
如有帮助望采纳

#include

struct match   //声明一个比赛类型

{

int isMen;//判断是否为男子,1则为男子

char name[100];//比赛名字

char result[3][20];//比赛结果,存储前三名名字

char SchoolOfResult[3][20];//前三名学校名字

}allMatch[100];          //声明所有比赛,默认不超过100;

int main()

{

int i,j, z, n , m, w, temp_flag, flag;

char school[10][20];//学校名称

int score[3];//前三名加分

char temp_result[3][20];//存刚输入的比赛结果,前三名名字

char temp_SchoolOfresult[3][20];//存刚输入的比赛结果前三名学校名字

char temp_name[20];//存刚输入学校名字

int scoreOfSchool[10] = {0,0,0,0,0,0,0,0,0,0};//各学校总分,下标与school对应

printf("输入参赛学校总数、男子竞赛项目数量和女子项目数量:\n");

scanf("%d %d %d",&n,&m,&w);

//struct match allMatch[100];          //声明所有比赛,默认不超过100

printf("\n请输入学校名称:\n");

for(i = 0; i < n; i++)

{

scanf("%s",school[i]);//接受输入的学校名字

}

printf("\n请输入前三名可得分:\n");

for(i = 0;i < 3;i++)//接受输入的前三名加分

{

scanf("%d",&score[i]);

}

printf("\n接下来请输入比、比赛结果:\n(格式:比赛名称  第一名  学校  第二名  学校  第三名  学校)\n男子项目:\n");

for(i = 0; i < m;i++)//男子比赛结果,用for循环

{

allMatch[i].isMen = 1;

scanf("%s %s %s %s %s %s %s",temp_name,temp_result[0],temp_SchoolOfresult[0],temp_result[1],temp_SchoolOfresult[1],temp_result[2],temp_SchoolOfresult[2]);

strcpy(allMatch[i].name , temp_name);

strcpy(allMatch[i].result[0] ,temp_result[0]);

strcpy(allMatch[i].SchoolOfResult[0],temp_SchoolOfresult[0]);

strcpy(allMatch[i].result[1] , temp_result[1]);

strcpy(allMatch[i].SchoolOfResult[1],temp_SchoolOfresult[1]);

strcpy(allMatch[i].result[2] , temp_result[2]);

strcpy(allMatch[i].SchoolOfResult[2],temp_SchoolOfresult[2]);

}//男子for循环

printf("\n女子项目:\n");

for(i = 0; i < w; i++)//女子比赛结果

{

allMatch[m+i].isMen = 0;

scanf("%s %s %s %s %s %s %s",temp_name,temp_result[0],temp_SchoolOfresult[0],temp_result[1],temp_SchoolOfresult[1],temp_result[2],temp_SchoolOfresult[2]);

strcpy(allMatch[m+i].name , temp_name);

strcpy(allMatch[m+i].result[0] ,temp_result[0]);

strcpy(allMatch[m+i].SchoolOfResult[0],temp_SchoolOfresult[0]);

strcpy(allMatch[m+i].result[1] , temp_result[1]);

strcpy(allMatch[m+i].SchoolOfResult[1],temp_SchoolOfresult[1]);

strcpy(allMatch[m+i].result[2] , temp_result[2]);

strcpy(allMatch[m+i].SchoolOfResult[2],temp_SchoolOfresult[2]);

}//女子for循环

printf("\n现在比赛结果输入完毕!您可以选择查询操作。\n");

temp_flag = 1;

while(temp_flag == 1){//判断是否退出,false则退出循环

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

printf("请选择要进行的操作");

printf("\n1.查看各学校总分 \n2.查看各学校各项目结果\n3.结束\n");

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

scanf("%d",&flag);//根据输入的数字选择操作

switch(flag)

{

case 1://输入0则

for(i = 0 ; i < n; i++)

{

scoreOfSchool[i] = 0;

}

printf("\n总共有%d个学校,分别是:\n",n);

for(i = 0; i < n;i++ )

{

printf("%s  ",school[i]);//首先打印出n个学校

}

printf("\n");

printf("\n以下是各个学校的得分情况:\n");

for(i = 0;i < (w+m);i++)//循环得到allMatch里的元素

{

for(z = 0;z < 3; z++)//z表示名次,0对应第一名

{

for(j = 0; j < n;j++)//循环与所有学校比较

{

if(strcmp(allMatch[i].SchoolOfResult[z],school[j])==0)//判定学校名字

{

scoreOfSchool[j] += score[z];//对应学校加对应的分数

}

}

}

}

for(i = 0;i < n ;i++)

{

printf("%s %d\n",school[i],scoreOfSchool[i]);//输出所以学校总分

}

break;

case 2://输入1则

printf("\n比赛详细情况:\n比赛项目 男子or女子 第一名(名字和学校)第二名(名字和学校)第三名(名字和学校)\n");

for(i = 0;i

{

printf("     %s     ",allMatch[i].name);//输出比赛名字

if(allMatch[i].isMen==1)

{

printf("男子          ");}

else printf("女子          ");

for(j = 0;j < 3;j++)

{

printf("%s  ",allMatch[i].result[j]);//输出比赛的前三名 名字

printf("%s                ",allMatch[i].SchoolOfResult[j]);

}

printf("\n");

}

break;

case 3://输入3则

temp_flag = 0;//改为false,使得下次进入while结束

break;

}

}

return 0;

}

选错行业了,C语言是在校学生吧,如果java的话,我能帮助你~

用c语言中的数据结构就能解决了,如果不能解决,可以私我。