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

📄 班级成绩管理系统.txt

📁 班级成绩管理系统
💻 TXT
📖 第 1 页 / 共 3 页
字号:
                   printf("%d不存在此学生!\n\n\n",number);
                   amount(h);
          
          
                 
                    
                  }
                if(i==2)/*按姓名删除*/
                   {printf("输入要删除的学生的姓名:");
                    scanf("%s",na);
                    getchar();
                  
        
               p1=h;
  
           while(strcmp(na,p1->name)!=0&&p1!=NULL)/*找到要删除的学生结点 */
              {
               p2=p1;p1=p1->next;
            
              }
            
             if(strcmp(na,p1->name)==0) /*找到释放结点空间删除该结点*/ 
                  {
                    p2->next=p1->next;
                    free(p1);
                    printf("删除成功!\n\n\n");
                  }
             else
                   printf("%s不存在此学生!\n\n\n",na);
                   amount(h);
          
          
            
            
        }
        printf("按学号删除请按1:");
       	printf("按姓名删除请按2:");
       	printf("返回功能菜单按0:");
       	scanf("%d",&i);
       }
       }
       
 return(h);
}



show(StudentList h)/*显示当前学生信息*/
{
  student*p,*p1,*p2;
  int i,j,count,k=0;
  float f;char a[10];
  p1=p2=h;
  count=amount(h);
  if(h==NULL)      
  printf("\n没有任何学生资料!\n");
  else
  { for(i=1;i<=count;i++)/*先对学生记录按学号排序*/
               {
             for(j=i+1;j<=count;j++)
                 {
       p2=p1;
       p1=p1->next;
      
        if(p2->studentnumber>p1->studentnumber) 
               {
               k=p2->studentnumber;
              p2->studentnumber=p1->studentnumber;
               p1->studentnumber=k;
        /*交换前后结点中的学号值*/
        
               strcpy(a,p2->name);
               strcpy(p2->name,p1->name);
               strcpy(p1->name,a);
     /*交换前后结点中的姓名*/
               f=p2->chinese;
              p2->chinese=p1->chinese;
               p1->chinese=f;
     /*交换前后结点中的语文成绩*/
      
               f=p2->English;
               p2->English=p1->English;
               p1->English=f;
    /*交换前后结点中的英语成绩*/
       
               f=p2->math;
               p2->math=p1->math;
               p1->math=f;
    /*交换前后结点中的数学成绩*/
                 }

                 }
   p2=h;p1=h;/*重新使max,p指向链表头*/
           }
        
 }

 
     printf("\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\n");
      p=h;
      while (p!=NULL)
          {printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t\n",p->studentnumber,p->name,p->chinese,p->English,p->math,p->average,p->sum);
          p=p->next;
          } 
           printf("\n\n\n");
}







statis_data(StudentList h)/*统计学生成绩*/
{  int i,n=0;student *s;
   float eng_ave,chi_ave,mat_ave,all_ave,sum1=0,sum2=0,sum3=0,sum4=0,max=0;

   printf("统计个人分数请按1:\n");
   printf("统计全班平均分请按2:\n");
   printf("显示语文最高学生按3:\n");
   printf("显示英语最高学生按4:\n");
   printf("显示数学最高学生按5:\n");
   printf("显示总分最高学生按6:\n");
   printf("按0返回功能菜单");
    
   scanf("%d",&i);
   if(i==0)
   printf("已经退出:");
   else
   {  if(i==1)/*统计个人分数*/
      {printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
       while(h!=NULL)
           {printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
            h=h->next;
            }
       }
    if(i==2)/*统计全班平均分*/
       {while(h!=NULL)
            {   n++;
    	        sum1=sum1+h->chinese;
                sum2=sum2+h->English;
                sum3=sum3+h->math;
                sum4=sum4+h->sum;
                chi_ave=sum1/n;  
                eng_ave=sum2/n;  
                mat_ave=sum3/n; 
                all_ave=sum4/n;
                h=h->next;
            }
          
            printf("人数%d\n",n);
            printf("语文平均  英语平均  数学平均   总平均\n");
            printf("%.2f\t  %.2f\t    %.2f\t  %.2f\t\n\n\n", chi_ave,eng_ave, mat_ave,all_ave);
      

       }
       
    if(i==3)/*显示语文最高学生*/
      {  
          while(h!=NULL)
            {   if(max<h->chinese)
               {max=h->chinese;
                s=h;
                }       
         
                  h=h->next;
             }
          printf("语文最高分为:\n");
          printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
          printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
      }
 
     if(i==4)/*显示英语最高*/
      {  while(h!=NULL)
           {   if(max<h->English)
                {max=h->English;
                 s=h;
                 }
         
                h=h->next;
            }
          printf("英语最高分为:\n");
          printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
          printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
 	}
    if(i==5)/*显示数学最高*/
         { while(h!=NULL)
             {   if(max<h->math)
                 {max=h->math;
                 s=h;
                 }
         
                 h=h->next;
             }
          printf("数学最高分为:\n");
          printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
          printf("%d\t%s\t   %.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
         }
    if(i==6)/*显示总分最高*/
       { while(h!=NULL)
             {   if(max<h->sum)
                  {max=h->sum;
                   s=h;
                   }
         
                   h=h->next;
             }
        printf("总分最高分为:\n");
        printf(" \n\n\n学号\t姓名 \t语文\t英语\t数学\t平均分\t总分\t\n\n\n");
        printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
       }      
       
   }     
}








 show1(StudentList h)/*按分数段显示学生记录*/
{   int i,j;
    printf("按语文成绩请按1:\n");
    printf("按英语成绩请按2:\n");
    printf("按数学成绩请按3:\n");
    printf("返回功能菜单请按0:\n");
    scanf("%d",&i);
    while(i!=0)
     {if(i==1)/*按语文成绩*/
        {    printf("显示语文成绩<60的学生:(按1)\n");
             printf("显示语文成绩60<语文<=70的学生:(按2)\n");
             printf("显示语文成绩70<语文<=80的学生:(按3)\n");
             printf("显示语文成绩80<语文<90的学生:(按4)\n");
             printf("显示语文成绩>=90的学生:(按5)\n");
             scanf("%d",&j);
             printf(" \n\n\n学号\t姓名 \t语文\t英语\t数学\t平均分\t总分\t\n\n\n");
             if(j==1)/*显示语文成绩<60的学生*/
                 { 
            	
            	      while(h!=NULL)
                        {if(h->chinese<60)
                       
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                        }
               
                 } 

            if(j==2)/*显示语文成绩60<语文<=70的学生*/
                {  while(h!=NULL)
                        {if(h->chinese>=60&&h->chinese<70)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                        } 
                }
           if(j==3)/*显示语文成绩70<语文<=80的学生*/
               { while(h!=NULL)
                        {if(h->chinese>=70&&h->chinese<80)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                       
                        } 
               
               } 
         if(j==4)/*显示语文成绩80<语文<90的学生*/
              { while(h!=NULL)
                        {if(h->chinese>=80&&h->chinese<90)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                         
                        } 
               
             } 
        if(j==5)/*显示语文成绩>=90的学生*/
              { while(h!=NULL)
                        {if(h->chinese>=90)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                        } 
               
             } 
  
        }
     if(i==2)/*按英语成绩*/
      {
        printf("显示英语成绩<60的学生:(按1)\n");
        printf("显示英语成绩60<语文<=70的学生:(按2)\n");
        printf("显示英语成绩70<语文<=80的学生:(按3)\n");
        printf("显示英语成绩80<语文<=90的学生:(按4)\n");
        printf("显示英语成绩>90的学生:(按5)\n");
        scanf("%d",&j);
        printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
        if(j==1)/*显示英语成绩<60的学生*/
            { while(h!=NULL)
                        {if(h->English<60)
                        printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                        } 
               
             } 

         if(j==2)/*显示英语成绩60<语文<=70的学生*/
              {while(h!=NULL)
                        {if(h->English<70 &&h->English>=60)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                        } 
               
               
             } 
          if(j==3)/*显示英语成绩70<语文<=80的学生*/
              {while(h!=NULL)
                        {if(h->English<80 &&h->English>=70)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                        } 
               
               
             } 
         if(j==4)/*显示英语成绩80<语文<=90的学生*/
              {while(h!=NULL)
                        {if(h->English<90 &&h->English>=80)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                        } /**/
               
               
             } 
        if(j==5)/*显示英语成绩>90的学生*/
              {while(h!=NULL)
                        {if(h->English>=90)
                         printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                         h=h->next;
                       
                        } 
               
               
             } 
       }
    if(i==3)/*按数学成绩*/
       {
        printf("显示数学成绩<60的学生:(按1)\n");
        printf("显示数学成绩60<语文<=70的学生:(按2)\n");
        printf("显示数学成绩70<语文<=80的学生:(按3)\n");
        printf("显示数学成绩80<语文<=90的学生:(按4)\n");
        printf("显示数学成绩>90的学生:(按5)");
        scanf("%d",&j);
        printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
       if(j==1)/*显示数学成绩<60的学生*/
            {while(h!=NULL)
                   { if(h->math<60)
                     printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                     h=h->next;
                     }
               
             } 

         if(j==2)/*显示数学成绩60<语文<=70的学生*/
              {while(h!=NULL)
                   { if(h->math<70 &&h->math>=60)
                     printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                     h=h->next;
                     }
               
             } 
          if(j==3)/*显示数学成绩70<语文<=80的学生*/
              {while(h!=NULL)
                   { if(h->math<80 &&h->math>=70)
                    printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                    h=h->next;
                         
                     }
             } 
         if(j==4)/*显示数学成绩80<语文<=90的学生*/
              {while(h!=NULL)
                   { if(h->math<90 &&h->math>=80)
                     printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                     h=h->next;
                     }
               
             } 
        if(j==5)/*显示数学成绩>90的学生*/
              {while(h!=NULL)
                   { if(h->math>=90)
                      printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
                      h=h->next;
                     }
               
             } 
      }


    printf("按语文成绩请按1:\n");
    printf("按英语成绩请按2:\n");
    printf("按数学成绩请按3:\n");
    printf("返回功能菜单请按0:\n");
    scanf("%d",&i);

⌨️ 快捷键说明

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