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

📄 chenhan.c

📁 学生管理系统
💻 C
📖 第 1 页 / 共 3 页
字号:
   system("cls");
   printf("\n ----------------------------------学号排序---------------------------\n");
   printf("\n排名   学号          姓名          性别        出生年月日\n");
   for(i=0;i<sum;i++)
   { for(j=i+1;j<sum;j++)
     {if(pm[i].number>pm[j].number)
     x=pm[i];pm[i]=pm[j];pm[j]=x;
     y=sm[i];sm[i]=sm[j];sm[j]=y;
     z=jc[i];jc[i]=jc[j];jc[j]=z;
     }
   }
   for(i=1;i<sum;i++)
   printf("%d     %ld           %s            %s       %d/%d/%d\n",i,pm[i].number,pm[i].name,pm[i].sex,pm[i].birthyear,pm[i].birthmonth,pm[i].birthday);
   PRINT1;
}


/*按成绩排序*/
scores_order(int sum)
{  int i,j,choice;PM x;SM y;JC z;
   system("cls");
   printf("\n                          请选择排序方式:\n");
   printf("\n                         1.语言成绩排序\n");
   printf("\n                         2.数学成绩排序\n");
   printf("\n                         3.物理成绩排序\n");
   printf("\n                         4.总成绩排序\n");
   printf("\n                         5.平均成绩排序\n");
   scanf("%d",&choice);
   flushall();
   system("cls");
   switch(choice)
 { case 1: { printf("\n -----------------------------------语言成绩排序-----------------------------\n");
             printf("\n排名   学号        姓名       语言成绩       数学成绩        物理成绩\n");
             for(i=0;i<sum;i++)
             { for(j=i+1;j<sum;j++)
               {if(sm[i].language<sm[j].language)
               x=pm[i];pm[i]=pm[j];pm[j]=x;
               y=sm[i];sm[i]=sm[j];sm[j]=y;
               z=jc[i];jc[i]=jc[j];jc[j]=z;
               }
             }
             for(i=1;i<sum;i++)
             printf("%d    %ld       %s           %d       %d          %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli);
             PRINT1;
             break;
            }
   case 2: {  printf("\n -----------------------------------数学成绩排序-----------------------------\n");
              printf("\n排名   学号        姓名       语言成绩       数学成绩        物理成绩\n");
              for(i=0;i<sum;i++)
              { for(j=i+1;j<sum;j++)
                {if(sm[i].math<sm[j].math)
                x=pm[i];pm[i]=pm[j];pm[j]=x;
                y=sm[i];sm[i]=sm[j];sm[j]=y;
                z=jc[i];jc[i]=jc[j];jc[j]=z;
                }
              }
             for(i=1;i<sum;i++)
             printf("%d    %ld       %s           %d       %d          %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli);
             PRINT1;
             break;
          }

  case 3:{  printf("\n -----------------------------------物理成绩排序-----------------------------\n");
             printf("\n排名   学号        姓名       语言成绩       数学成绩        物理成绩\n");
             for(i=0;i<sum;i++)
             { for(j=i+1;j<sum;j++)
               {if(sm[i].wuli<sm[j].wuli)
               x=pm[i];pm[i]=pm[j];pm[j]=x;
               y=sm[i];sm[i]=sm[j];sm[j]=y;
               z=jc[i];jc[i]=jc[j];jc[j]=z;
               }
             }
             for(i=1;i<sum;i++)
             printf("%d    %ld       %s           %d       %d          %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli);
             PRINT1;
             break;
          }

  case 4: {  printf("\n -----------------------------------总成绩排序-----------------------------\n");
              printf("\n排名   学号        姓名       语言成绩     数学成绩     物理成绩    总成绩 \n");
              for(i=0;i<sum;i++)
              sm[i].zong=sm[i].language+sm[i].math+sm[i].wuli;
              for(i=0;i<sum;i++)
              { for(j=i+1;j<sum;j++)
                {if(sm[i].zong<sm[j].zong)
                x=pm[i];pm[i]=pm[j];pm[j]=x;
                y=sm[i];sm[i]=sm[j];sm[j]=y;
                z=jc[i];jc[i]=jc[j];jc[j]=z;
                }
              }
             for(i=1;i<sum;i++)
             printf("%d    %ld         %s         %d      %d      %d     %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli,sm[i].zong);
             PRINT1;
             break;
          }

   case 5: {  printf("\n -----------------------------------平均成绩排序-----------------------------\n");
              printf("\n排名   学号        姓名       语言成绩      数学成绩      物理成绩     平均成绩\n");
              for(i=0;i<sum;i++)
              sm[i].jun=(sm[i].language+sm[i].math+sm[i].wuli)/3.0;
              for(i=0;i<sum;i++)
              { for(j=i+1;j<sum;j++)
                {if(sm[i].math<sm[j].math)
                x=pm[i];pm[i]=pm[j];pm[j]=x;
                y=sm[i];sm[i]=sm[j];sm[j]=y;
                z=jc[i];jc[i]=jc[j];jc[j]=z;
                }
              }
             for(i=1;i<sum;i++)
             printf("%d    %ld       %s           %d      %d     %d     %d\n",i,pm[i].number,pm[i].name,sm[i].language,sm[i].math,sm[i].wuli,sm[i].jun);
             PRINT1;
             break;
          }
  }

}




yearold_order()
{;}




name_order()
{;}




order_message(int sum)
{   int choice;
    system("cls");
    printf("\n             请选择查询方式:\n");
    printf("\n               1.按学号排序\n");
    printf("\n               2.按成绩排序\n");
    printf("\n               0.返回主菜单\n");
    scanf("%d",&choice);
    flushall();
    switch(choice)
    { case 0: break;
      case 1: num_order(sum);break;
      case 2: scores_order(sum);break;
    }

}



/*统计模块*/
/*个人分数统计*/
scores_count(int sum2)
{  long num;int i,flag2,choice2;float n;
   do
 { system("cls");
   printf("\n                   请输入学号:");
   scanf("%ld",num);
   flushall();
   system("cls");
   for(i=0;i<sum2;i++)
   if(num==pm[i].number)
  { printf("\n                 请选择统计项目:");
    printf("\n                    1.总成绩\n");
    printf("\n                    2.平均成绩\n");
    printf("\n                    0.退出\n");
    if(choice2==0)
    break;
    scanf("%d",&choice2);
    flushall();
    switch(choice2)
    {case 1: {n=sm[i].language+sm[i].math+sm[i].wuli;
              printf("\n                    总成绩为:%d\n",n);break;
             }
     case 2: {n=(sm[i].language+sm[i].math+sm[i].wuli)/3.0;
              printf("\n                    平均成绩为:%d\n",n);break;
             }
    }
    PRINT4;
    PRINT1;
    PRINT5;


    printf("\n                     是否继续?(Y/N)\n");
    choice2=getch();
   }
   if(choice2=='Y'||choice2=='y')
        flag2=1;
   else flag2=0;
  }while(flag2==1);
}



/*优秀与及格统计*/
zong_count(int sum2)
{  int i,choice1,choice2,j=0,m;float k;
   printf("\n                       请选择统计项目:\n");
   printf("\n                           1.及格人数\n");
   printf("\n                           2.优秀人数\n");
   scanf("%d",&choice1);
   flushall();
   system("cls");
   switch(choice1)
    { case 1: {m=60;
              printf("\n                       请选择统计项目:\n");
              printf("\n                          1.语言及格人数\n");
              printf("\n                          2.数学及格人数\n");
              printf("\n                          3.物理及格人数\n");
              break;
              }
      case 2: {m=80;
               printf("\n                       请选择统计项目:\n");
               printf("\n                          1.语言优秀人数\n");
               printf("\n                          2.数学优秀人数\n");
               printf("\n                          3.物理优秀人数\n");
               break;
              }
    }
    scanf("%d",&choice2);
    flushall();
    system("cls");
    printf("\n%d        %d%%",j,k);
    switch(choice2)
   {case 1: {for(i=0;i<sum2;i++)
             if(sm[i].language>=m)
             {j++;
              PRINT2;
              PRINT3;
              printf("语言成绩:%d\n ",sm[i].language);
             }
             k=j*100.0/sum2;
             switch(choice1)
             {case 1: printf("\n\n语言及格人数为:%d\n\n及格率:%d%%",j,k);break;
              case 2: printf("\n\n语言优秀人数为:%d\n\n优秀率:%d%%",j,k);break;
             }
             break;
            }
    case 2: {for(i=0;i<sum2;i++)
             if(sm[i].math>=m)
             {j++;
              PRINT2;
              PRINT3;
              printf("数学成绩:%d\n ",sm[i].math);
             }
             k=j*100.0/sum2;
             switch(choice1)
             {case 1: printf("\n\n数学及格人数为:%d\n\n及格率:%d%%",j,k);break;
              case 2: printf("\n\n数学优秀人数为:%d\n\n优秀率:%d%%",j,k);break;
             }
             break;
            }
    case 3: {for(i=0;i<sum2;i++)
             if(sm[i].wuli>=m)
             {j++;
              PRINT2;
              PRINT3;
              printf("物理成绩:%d\n ",sm[i].wuli);
             }
             k=j*100.0/sum2;
             switch(choice1)
             {case 1: printf("\n\n物理及格人数为:%d\n\n及格率:%d%%",j,k);break;
              case 2: printf("\n\n物理优秀人数为:%d\n\n优秀率:%d%%",j,k);break;
             }
             break;
            }

   }
}


count_message(int sum1)
{  int choice1;
   printf("\n                       请选择统计项目:\n");
   printf("\n                         1.个人总分及平均分统计\n");
   printf("\n                         2.及格和优秀统计\n");
   printf("\n                         0.退出\n");
   scanf("%d",&choice1);
   flushall();
   system("cls");
   switch(choice1)
   { case 1: scores_count(sum1);break;
     case 2: zong_count(sum1);break;
     case 0: break;
   }
  printf("\n            按任意键返回主菜单!\n");
  bioskey(0);
}



/*主程序*/
main()
{ float arg,*p=&arg;
  int choice,sum;
  sum=read_message();
  password(sum);
  do
  { system("cls");
    printf("\n\n\n         *********学生信息管理系统*********\n\n");
    printf("               1.录入学生信息\n\n");
    printf("               2.显示学生信息\n\n");
    printf("               3.修改学生信息\n\n");
    printf("               4.查询学生信息\n\n");
    printf("               5.添加学生信息\n\n");
    printf("               6.删除学生信息\n\n");
    printf("               7.排序学生信息\n\n");
    printf("               8.统计学生信息\n\n");
    printf("               0.退出\n\n");
    scanf("%d",&choice);
    flushall();
    switch(choice)
    { case 1: input_message(sum);break;
    case 2: output_message(sum);break;
    case 3: change_message(sum);break;
    case 4: inquire_message(sum);break;
    case 5: new_message(sum);break;
    case 6: delete_message();break;
    case 7: order_message(sum);break;
    case 8: count_message(sum);break;
    case 0: break;
    }

  }while(choice!=0);
 save_message(sum);
 printf("\n-----------以上信息已保存!-------------\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -