⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sports.txt

📁 运动会分数统计系统 数据结构的课程设计
💻 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 + -