zoukankan      html  css  js  c++  java
  • c语言

    #include <stdio.h>
    #include <stdlib.h>
    #include<math.h>
    #include<process.h>
    #define N 20     /*学校最大数目*/
    #define M 20     /*男子项目最大数目*/
    #define W 20     /*女子项目最大数目*/
    typedef struct
    {
     int inum;   //项目编号
     int top;   //取得名次的数目
     int pai[5];   //名次
     int grade[5]; //分数
    } itemnode;

    typedef struct
    {
     int snum;    //学校编号
     int score;  //学校总分
     int mscore; //男团总分
     int wscore; //女团总分
     itemnode t[M+W];//项目数组
    } schoolnode;
    schoolnode a[N];
    void menu(int n,int m,int w)
    {
     int b,j,k,q;
     int c,x,f,i;
     int temp[N];
     void input (int n,int m,int w);
     void sortput (int n,int m,int w);
     void inqurey (int n,int m,int w);
     void output (int n,int m,int w);
     void savetofile();
     void readformfile();
     printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
     printf(" * 欢迎使用运动会管理系统 * ");
     printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
     printf(" * 1.管理员管理系统     * ");
     printf(" *         * ");
     printf(" * 2.查看系统         * ");
     printf(" *         * ");
     printf(" * 0.退出          * ");
     printf(" *         * ");
          printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
     printf("请选择要实现编码功能的编号(0--2):");
     scanf("%d",&c);
     if(c==1)    //进入管理员系统
     {
      printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
        printf(" * 欢迎使用运动会管理系统 * ");
      printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
        printf(" * 主菜单          * ");
        printf(" *         * ");
        printf(" * 1.信息输入       * ");
        printf(" *         * ");
           printf(" * 2.排序输出       * ");
           printf(" *         * ");
           printf(" * 3.信息查询       * ");
           printf(" *         * ");
      printf(" * 4.统计输出       * ");
      printf(" *         * ");
           printf(" * 0.退出系统       * ");
           printf(" *         * ");
          printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
           printf("请选择要实现步骤的编号(0-4):");
         scanf("%d",&b);
         switch(b)
      {
       case 1:
        input(n,m,w);
        break;
       
        case 2:
        sortput(n,m,w);
        break;
       
        case 3:
        inqurey(n,m,w);
        break;
       
        case 4:
        output(n,m,w);
        break;
       
        case 0:
        printf("确定要退出系统?1是 2否 ");
             scanf("%d",&x);
            if(x==1)
       {
        printf("感谢你的使用,再见! ");
       }
       else if(x==2)
       {
        printf(" ");
                 savetofile();
                  menu(n,m,w);
       }
        break;
       
        default:
        printf("输入错误,请重试! ");
        menu(n,m,w);
      }
     }
       
        else if(c==2)
        {
         printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
         printf(" * 欢迎使用运动会管理系统 * ");
      printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
        printf(" * 菜单 * ");
        printf(" *         * ");
           printf(" * 1.学校编号查询      * ");
      printf(" *         * ");
      printf(" * 2.男团成绩总成绩查询 * ");
      printf(" *         * ");
      printf(" * 3.女团成绩总成绩查询 * ");
      printf(" *         * ");
           printf(" * 4.退出系统 * ");
           printf(" *         * ");
          printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
           printf("请选择要实现步骤的编号(1-4):");
        scanf("%d",&f);
        switch(f)
      {
       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++)
        {
         printf("学校编号:%d  学校总分:%d  男团总分:%d  女团总分:%d ",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;
        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++)
        {
         printf("学校编号:%d  学校总分:%d  男团总分:%d  女团总分:%d ",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]].wscore<a[j].wscore)
         {
          k=temp[i];
          temp[i]=temp[j];
          temp[j]=k;
         }
        }
        for(i=0;i<n;i++)
        {
         printf("学校编号:%d  学校总分:%d  男团总分:%d  女团总分:%d ",a[temp[i]].snum,a[temp[i]].score,a[temp[i]].mscore,a[temp[i]].wscore);  
        }
        break;
       
        case 0:
        printf("确定要退出系统?1是 2否 ");
             scanf("%d",&x);
            if(x==1)
       {
        printf("感谢你的使用,再见! ");
       }
       else if(x==2)
       {
        printf(" ");
                 savetofile();
                  menu(n,m,w);
       }
      
        defult:
        printf("输入错误,请重试! ");
       
      }
     }  
      else if(c==4)
      {
       printf("确定要退出系统?1是 2否 ");
       scanf("%d",&x);
       if(x==1)
       {
        printf("感谢你的使用,再见! ");
       }
       else if(x==2)
       {
        printf(" ");
                 savetofile();
                  menu(n,m,w);
       }
      }  
    void savetofile()
    {
     FILE *fp;
     int i;
     if((fp=fopen("file.txt","w"))==NULL)
     {
      printf("cannot open the file ");
      return;
     }
     for(i=0;i<N;i++)
     {
      if(a[i].snum!='')
      if(fwrite(&a[i],sizeof(schoolnode),1,fp)!=1)
      {
       printf("file write error ");
       
      }
     }
     fclose(fp); 
    }
    void readfromfile()
    {
     int i;
     FILE *fp;
     if((fp=fopen("file.txt","rb"))==NULL)
     {
      printf("cannot open the file ");
      return;
     }
     for(i=0;i<N;i++)
     fread(&a[i],sizeof(schoolnode),1,fp);
     fclose(fp);
    }
    //信息输入
    void input(int n,int m,int w)
    {
     int i,j,s,k,q=0;
     for(i=0;i<n;i++)
     {
     printf("学校编号:");
     scanf("%d",&a[i].snum);
     for(j=0;j<m+w;j++)
     {
      printf("项目编号:");
      scanf("%d",&a[i].t[j].inum);
      printf("项目取前3名或前5名:");
       scanf("%d",&a[i].t[j].top);
       if(a[i].t[j].top==3)
       printf("获得名次个数(1--3):");
       else
       printf("获得名次个数(1--5):");
       scanf("%d",&k);
       for(s=0;s<k;s++)
       {
        if(a[i].t[i].top==3)
        printf("所获得的名次(1--3):");
       
       else
       printf("所获名次(1--5):");
       scanf("%d",&a[i].t[j].pai[s]);
       }
       printf(" ");
     }
     }
     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[i].top==3)
      switch(a[i].t[j].pai[s])
      {
       case 0:a[i].t[j].grade[s]=0;
       break;
       case 1:a[i].t[j].grade[s]=5;
       break;
       case 2:a[i].t[j].grade[s]=3;
       break;
       case 3:a[i].t[j].grade[s]=2;
       break;
       
      }
      else if(a[i].t[i].top==5)
      switch(a[i].t[i].pai[s])
      {
       case 0:a[i].t[j].grade[s]=0;
       break;
       case 1:a[i].t[j].grade[s]=7;
       break;
       case 2:a[i].t[j].grade[s]=5;
       break;
       case 3:a[i].t[j].grade[s]=3;
       break;
       case 4:a[i].t[j].grade[s]=2;
       break;
       case 5:a[i].t[j].grade[s]=1;
       break;
       
      }
      else
      {
       printf("信息有误!");
       printf(" ");
      return;
      }
      a[i].score=a[i].score+a[i].t[j].grade[s];
      if(j<=m-1)
      a[i].mscore=a[i].mscore+a[i].t[j].grade[s];
      else
      a[i].wscore=a[i].wscore+a[i].t[j].grade[s];
     }
     printf("输入完毕!返回? 1是 2否 ");
     scanf("%d",&q);
     printf(" ");
     if(q!=1)
     printf("不能再添加信息!");
     printf(" ");
     savetofile();
     menu(n,m,w);
    }
    void output(int n,int m,int w)
    {
     readfromfile();
     int i,j,s,q=0;
     for(i=0;i<n;i++)
     {
      printf("学校的编号:%d  学校的总分:%d  男团的总分:%d  女团的总分:%d ",a[i].snum,a[i].score,a[i].mscore,a[i].wscore);
      for(j=0;j<m+w;j++)
      {
       printf("项目编号:%d  所取的名次数量:%d ",a[i].t[j].inum,a[i].t[j].inum,a[i].t[j].top);
       for(s=0;s<5;s++)
       {
        if(a[i].t[j].pai[s]!=0)
        printf("名次:%d  分数:%d ",a[i].t[j].pai[s],a[i].t[j].grade[s]);
       }
      }
      printf(" ");
     }
     printf("统计完毕!返回? 1是 2否");
     scanf("%d",&q);
     printf(" ");
     if(q!=1)
     printf("统计已经结束!");
     printf(" ");
     menu(n,m,w);
    }
    void sortput(int n,int m,int w)
     {
      readfromfile();
      int c,i,j,k,q=0;
      int temp[N];
      printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
      printf(" * 排序输出系统               * ");
      printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
      printf(" * 1.按学校编号输出           * ");
      printf(" *         * ");
      printf(" * 2.按学校总分输出           * ");
      printf(" *         * ");
      printf(" * 3.按男团总分输出           * ");
      printf(" *         * ");
      printf(" * 4.按女团总分输出           * ");
      printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
      printf("=================================================================== ");
     
      do
      {
       printf("请选择要实现编码功能的编号(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++)
        {
         printf("学校编号:%d  学校总分:%d  男团总分:%d  女团总分:%d ",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;
        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++)
        {
         printf("学校编号:%d  学校总分:%d  男团总分:%d  女团总分:%d ",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++)
        {
         printf("学校编号:%d  学校总分:%d  男团总分:%d  女团总分:%d ",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++)
        {
         printf("学校编号:%d  学校总分:%d  男团总分:%d  女团总分:%d ",a[temp[i]].snum,a[temp[i]].score,a[temp[i]].mscore,a[temp[i]].wscore);  
        }
        break;
       
        defult:
        printf("输入错误,请重试! ");
       }
       printf("请选择 1 返回主菜单 0 继续");
       scanf("%d",&q);
       printf(" ");
      }
      while(q==0);
      printf(" ");
      if(q!=0)
      menu(n,m,w);
     
     }
    void inqurey(int n,int m,int w)
    {
     readfromfile();
     int c,i,j,k,d,l,q=0;
     printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
     printf(" * 查询系统 * ");
     printf(" *         * ");
     printf(" * 1.按学校编号查询 * ");
     printf(" *         * ");
     printf(" * 1.按项目编号查询 * ");
     printf(" *         * ");
     printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
     
     do
     {
      k=-1;d=-1;l=-1;
      printf("请选择要实现的功能编码(1--2):");
      scanf("%d",&c);
      switch(c)
      {
       case 1:
        printf("要查询的学校编号:");
        scanf("%d",&c);
        for(i=0;i<n;i++)
        {
         if(a[i].snum==c)
         k=i;
        }
        if(k==1)
        printf("错误:这个学校没有参加此次运动会! ");
        else
        {
         printf("要查询的项目编号:");
         scanf("%d",&c);
         for(j=0;j<m+w;j++)
         {
         if(a[k].t[j].inum==c)
         d=j; 
         }
         if(d==1)
         printf("此次运动会没有这个项目 ");
         else
         {
          printf("这个项目取前%d名,该学校的成绩如下: ",a[k].t[d].top);
          for(i=0;i<5;i++)
          if(a[k].t[d].pai[i]!=0)
          printf("名次:%d ",a[k].t[d].pai[i]);
         }
        }
        break;
        case 2:
         printf("要查询的项目编号:");
         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;
         if(l==-1)
         printf("此次运动会没有这个项目 ");
         else
         {
          printf("该项目取前%d名,取得名次的学校 ",a[0].t[1].top);
          for(i=0;i<n;i++)
          for(j=0;j<5;j++)
          if(a[i].t[1].pai[j]!=0)
          printf("学校编号:%d,名次:%d ,a[i].snum,a[i]");
         }
         break;
         default:
          printf("输入错误,请重试! ");
      }
      printf("请选择:1.返回主菜单 0.继续");
      scanf("%d",&q);
      printf(" ");
      
     }
     while(q==0);
     printf(" ");
     if(q!=0)
     menu(n,m,w);
    }
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    int main(int argc, char *argv[]) {
     
     int n,m,w;
     printf(" 欢迎使用 ");
     printf("请先输入运动会主要信息 ");
     printf("输入学校个数:");
     scanf("%d",&n);
     printf("输入男子项目个数:");
     scanf("%d",&m);
     
     printf("输入女子项目个数:");
     scanf("%d",&w);
     menu(n,m,w);
     return 0;
    }
  • 相关阅读:
    知识点总结(基础篇)
    从FBV到CBV三(权限)
    从FBV到CBV二(认证器)
    kubeDNS workflow(service registration and discovery)
    从FBV到CBV一(开始)
    pycharm的python console报错CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_ipython_console_011.py", line 87, in init self.matchers.remove(self.python_matches) ValueError: list.remove(x): x not in list
    删除none 的images报错 image has dependent child images 解决办法
    缓存的应用场景以及要注意的问题
    epoll—IO多路复用
    docker 容器启动后立马退出的解决方法
  • 原文地址:https://www.cnblogs.com/brilin/p/10909093.html
Copyright © 2011-2022 走看看