📄 sports.txt
字号:
#define M 20
#include <conio.h>
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int mm,m,w;
struct scorelist
{
int score;
char schoolnum[5];
int itemnum[5];
};
struct School
{
char schoolnum[5];
struct scorelist list[M];
int teamscore;
int mscore;
int gscore;
};
struct School school[M];
Sum(){
int i,j;
for(i=1;i<=mm;i++){
school[i].teamscore=0;
school[i].gscore=0;
school[i].mscore=0;
for(j=1;j<=m+w;j++){
school[i].teamscore+=school[i].list[j].score;
if(j==m) school[i].mscore= school[i].teamscore;
}
school[i].gscore= school[i].teamscore-school[i].mscore;
}
}
void sort_teamsore() {
int i,j;
struct scorelist list1[M];
struct scorelist temp;
for(i=1;i<=mm;i++){
for(j=0;j<=4;j++)
list1[i].schoolnum[j] = school[i].schoolnum[j];
list1[i].score = school[i].teamscore;
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<=mm;j++)
if(list1[j-1].score<list1[j].score){
temp.score=list1[j-1].score;
for(i=0;i<=4;i++)
temp.schoolnum[i]=list1[j-1].schoolnum[i];
list1[j-1].score= list1[j].score;
for(i=0;i<=4;i++)
list1[j-1].schoolnum[i]= list1[j].schoolnum[i];
list1[j].score= temp.score;
for(i=0;i<=4;i++)
list1[j].schoolnum[i]= temp.schoolnum[i];
}
printf(" 学校编号 总分 \n ");
for(i=1;i<=mm;i++)
printf(" %7s%15d\n", list1[i].schoolnum,list1[i].score);
}
void sort_mscore() {
int i,j;
struct scorelist list1[M];
struct scorelist temp;
for(i=1;i<=mm;i++){
for(j=0;j<=4;j++)
list1[i].schoolnum[j] = school[i].schoolnum[j];
list1[i].score = school[i].mscore;
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<=mm;j++)
if(list1[j-1].score<list1[j].score){
temp.score=list1[j-1].score;
for(i=0;i<=4;i++)
temp.schoolnum[i]=list1[j-1].schoolnum[i];
list1[j-1].score= list1[j].score;
for(i=0;i<=4;i++)
list1[j-1].schoolnum[i]= list1[j].schoolnum[i];
list1[j].score= temp.score;
for(i=0;i<=4;i++)
list1[j].schoolnum[i]= temp.schoolnum[i];
}
printf(" 学校编号 男队总分 \n ");
for(i=1;i<=mm;i++)
printf(" %7s%15d\n", list1[i].schoolnum,list1[i].score);
}
void sort_gscore() {
int i,j;
struct scorelist list1[M];
struct scorelist temp;
for(i=1;i<=mm;i++){
for(j=0;j<=4;j++)
list1[i].schoolnum[j] = school[i].schoolnum[j];
list1[i].score = school[i].gscore;
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<=mm;j++)
if(list1[j-1].score<list1[j].score)
{
temp.score=list1[j-1].score;
for(i=0;i<=4;i++)
temp.schoolnum[i]=list1[j-1].schoolnum[i];
list1[j-1].score= list1[j].score;
for(i=0;i<=4;i++)
list1[j-1].schoolnum[i]= list1[j].schoolnum[i];
list1[j].score= temp.score;
for(i=0;i<=4;i++)
list1[j].schoolnum[i]= temp.schoolnum[i];
}
printf(" 学校编号 女队总分 \n ");
for(i=1;i<=mm;i++)
printf("%7s%15d\n", list1[i].schoolnum,list1[i].score);
}
void Search_byschnum()
{
int i,j;
int snum;
printf(" 请输入学校编号: \n ");
printf(" --------------\n");
scanf(" %8d",&snum);
for(i=1;i<=mm;i++)
{
if(snum==atoi(school[i].schoolnum))
break;
}
if(i<=mm)
{
printf(" 学校编号 学校总分 男队总分 女队总分\n");
printf(" %7s%14d%19d%20d\n",school[i].schoolnum,
school[i].teamscore,school[i].mscore,school[i].gscore) ;
}
else
printf("未找到这学校\n");
}
void Search_item()
{
int i, j;
int ssnum,itemnu;
printf(" 请输入学校编号:\n");
printf(" --------------\n");
scanf(" %8d",&ssnum);
for(i=1;i<=mm;i++)
{
if(ssnum==atoi(school[i].schoolnum))
{
printf(" 请输入项目编号:\n ");
printf(" ---------------\n");
scanf(" %8d",&itemnu);
for(j=1;j<=m+w;j++)
{
if(itemnu==atoi(school[i].list[j].itemnum))
{
printf(" 这项目分数是:") ;
printf("%d \n",school[i].list[j].score);
}
if(itemnu==atoi(school[i].list[j].itemnum))
break;
}
}
if(ssnum==atoi(school[i].schoolnum)) break;
}
}
void Search_head3()
{
int i,j,k;
int itemnu;
struct scorelist list1[M];
struct scorelist temp;
printf(" 请输入项目编号:\n");
printf(" ---------------\n");
scanf(" %7d",&itemnu);
for(i=1;i<=mm;i++)
for(j=1;j<=w+m;j++)
if(itemnu==atoi(school[i].list[j].itemnum))
{
list1[i].score=school[i].list[j].score;
for(k=0;k<=4;k++)
{
list1[i].schoolnum[k]=school[i].schoolnum[k];
list1[i].itemnum[k]=school[i].list[j].itemnum[k];
}
}
for(i=1;i<=mm-1;i++)
for(j=i+1;j<mm-1;j++)
if(list1[j-1].score<list1[j].score)
{
temp.score=list1[j-1].score;
for(k=0;k<=4;k++)
{
temp.schoolnum[k]=list1[j-1].schoolnum[k];
temp.itemnum[k]=list1[j-1].itemnum[k];
}
list1[j-1].score=list1[j].score;
for(k=0;k<=4;k++)
{
list1[j-1].schoolnum[k]=list1[j].schoolnum[k];
list1[j-1].itemnum[k]=list1[j].itemnum[k];
}
list1[j].score=temp.score;
for(k=0;k<=4;k++)
{
list1[j].schoolnum[k]=temp.schoolnum[k];
list1[j].itemnum[k]=temp.itemnum[k];
}
}
printf(" 这项目前三名的学校是 :\n");
printf(" 项目编号 学校编号 此项目分数\n");
for(i=1;i<=3;i++)
printf("%17s%22s%21d\n", list1[i].itemnum,list1[i].schoolnum,list1[i].score);
}
int menu_select( )
{
int sn;
printf(" ===================================================\n");
printf(" * 运动会分数统计系统 *\n");
printf(" ===================================================\n");
printf(" * 1.输出全部学校总分,男女团队总分 *\n");
printf(" * 2.按学校总分排序输出 *\n");
printf(" * 3.按学校男队分数排序输出 *\n");
printf(" * 4.按学校女队分数排序输出 *\n");
printf(" * 5.按学校编号查找查询某学校的分数情况 *\n");
printf(" * 6.按学校编号查找查询学校某项目分数 *\n");
printf(" * 7.按项目编号查询获得前三名的学校 *\n");
printf(" * 0.退出 *\n");
printf(" ===================================================\n");
printf(" 选择 0-7:");
for( ; ; )
{
scanf("%d",&sn);
if (sn<0||sn>7)
printf("输入错误,请在0-7选择: ");
else
break;
}
return sn;
}
main(){
FILE *f;
int i,j;
f=fopen("score.dat","r");
for(i=1;i<=3;i++){
if(i==1) fscanf(f,"%d",&mm);
if(i==2) fscanf(f,"%d",&m);
if(i==3) fscanf(f,"%d",&w);
}
for(i=1;i<=mm;i++)
{
fscanf(f,"%s",school[i].schoolnum);
for(j=1;j<=2*(w+m);j++)
{
if(j<=w+m)
fscanf(f,"%s",school[i].list[j].itemnum );
else
fscanf(f,"%d",&school[i].list[j-w-m].score );
}
}
fclose(f);
Sum();
for( ; ; ){
switch(menu_select( ) )
{
case 1:
printf(" =========================================\n");
printf(" * 1.输出全部学校总分,男女团队总分 *\n");
printf(" =========================================\n");
printf(" 学校编号 学校总分 男队总分 女队总分\n");
for(i=1;i<=mm;i++)
printf(" %7s%14d%19d%20d\n",school[i].schoolnum,
school[i].teamscore,school[i].mscore,school[i].gscore) ;
break;
case 2:
printf(" =====================================\n");
printf(" * 按学校总分排序输出 *\n");
printf(" =====================================\n");
sort_teamsore();
break;
case 3:
printf(" ================================================\n");
printf(" * 按学校男队分数排序输出 *\n");
printf(" ================================================\n");
sort_mscore();
break;
case 4:
printf(" ================================================\n");
printf(" * 按学校女队分数排序输出 *\n");
printf(" ================================================\n");
sort_gscore();
break;
case 5:
printf(" ================================================\n");
printf(" * 按学校编号查找查询某学校的分数情况 *\n");
printf(" ================================================\n");
Search_byschnum();
break;
case 6:
printf(" =============================================\n");
printf(" * 按学校编号查找查询学校某项目分数 *\n");
printf(" ==============================================\n");
Search_item();
break;
case 7:
printf(" ============================================\n");
printf(" * 按项目编号查询获得前三名的学校 *\n");
printf(" ============================================\n");
Search_head3();
break;
case 0:
printf("good bye!\n");
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -