您的位置:首页 > 理论基础 > 数据结构算法

数据结构---运动会统计分析

2020-07-16 04:57 351 查看

1、 运动会分数统计

任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)

功能要求:1).可以输入各个项目的前三名或前五名的成绩;

2).能统计各学校总分,

3).可以按学校编号、学校总分、男女团体总分排序输出;

4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

输出形式:有中文提示,各学校分数为整形

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

 

#define NULL 0

#include <string.h>

int schoolCount=0;

int boyCount=0;

int girlCount=0;

int xm_Count=0;

int studentCount=0;

 

typedef struct Student              

{   int item;                   

    int count;                  

    int serial;                 

    char name[20];              

    int score;                  

    int range;                  

    int sex;                    

    int menscore;               

    int womenscore;             

    int totalscore;             

    int jifen;                  

};

 

typedef struct alexa

{   int serial;                 

    int menscore;               

    int womenscore;             

    int totalscore;             

};

struct alexa   P[10];

struct Student Stu[10];

 

void main() 

{   printf("------------------------------------------------------------nn");

    printf("--------------welcome to my School games system-------------nn");

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

           SetArgs();

           SetXmInfor();

           AddStudent();

           Tj_FX();

           OutPut_Link();

           choose();

           getch();

}

 

int SetArgs()    

{  int i;

 loop_1:

    printf("please import the number of School(n>=2)nn=");

    scanf("%d",&schoolCount);

    if(schoolCount<2)

    {printf("nERRORn"); goto loop_1;}

 loop_2:

    printf("nplease import the number of man xm(n<=20)nm=");

    scanf("%d",&boyCount);

    if(boyCount<0 || boyCount>20)

    {printf("nERRORn");goto loop_2;}

 loop_3:

    printf("nplease import the number of woman xm(n<=20)nw=");

    scanf("%d",&girlCount);

    if(girlCount<0 || girlCount>20)

    {printf("nERRORn");goto loop_3;}

    xm_Count=boyCount+girlCount;  

    studentCount=xm_Count*3;      

}

 

int SetXmInfor()

{

    int i;

    for(i=0;i<=boyCount-1;i++){

    Stu[i+1].item=i; 

    }

    for(i=0;i<=girlCount-1;i++){

    Stu[boyCount+i].item=i; 

    }

   for(i=0;i<=schoolCount-1;i++)

    P[i].serial=i+1;

}

 

int AddStudent(){

    int i;

    int School_ID; 

    char Student_name[20]; 

    int sex;

    int XM_ID;

    int score;

    int range;                  

    for(i=0;i<=studentCount-1;i++){

    printf("add winnersnplease import School ID.ID=");

    scanf("%d",&School_ID);

    printf("please import student,s. Name=");

    scanf("%s",&Student_name);

    printf("please choose student's set[0=w 1=m]. sex=");

    scanf("%d",&sex);

    if(sex==0)

        printf("nplease import xm ID(girlCoun). ID=");

    if(sex==1)

        printf("nplease import xm ID(boyCoun). ID=");

    scanf("%d",&XM_ID);

    printf("nplease import the xm score. score=");

    scanf("%d",&score);

    printf("nplease import defen range. range=");

    scanf("%d",&range);

   

    Stu[i].serial=School_ID;

    strcpy(Stu[i].name,Student_name);

    Stu[i].item=XM_ID ;

    Stu[i].range=range;

    Stu[i].score=score;

    Stu[i].sex=sex; 

    }

}

 

 

int OutPut_Link(){ 

 

    int i,j;

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

    printf("sch-ID athlete'name sex xm score rangen");

     for(i=0;i<=studentCount-1;i++){

    printf("%-7d%-13s%-4d%-3d%-6d%-5dn",Stu[i].serial,Stu[i].name,Stu[i].sex,Stu[i].item,Stu[i].score,Stu[i].range);

    }  printf("----------------------------------------------------------n");

}

 

 int Tj_FX()

{

    int i,j;

     for(i=0;i<=studentCount-1;i++){

       for(j=0;j<=schoolCount-1;j++){

       if(P[j].serial==Stu[i].serial)

       { P[j].totalscore=P[j].totalscore+Stu[i].score; 

            if(Stu[i].sex==0)P[j].womenscore=P[j].womenscore+Stu[i].score;

               else  P[j].menscore=P[j].menscore+Stu[i].score;   } }}

       

}

 

int alexa_1()

{  int i,j,t,z;

for(i=0;i<=schoolCount-1;i++)

     if(P[i].totalscore<P[i+1].totalscore)

     { t=P[i].totalscore;P[i].totalscore=P[i+1].totalscore;P[i+1].totalscore=t;

       z=P[i].serial;P[i].serial=P[i+1].serial;P[i+1].serial=z;

     }

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

    printf("School ID   zongjifenn");     

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

for(i=0;i<=schoolCount-1;i++)

  {  printf("%-14d%-9dn",P[i].serial,P[i].totalscore);

  } }

 

int alexa_2()

  { int i,j,v,w;

for(i=0;i<=schoolCount-1;i++)

     if(P[i].menscore<P[i+1].menscore)

     { v=P[i].menscore; Stu[i].menscore=P[i+1].menscore;P[i+1].menscore=v;

       w=P[i].serial;P[i].serial=P[i+1].serial;P[i+1].serial=w;

     }

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

    printf("School ID   m-zongfenn");      

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

for(i=0;i<=schoolCount-1;i++)

  {  printf("%-14d%-9dn",P[i].serial,P[i].menscore);

  }

   }

 

int alexa_3()

  { int i,j,o,g;

for(i=0;i<=schoolCount-1;i++)

     if(P[i].womenscore<P[i+1].womenscore)

     { o=P[i].womenscore; P[i].womenscore=P[i+1].womenscore;P[i+1].womenscore=o;

       g=P[i].serial;P[i].serial=P[i+1].serial;P[i+1].serial=g;

     }

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

    printf("School ID   w-zongfenn");     

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

for(i=0;i<=schoolCount-1;i++)

  {  printf("%-14d%-9dn",P[i].serial,P[i].menscore);

  }

}

 

int Find_School_Xm(){

    int S_ID;

    int i,j;

    printf("naccording to school number to inquire itemn");

    printf("school:");

    scanf("%d",&S_ID);

   printf("item  name     score  rangen");

   for(i=0;i<=studentCount-1;i++)

    if(Stu[i].serial==S_ID)

     printf("%-6d%-9s%-7d%-5dn",Stu[i].item,Stu[i].name,Stu[i].score,Stu[i].range);

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

 

 

}

 

 

int Find_Xm_ID(){

int d;

int i,j;

  printf("naccording to item to inquire winning school n");

  printf("import xm item:");

     scanf("%d",&d);

     printf("xm:%dn",d);

 for(i=0;i<=studentCount-1;i++)

    {if(Stu[i].item==d)

     printf("School:%d  name:%s  range:%dn",Stu[i].serial,Stu[i].name,Stu[i].range);

     }

  }

 

int quit()

{

   printf("nn-----------------thank you-------------------------n");

}

 

int  choose()

{    int ID;

   Loop_5:

   printf("n-----------MENU----------n");

   printf("1.alexa n");

   printf("2.xuexiaochaxunn");

   printf("3.xiangmuchaxunn");

   printf("4.fanhuin");

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

   scanf("%d",&ID);

   if(ID==1){alexa_1();alexa_2();alexa_3();goto Loop_5;}

   if(ID==2){Find_School_Xm();goto Loop_5; }

   if(ID==3){Find_Xm_ID();goto  Loop_5; }

   if(ID==4) quit();

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: