• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 申报材料 > 正文

    11运动会分数统计

    时间:2020-10-12 12:27:19 来源:勤学考试网 本文已影响 勤学考试网手机站

    #include<stdio.h>

    #include<math.h>

    #include <process.h>

    #define N 20 /*学校最大数目*/

    #define M 20 /*男子项目最大数目*/

    #define W 20 /*女子项目最大数目*/

    typedef struct

    {

    int inum; /*项目编号*/

    int top; /*取名次的数目*/

    int range[5]; /*名次*/

    int mark[5]; /*分数*/

    }itemnode; /*存放项目信息*/

    typedef struct

    {

    int snum; /*学校编号*/

    int score; /*学校总分*/

    int mscore; /*男团体总分*/

    int wscore; /*女团体总分*/

    itemnode t[M+W]; /*项目数组*/

    }snode; /*存放学校信息*/

    snode a[N]; /* 定义一个学校数组*/

    void menu(int n,int m,int w) /*菜单函数*/

    {

    int c;

    void input(int n,int m,int w);

    void output(int n,int m,int w);

    void sortput(int n,int m,int w);

    void search(int n,int m,int w);

    printf(\ \t\t欢迎使用\t\t\t\t\n\n);

    printf(\ ***********运动会分数统计系统***********\n\n);

    printf(\ \t*******1.信息输入*******\n);

    printf(\ \t*******2.统计输出*******\n);

    printf(\ \t*******3.排序输出*******\n);

    printf(\ \t*******4.信息查询*******\n);

    printf(\ \t*******0.退出系统*******\n\n);

    printf(=======================================================\n\n);

    牰湩晴尨请选择要实现步骤的编号(0--4):);

    scanf(%d,&c);

    switch(c)

    {

    case 1:

    input(n,m,w);break;

    case 2:

    output(n,m,w);break;

    case 3:

    sortput(n,m,w);break;

    case 4:

    search(n,m,w);break;

    case 0:

    牰湩晴尨谢谢使用,再见!\n);

    exit(0);

    default:

    牰湩晴尨输入错误,请重试!\n);

    menu(n,m,w);

    }

    }

    void savetofile() /*信息存入文件file*/

    {

    FILE *fp;

    int i;

    if((fp=fopen(\,w))==NULL)

    {

    printf(cannot open the file\n);

    return;

    }

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

    {

    if(a[i].snum!='\0')

    if(fwrite(&a[i],sizeof(snode),1,fp)!=1)

    {

    printf( error\n);

    return;

    }

    }

    fclose(fp);

    }

    void readfromfile() /*信息从文件file中取出*/

    {

    int i;

    FILE *fp;

    if((fp=fopen(\,

    b))==NULL)

    {

    printf(cannot open the file\n);

    return;

    }

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

    fread(&a[i],sizeof(snode),1,fp);

    fclose(fp);

    }

    void input(int n,int m,int w) /*1.信息输入*/

    {

    int i,j,s,k,q=0;

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

    {

    牰湩晴尨学校编号:);

    scanf(%d,&a[i].snum); /*输入学校信息*/

    for(j=0;j<m+w;j++)

    {

    牰湩晴尨项目编号:);

    scanf(%d,&a[i].t[j].inum);

    牰湩晴尨项目取前3名或前5名(3或者5):);

    scanf(%d,&a[i].t[j].top);

    if(a[i].t[j].top==3)

    牰湩晴尨获得名次个数(1--3):);

    else

    牰湩晴尨获得名次个数(1--5):);

    scanf(%d,&k); /*输入项目信息*/

    for(s=0;s<k;s++)

    {

    if(a[i].t[j].top==3)

    牰湩晴尨所获名次(1--3):);

    else

    牰湩晴尨所获名次(1--5):);

    scanf(%d,&a[i].t[j].range[s]); /*输入所获名次信息*/

    }

    printf(\

    );

    - 1 -

    }

    }

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

    {

    a[i].score=0;

    a[i].mscore=0;

    a[i].wscore=0;

    } /*初始化分数*/

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

    for(j=0;j<m+w;j++)

    for(s=0;s<5;s++)

    {

    if(a[i].t[j].top==3)

    switch(a[i].t[j].range[s])

    {

    case 0: a[i].t[j].mark[s]=0; break;

    case 1: a[i].t[j].mark[s]=5; break;

    case 2: a[i].t[j].mark[s]=3; break;

    case 3: a[i].t[j].mark[s]=2; break;

    }

    else if(a[i].t[j].top==5)

    switch(a[i].t[j].range[s])

    {

    case 0: a[i].t[j].mark[s]=0; break;

    case 1: a[i].t[j].mark[s]=7; break;

    case 2: a[i].t[j].mark[s]=5; break;

    case 3: a[i].t[j].mark[s]=3; break;

    case 4: a[i].t[j].mark[s]=2; break;

    case 5: a[i].t[j].mark[s]=1; break;

    }

    else

    {

    牰湩晴尨信息有误!);

    printf(\

    );

    exit(0);

    }

    a[i].score=a[i].score+a[i].t[j].mark[s]; /*记学校总分*/

    if(j<=m-1)

    a[i].mscore=a[i].mscore+a[i].t[j].mark[s]; /*记男子团体总分*/

    else

    a[i].wscore=a[i].wscore+a[i].t[j].mark[s]; /*记女子团体总分*/

    }

    牰湩晴尨输入完毕!返回? 1是 2否\n); /*返回菜单*/

    scanf(%d,&q);

    printf(\

    );

    if(q!=1)

    牰湩晴尨不能再添加信息!);

    printf(\

    );

    savetofile(); /*将信息存入文件file*/

    menu(n,m,w);

    }

    void output(int n,int m,int w) /*2.统计输出*/

    {

    readfromfile();

    int i,j,s,q=0;

    for(i=0;i<n;i++) /*显示结果*/

    {

    牰湩晴尨学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%d\n,a[i].snum,a[i].score,a[i].mscore,a[i].wscore);

    - 2 -

    for(j=0;j<m+w;j++)

    {

    牰湩晴尨项目编号:%d 所取名次数量:%d\n,a[i].t[j].inum,a[i].t[j].top);

    for(s=0;s<5;s++)

    {

    if(a[i].t[j].range[s]!=0)

    牰湩晴尨名次:%d 分数:%d\n,a[i].t[j].range[s],a[i].t[j].mark[s]);

    }

    }

    printf(\

    );

    }

    printf(\

    );

    牰湩晴尨统计完毕!返回? 1是 2否); /*返回菜单*/

    scanf(%d,&q);

    printf(\

    );

    if(q!=1)

    牰湩晴尨统计已经结束!);

    printf(\

    );

    menu(n,m,w);

    }

    void sortput(int n,int m,int w) /*3.排序输出*/

    {

    readfromfile();

    int c,i,j,k,q=0;

    int temp[N];

    printf(\ **************排序输出系统**************\n\n);

    printf(\ \t****1.按学校编号输出****\n);

    printf(\ \t****2.按学校总分输出****\n);

    printf(\ \t****3.按男团总分输出****\n);

    printf(\ \t****4.按女团总分输出****\n);

    printf(=======================================================\n\n);

    do

    {

    ?牰湩晴尨请选择要实现功能的编号(1--4):);

    scanf(%d,&c);

    switch(c)

    {

    case 1:

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

    temp[i]=i;

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

    {

    for(j=i+1;j<n;j++)

    if(a[temp[i]].snum>a[j].snum)

    {

    k=temp[i];

    temp[i]=temp[j];

    temp[j]=k;

    }

    } /* 用冒泡排序方法排序*/

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

    {

    牰湩晴尨学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%d\n,a[temp[i]].snum,a[temp[i]].score,a[temp[i]].mscore,a[temp[i]].wscore);

    } /*按学校编号输出*/

    break;

    case 2:

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

    temp[i]=i;

    - 3 -

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

    {

    for(j=i+1;j<n;j++)

    if(a[temp[i]].score<a[j].score)

    {

    k=temp[i];

    temp[i]=temp[j];

    temp[j]=k;

    }

    } /* 用冒泡排序方法排序*/

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

    {

    牰湩晴尨学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%d\n,a[temp[i]].snum,a[temp[i]].score,a[temp[i]].mscore,a[temp[i]].wscore);

    } /*按学校总分输出*/

    break;

    case 3:

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

    temp[i]=i;

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

    {

    for(j=i+1;j<n;j++)

    if(a[temp[i]].mscore<a[j].mscore)

    {

    k=temp[i];

    temp[i]=temp[j];

    temp[j]=k;

    }

    } /* 用冒泡排序方法排序*/

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

    {

    牰湩晴尨学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%d\n,a[temp[i]].snum,a[temp[i]].score,a[temp[i]].mscore,a[temp[i]].wscore);

    } /*按男团总分输出*/

    break;

    case 4:

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

    temp[i]=i;

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

    {

    for(j=i+1;j<n;j++)

    if(a[temp[i]].wscore<a[j].wscore)

    {

    k=temp[i];

    temp[i]=temp[j];

    temp[j]=k;

    }

    } /* 用冒泡排序方法排序*/

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

    {

    牰湩晴尨学校编号:%d 学校总分:%d 男团总分:%d 女团总分:%d\n,a[temp[i]].snum,a[temp[i]].score,a[temp[i]].mscore,a[temp[i]].wscore);

    } /*按女团总分输出*/

    break;

    default:

    牰湩晴尨输入错误,请重试!\n);

    }

    牰湩晴尨请选择 1 返回主菜单 0继续); /*返回菜单或继续排序*/

    scanf(%d,&q);

    - 4 -

    printf(\

    );

    }

    while(q==0);

    printf(\

    );

    if(q!=0)

    menu(n,m,w);

    }

    void search(int n,int m,int w) /*查询函数*/

    {

    readfromfile();

    int c,i,j,k,d,l,q=0;

    printf(\ ****************查询系统****************\n\n);

    printf(\ \t****1.按学校编号查询****\n);

    printf(\ \t****2.按项目编号查询****\n);

    printf(=======================================================\n\n);

    do

    {

    k=-1;d=-1;l=-1;

    牰湩晴尨请选择要实现功能的编号(1--2):);

    scanf(%d,&c);

    switch(c)

    {

    case 1:

    牰湩晴尨要查询的学校编号:); /*查找学校编号下标*/

    scanf(%d,&c);

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

    {

    if(a[i].snum==c)

    k=i;

    }

    if(k==-1)

    牰湩晴尨错误:这个学校没有参加此次运动会!\n);

    else

    {

    牰湩晴尨要查询的项目编号:); /*查找项目编号下标*/

    scanf(%d,&c);

    for(j=0;j<m+w;j++)

    {

    if(a[k].t[j].inum==c)

    d=j;

    }

    if(d==-1)

    牰湩晴尨此次运动会没有这个项目\n);

    else /*显示结果*/

    {

    牰湩晴尨这个项目取前 %d名,该学校的成绩如下:\n, a[k].t[d].top);

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

    if(a[k].t[d].range[i]!=0)

    牰湩晴尨名次:%d\n,a[k].t[d].range[i]);

    }

    }

    break;

    case 2:

    牰湩晴尨要查询的项目编号:); /*查找项目编号下标*/

    scanf(%d,&c);

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

    for(j=0;j<m+w;j++)

    if(a[i].t[j].inum==c)

    l=j;

    - 5 -

    if(l==-1)

    牰湩晴尨此次运动会没有这个项目\n);

    else /*显示结果*/

    {

    牰湩晴尨该项目取前 %d名,取得名次的学校\n,a[0].t[l].top);

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

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

    if(a[i].t[l].range[j]!=0)

    瀠楲瑮?学校编号:%d,名次:%d\n,a[i].snum,a[i].t[l].range[j]);

    }

    break;

    default:

    牰湩晴尨输入错误,请重试!\n);

    }

    牰湩晴尨请选择:1.返回主菜单 0.继续); /*返回菜单或继续查询*/

    scanf(%d,&q);

    printf(\

    );

    }

    while(q==0);

    printf(\

    );

    if(q!=0)

    menu(n,m,w);

    }

    void main() /*主函数*/

    {

    int n,m,w;

    printf(\ \t\t欢迎使用\t\t\t\t\n\n);

    printf(\ ***********运动会分数统计系统***********\n\n);

    牰湩晴尨请先输入运动会主要信息\n); /*设计运动会主要数据个数*/

    牰湩晴尨输入学校个数:);

    scanf(%d,&n);

    牰湩晴尨输入男子项目个数:);

    scanf(%d,&m);

    牰湩晴尨输入女子项目个数:);

    scanf(%d,&w);

    menu(n,m,w);

    }

    - 6 -

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问