学生成绩分析管理系统

/*学生成绩分析管理系统
进入密码为:1234
学生成绩保存在E盘文件名为a.txt
以下有截图说明*/
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#define LEN sizeof(struct student)
#define stu struct student       
 
stu/*结构体的成员*/
{
 int num;
 char name[20];
 char yuan_xi[20];
 
 char C[20];
 char math[20];
 char english[20];
 char clas[20];
 int score1;
 int score2;
 int score3;
    stu *next;
};
 
stu *creat()/*创建链表*/
{
 stu *head,*p1,*p2;
 int i=0;
 head=NULL;
    p1=p2=(stu *)malloc(LEN);
 printf("\n\n                               学生信息的录入\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n");
    scanf("%d%s%s%s%s%d%s%d%s%d",&p1->num,p1->name,p1->yuan_xi,p1->clas,p1->C,&p1->score1,p1->math,&p1->score2,p1->english,&p1->score3);
 while(p1->num !=0)
 {
  i=1+i;
  if(i==1)
  {
   head=p1;
  }
  else
  {
   p2->next=p1;
  }
  
  p2=p1;
  
  printf("以各项为0结束\n");
  p1=(stu *)malloc(LEN);
  
  scanf("%d%s%s%s%s%d%s%d%s%d",&p1->num,p1->name,p1->yuan_xi,p1->clas,p1->C,&p1->score1,p1->math,&p1->score2,p1->english,&p1->score3);
 }
 p2->next =NULL;
 return head;
}
 
void cun(stu *head)/*录入信息的存取*/
{
 stu *p;
 FILE *fp;
 
 p=head; 
 
 fp=fopen("e:\\a.txt","ab");/*信息保存在a.txt中*/
 
 do                                                  
 {
  fwrite (p,LEN,1,fp);
  
  p=p->next;
  
 }while (p!=NULL);
 
 fclose (fp);
}
 
void save(stu *head)/*这个函数用于保存修改后的数据*/
{
 stu *p;
 FILE *fp;
 
 p=head; 
 
 fp=fopen("e:\\a.txt","wb");  /*如果在桌面上运行  则在桌面上建一个a.txt的文件。*/ 
 
 do
 {
  fwrite (p,LEN,1,fp);
  
  p=p->next;
  
 }while (p!=NULL);
 
 fclose (fp);
}
 
stu *du()/*用于读出文件中的数据*/
{
 stu *head,*p4,*p5;
 
 int i = 0;
 head=NULL;
 p4=p5=(stu *)malloc (LEN);
 
 FILE *fp;
 
 fp=fopen ("e:\\a.txt","r");
 if(fp==0)  
 {
  printf ("文件打开失败!\n");
  exit (0);
 } 
 while (fread(p4,LEN,1,fp)==1)//用于读出文件中的数据的循环体      
 {
  i=i+1;
  
  if (i==1)
  { 
   head=p4;
  }
  else
  { 
   p5->next=p4;
  }
  p5=p4;
  
  p4=(stu *)malloc(LEN);  
 } 
 p5->next=NULL;
 
 fclose (fp);
 
 return (head);
}
 
void print()/*输出函数*/
{
 stu *p;
 p=du();
 
 printf("\n\n                                学生成绩表\n\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n"); 
 
 while(p!=0)
 {
        printf("   │%d  │%s  │%s  │%s  │%s    │%d  │%s    │%d  │%s    │%d  │\n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
        p=p->next;
        if (p==0)
        printf("   └──┴──┴──┴──┴───┴──┴───┴──┴───┴──┘\n");
        else
            printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n");    
 } 
}

void change()/*这个函数用于修改文件中的数据*/
{ 
 char mi[20];
 
 print();/*先读出以便于修改*/
 
 stu *p,*head;
 
    head=du();
 
 p=head; 
 
 printf ("请输入你要修改的学生的姓名:");
 
    scanf ("%s",mi);/*输入你要修改的学生的姓名*/
 
 while (p!=0)
  
 {
  if(strcmp(mi,p->name)==0)
  {
         printf("\n\n                          学生信息的显示\n ");
            printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
            printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
            printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n");
   
   printf("   %d  %s  %s  %s  %s  %d  %s  %d  %s  %d  ",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
   
         printf("\n");
   
            printf("    ┌──────────────────────────────────┐\n");
            printf("    │  1. 修改学号信息                  6. 修改C语言成绩                 │\n");
            printf("    ├──────────────────────────────────┤\n");
            printf("    │  2. 修改姓名信息                  7. 修改科目2                     │\n");
   
            printf("    ├──────────────────────────────────┤\n");
   
            printf("    │  3. 修改院系信息                  8. 修改数学成绩                  │\n");
            printf("    ├──────────────────────────────────┤\n");
            printf("    │  4. 修改班级信息                  9. 修改科目3                     │\n");
            printf("    ├──────────────────────────────────┤\n");
         printf("    │  5. 修改科目1                    10. 修改英语成绩                  │\n");
            printf("    └──────────────────────────────────┘\n");
            printf("\n              请输入需要修改的内容、、、:");
   printf("\n请输入:");
   
   int n;
   
   scanf("%d",&n);
   
   switch(n)                                    //这个菜单用于选择你要修改的内容
    
   {
    
       case 1 :/*修改学号信息*/
     printf ("请输入修改后的学号:\n");
    
         scanf ("%d",&p->num);
        
        break;
    
       case 2 :
    
        printf("请输入修改后的姓名:\n");
    
        scanf("%s",p->name);
    
        break;
        
       case 3 :
     printf("请输入修改后的系别:\n");
    
        scanf("%s",p->yuan_xi);
       
        break;
       case 4 :
        printf ("请输入修改后的班级:\n");
    
         scanf ("%s",p->clas);
        
        break;
     
       case 5 :
     printf("请输入修改后的科目1:\n");
    
        scanf("%s",p->C);
 
        break;
       case 6 :
        printf("请输入修改后的科目1成绩:\n");
    
        scanf("%d",&p->score1);
           
        break;
     
       case 7 :
     printf("请输入修改后的科目2:\n");
    
        scanf("%s",p->math);
    
        break;
       case 8 :
         printf("请输入修改后的科目2成绩:\n");
    
        scanf("%d",&p->score2);
      
        break;
    
       case 9 :
     printf("请输入修改后的科目3:\n");
    
        scanf("%s",p->english);
    
        break;
     
       case 10 :
    
        printf("请输入修改后的科目3成绩:\n");
      
        scanf("%d",&p->score3);
    
        break;    
        
       case 11 :
    
        exit(0);
    
        break;    
   }  
   
   save(head); 
   
   break;
   
  }
  
  p=p->next;
  
  if(p==0)
   printf("\n没有此学生!\n");  
 }
 
}

void  search() /*查询方式函数*/
{
 int i;
 printf(" \n\n\n\n\n");
    printf("    ┌──────────────────────────────────┐\n");
    printf("    │  1. 按学生的姓名查询                                               │\n");
    printf("    ├──────────────────────────────────┤\n");
    printf("    │  2. 按学生的班级查询                                               │\n");
    printf("    ├──────────────────────────────────┤\n");
 
    printf("    │  3. 按院系查询                                                     │\n");
    printf("    └──────────────────────────────────┘\n");
 printf("\n                           请选择、、、:");
}

void name()/*姓名查询*/
{
 stu *p;
 char name[20];
 int u=0;
 
 printf("请输入你要查找的名字\n");
 scanf("%s",name);
 p=du();
 printf("\n\n                       查询学生信息结果显示\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n");
  
 while(p != 0 )
 {  
  if(strcmp(p->name,name)==0 )
  {
   u=1;
   printf("     %d  %s  %s  %s  %s  %d  %s  %d  %s  %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);   
  } 
  p=p->next ;
 } 
 if(u==0)
 {
  printf("没有此学生\n");
 } 
}
 
void ban()/*班级查询*/
{
 stu *p;
 char ban[20];
 int u=0;
 
 printf("请输入你要查找的班级\n");
 scanf("%s",ban);
 p=du();
 
 printf("\n\n                        查询学生信息结果显示\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n");
    
 while(p != 0 )
 {
  if(strcmp(p->clas,ban)==0 )
  {
   u=1;
   printf("     %d  %s  %s  %s  %s  %d  %s  %d  %s  %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
  }
  p=p->next ;
 }
 if(u==0)
 {
  printf("没有此学生\n");
 }
 
}

void xi()/*系别查询*/
{
 stu *p;
 char xi[20];
 int u=0;
 
 printf("\n请输入你要查找的系别\n");
 scanf("%s",xi);
 p=du();
 printf("\n\n                        查询学生信息结果显示\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n"); 
  
 while(p != 0 )
 {
  if(strcmp(p->yuan_xi,xi)==0 )
  {
   u=1;
   printf("     %d  %s  %s  %s  %s  %d  %s  %d  %s  %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
  }
  p=p->next ;
 } 
 if(u==0)
 {
  printf("没有此学生\n");
 } 
}

void  xian()/*排序菜单*/
{
 int i;
 printf(" \n\n\n\n\n");
    printf("    ┌──────────────────────────────────┐\n");
    printf("    │  1. 按学生的科目1进行排序                                          │\n");
    printf("    ├──────────────────────────────────┤\n");
    printf("    │  2. 按学生的科目2进行排序                                          │\n");
 
    printf("    ├──────────────────────────────────┤\n");
 
    printf("    │  3. 按学生的科目3进行排序                                          │\n");
    printf("    ├──────────────────────────────────┤\n");
    printf("    │  4. 返回上一层                                                     │\n");
    printf("    └──────────────────────────────────┘\n");
 printf("\n                           请选择、、、:");
}

void sort_chin() /*按kemu1成绩排序*/
{
 stu *p,*tail,*head;  /*定义中间变量*/
 int score1;
 p=(stu *)malloc(LEN);
 head=du();
 printf("\n\n                      按学生语文科目1成绩排序\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n"); 
 
 while(head->next!=NULL) /*利用选择法排序*/
 {
  tail=NULL;
  p=head;
  score1=p->score1;  /*将链表中第一个成绩赋给score1*/
  
  while(p!=NULL)
  {
   if((p->score1)>score1)/*比较*/
    score1=p->score1;
      tail=p;
      p=p->next;
  }  
  tail=NULL;
  p=head;
  while(p->next!=NULL)
  {
   if(p->score1==score1)
   {
       printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
    
    if(p==head)
     head=head->next;
    else
     tail->next=p->next;
   }
   tail=p;
   p=p->next;
  }  
  if(p->score1==score1)/*分数相同时无需比较*/ 
  {            
   printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
   
   tail->next=NULL;
  } 
 } 
 p=head; /*将链表赋给结构体指针*/
 printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3); printf("   %d  %s  %s  %s  %s  %d  %s  %d  %s  %d  ",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);  
}

void sort_math() //按科目2成绩排序
{
 stu *p,*tail,*head;  /*定义中间变量*/
 int score2;
 p=(stu *)malloc(LEN);
 head=du();
 printf("\n\n                      按学生科目2成绩排序\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n");
 
 while(head->next!=NULL) /*利用选择法排序*/
 {
  tail=NULL;
  p=head;
  score2=p->score2;  /*将链表中第一个成绩赋给score2*/
  while(p!=NULL)
  {
   if((p->score2)>score2)/*比较*/
    score2=p->score2;
   tail=p;
   p=p->next;
  }
  tail=NULL;
  p=head;
  while(p->next!=NULL)
  {
   if(p->score2==score2)
   {
    printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3); printf("   %d  %s  %s  %s  %s  %d  %s  %d  %s  %d  ",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
     
    if(p==head)
     head=head->next;
    else
     tail->next=p->next;
   }
   tail=p;
   p=p->next;
  }
  if(p->score2==score2) /*分数相同时无需比较*/ 
  {            
   printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3); printf("   %d  %s  %s  %s  %s  %d  %s  %d  %s  %d  ",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
 
   tail->next=NULL;
  } 
 } 
 p=head; /*将链表赋给结构体指针*/
 printf("     %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3); 
}

void sort_eng()/*按科目3成绩排序*/
{
 stu *p,*tail,*head;  /*定义中间变量*/
 int score3;
 p=(stu *)malloc(LEN);
 head=du();
 printf("\n\n                      按学生科目3成绩排序\n ");
 printf("  ┌──┬──┬──┬──┬───┬──┬───┬──┬───┬──┐\n");
    printf("   │学号│姓名│院系│班级│科目1 │成绩│科目2 │成绩│科目3 │成绩│\n");
    printf("   ├──┼──┼──┼──┼───┼──┼───┼──┼───┼──┤\n"); 
 
 while(head->next!=NULL) /*利用选择法排序*/
 {
  tail=NULL;
  p=head;
  score3=p->score3;/*将链表中第一个成绩赋给score3*/
  while(p!=NULL)
  {
   if((p->score3)>score3)/*比较*/
    score3=p->score3;
   tail=p;
   p=p->next;
  }
  tail=NULL;
  p=head;
  while(p->next!=NULL)
  {
   if(p->score3==score3)
   {
    printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
    
    if(p==head)
     head=head->next;
    else
     tail->next=p->next;
   }
   tail=p;
   p=p->next;
  }
  if(p->score3==score3) /*分数相同时无需比较*/ 
  {            
   printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
   tail->next=NULL;
  } 
 } 
 p=head;  /*将链表赋给结构体指针*/
 printf("    %d   %s   %s   %s   %s   %d   %s   %d   %s   %d  \n",p->num,p->name,p->yuan_xi,p->clas,p->C,p->score1,p->math,p->score2,p->english,p->score3);
}

void math()/*对科目1分析*/
{
 int b,sum=0,c;
 float i=0,j=0,g=0,ave;
 float m,n;
 stu *p;
 p=du();
 
 char  ba[20];
    printf(" \n\n\n\n\n");
 printf("                                对科目1成绩分析\n");
    printf("    ┌──────────────────────────────────┐\n");
    printf("    │  1. 系别成绩分析                                                   │\n");
    printf("    ├──────────────────────────────────┤\n");
    printf("    │  2. 班级成绩分析                                                   │\n");
 
    printf("    ├──────────────────────────────────┤\n");
 
    printf("    │  0. 返回上一层                                                     │\n");
 
    printf("    └──────────────────────────────────┘\n");
 printf("\n                           请选择、、、:");
 scanf("%d",&c);
 if(c==1)
 {
  printf("请输入系别名称:\n");
  scanf("%s",ba);
 }
 else if(c==2)
 {
  printf("请输入班级名称:\n");
  scanf("%s",ba);
 }
 else
 {
  exit(0);
 }
 while(p!=0)
 {
  if(c==2)
  {
   if(strcmp(p->clas ,ba)==0)              
   {
    i=i+1;
    b=p->score2;
    sum=sum+b;
    if(b>=60)
    {
     j=j+1;
     if(b>=90)
     {
      g=g+1;
     }
    }    
   }
  }
  if(c==1)
  {
   if(strcmp(p->yuan_xi ,ba)==0)              
   {
    i=i+1;
    b=p->score2;
    sum=sum+b;
    if(b>=60)
    {
     j=j+1;
     if(b>=90)
     {
      g=g+1;
     }
    }
    
   }
  }
  b=0;
  p=p->next;
 }
    m=j/i;
 n=g/i;
    ave=sum/i;
    printf("及格率%.2f   优秀率%.2f    平均值%.2f\n",m,n,ave);
}

void chin()/*对科目2成绩分析*/
{
 int b,sum=0,c,o;
 float i=0,j=0,g=0;
 float m,n,ave;
 stu *p;
 p=du(); 
 
 char  ba[20];
 printf(" \n\n\n\n\n");
 printf("                                对科目2成绩分析\n");
    printf("    ┌──────────────────────────────────┐\n");
    printf("    │  1. 按系别进行查看                                                   │\n");
    printf("    ├──────────────────────────────────┤\n");
    printf("    │  2. 按班级进行查看                                                   │\n");
 
    printf("    └──────────────────────────────────┘\n");
 printf("\n                           请选择、、、:");
 scanf("%d",&c);
 if(c==1)
 {
  printf("请输入系别名称:\n");
  scanf("%s",ba);
 }
 else if(c==2)
 {
  printf("请输入班级名称:\n");
  scanf("%s",ba);
 }
 else
 {
  printf("输入错误");
  system("PAUSE");
  system("cls");
 }
 while(p!=0)
 {
  if(c==2)
  {
   if(strcmp(p->clas ,ba)==0)
   {   
    i=i+1;
    b=p->score1;
    sum=sum+b;
    if(b>=60)
    {
     j=j+1;
     if(b>=90)
     {
      g=g+1;
     }
    }    
   }
  }
  else
  {
   if(strcmp(p->yuan_xi ,ba)==0)              
   {
    i=i+1;
    b=p->score2;
    sum=sum+b;
    if(b>=60)
    {
     j=j+1;
     if(b>=90)
     {
      g=g+1;
     }
    }    
   }
  }
  b=0;
  p=p->next;
 }
    m=j/i;
 n=g/i;
 ave=sum/i;
    printf("及格率%.2f   优秀率%.2f   平均值%.2f\n",m,n,ave);
}

void eng()/*对科目3成绩分析*/
{
 int b,sum=0,c;
 float i=0,j=0,g=0;
 float m,n,ave;
 stu *p;
 p=du();  
 
 char  ba[20];
    printf(" \n\n\n\n\n");
    printf("                                对科目3成绩分析\n");
    printf("    ┌──────────────────────────────────┐\n");
    printf("    │  1. 按系别进行查看                                                   │\n");
    printf("    ├──────────────────────────────────┤\n");
    printf("    │  2. 按班级进行查看                                                   │\n");
 
    printf("    └──────────────────────────────────┘\n");
 printf("\n                           请选择、、、:");
 scanf("%d",&c);
 if(c==1)
 {
  printf("请输入系别名称:\n");
  scanf("%s",ba);
 }
 else if(c==2)
 {
  printf("\n请输入班级名称:\n");
  scanf("%s",ba);
 }
 else
 {
  printf("输入错误");
  system("PAUSE");
  system("cls");
 }  
 while(p!=0)
 {
        if(c==2)
  {
   if(strcmp(p->clas ,ba)==0)
   {
    i=i+1;
    b=p->score3;
    sum=sum+b;
    if(b>=60)
    {
     j=j+1;
     if(b>=90)
     {
      g=g+1;
     }
    }
   }
  }
  else
  {
   if(strcmp(p->yuan_xi ,ba)==0)              
   {
    i=i+1;
    b=p->score2;
    sum=sum+b;
    if(b>=60)
    {
     j=j+1;
     if(b>=90)
     {
      g=g+1;
     }
    }
    
   }
  }
  b=0;
  p=p->next;
 }
    m=j/i;
 n=g/i;
 ave=sum/i;
    printf("及格率%.2f   优秀率%.2f     平均值%.2f\n",m,n,ave);
}

void zui()/*分析个人成绩**/
{
 int max,min,sum,a,b,ave,c,i=0,g=0;                 
 
 char  name[20];
 stu *p;
 p=du();
 
 printf("\n\n                             分析个人成绩、、、\n");
 printf("\n         请输入学生的名字、、:\n");
 scanf("%s",name);
 while(p!=0)                                          
 {   
        if(strcmp(p->name ,name)==0)
  {
   g=1;
   sum=p->score1 +p->score2+p->score3;
   a=p->score1;
   b=p->score2;
   c=p->score3;
  }
  p=p->next;
 }
 ave=sum/3;
 if(a>=b)
 {
  if(b>=c)
  {
   max=a;
   min=c;
   printf("max:%d  min:%d  ave:%d\n",max,min,ave);
  }
  else
  {
   if(a>=c)
   {
    max=a;
    min=b;
    printf("max:%d  min:%d  ave:%d\n",max,min,ave);
   }
   else
   {
    max=c;
    min=b;
    printf("max:%d  min:%d  ave:%d\n",max,min,ave);
   }
  }    
 }
 else
 {
  ave=sum/3;
  if(a>=c)
  {
   max=b;
   min=c;
   printf("max:%d  min:%d,ave:%d\n",max,min,ave);
  }
  else
  {
            if(b>=c)
   {
    max=b;
    min=a;
    printf("max:%d  min:%d  ave:%d\n",max,min,ave);
   }
   else
   {
    max=c;
    min=a;
    printf("max:%d  min:%d  ave:%d\n",max,min,ave);
   }
  }
 }
}

void enter()/*密码函数*/
{
  int i;
  while(1)
  {
    int a;
 char f;
 char ch[20];
 char num[20]={"1234"};
 printf("\n\n\n\n\n\n");
    printf("    ┌──────────────────────────────────┐\n");
    printf("    │                             请输入密码                             │\n");
    printf("    └──────────────────────────────────┘\n");
 printf("\n                       开始输入、、、:");
 
 scanf("%s",ch);
 system("cls");
 if(strcmp(num,ch) == 0)
  a = 1234;
 if(a ==1234)
 {
     printf("\n\n\n\n\n\n");
     printf("            ┌──────────────────────────┐\n");
     printf("            │****************************************************│\n");
     printf("            │****************************************************│\n");
     printf("            │****************************************************│\n");
      printf("            │*********┌──────────────┐***********│\n");
        printf("            │*********│欢迎进入学生成绩管理分析系统│***********│\n");
        printf("            │*********└──────────────┘***********│\n");
     printf("            │****************************************************│\n");
        printf("            │****************************************************│\n");
     printf("            │****************************************************│\n");
     printf("            └──────────────────────────┘\n");
 
     f=getchar();
     getchar();
     break;
 }
 else
 {
   printf("\n 密码错误");
   printf("请输入新密码:");
 }
  }  
}

int main() /*主函数*/
{   
 int i;
 enter();
 system("PAUSE");
 system("cls");
 printf("\n\n");
 while(1)
 {
        printf("\n");
        printf("    ┌──────────────────────────────────┐\n");
        printf("    │  1. 学生信息的录入                                                 │\n");
        printf("    ├──────────────────────────────────┤\n");
        printf("    │  2. 学生信息的修改                                                 │\n");
        printf("    ├──────────────────────────────────┤\n");
  
        printf("    │  3. 对学生的成绩进行分析(院系和班级的单科平均成绩、及格率和优秀率) │\n");
        printf("    ├──────────────────────────────────┤\n");
        printf("    │  4. 对个人成绩进行分析(各科的最高分和最低分)                     │\n");
        printf("    ├──────────────────────────────────┤\n");
     printf("    │  5. 对学生考试成绩进行排名                                         │\n");
        printf("    ├──────────────────────────────────┤\n");
  
     printf("    │  6. 显示成绩表                                                     │\n");
  
        printf("    ├──────────────────────────────────┤\n");
     printf("    │  7. 学生成绩的查找                                                 │\n");
  
        printf("    ├──────────────────────────────────┤\n");
     printf("    │  8. 退出程序                                                       │\n");
        printf("    └──────────────────────────────────┘\n");
  int n;
  stu *head;
     printf("                                  请选择:");
  scanf("%d",&n);
  switch(n)
  {
   case 1:/*学生信息的录入*/
   {
    system("PAUSE");
    system("cls");
    head=creat();/*创建函数*/
    cun(head);/*保存函数*/
   };break;
   
      case 2:/*学生信息的修改*/
   {
    system("PAUSE");
    system("cls");
    change();/*修改*/
   };break;
   
       case 3:/*即求单科平均成绩、及格率和优秀率*/
   {
    system("PAUSE");
    system("cls");
    int h;
                printf("    ┌──────────────────────────────────┐\n");
                printf("    │  1. 按科目1进行成绩分析                                            │\n");
                printf("    ├──────────────────────────────────┤\n");
                printf("    │  2. 按科目2进行成绩分析                                            │\n");
                printf("    ├──────────────────────────────────┤\n");
    
                printf("    │  3. 按科目3进行成绩分析                                            │\n");
                printf("    └──────────────────────────────────┘\n");
                printf("\n                           请选择、、、:");                      
    
    scanf("%d",&h);
    
    switch(h)
    {
     case 1:/*按科目1进行成绩分析*/
     {
      system("PAUSE");
                        system("cls");
                        chin();
     };break;
     
        case 2:/*按科目2进行成绩分析*/
     {
      system("PAUSE");
                        system("cls");
      math();
     };break;
     
        case 3:/*按科目3进行成绩分析*/
     {
      system("PAUSE");
                        system("cls");
      eng();
      
     };break;
              default :
     {
      system("PAUSE");
                        system("cls");
         printf("\n           你的输入有误、、、");
     };break;
    }    
   };break;
   
      case 4:/*对个人成绩进行分析(各科的最高分和最低分)*/
   {
    system("PAUSE");
    system("cls");
    zui();/* 最值*/ 
    
   };break;
   
      case 5: /*对学生考试成绩进行排名*/
   {
    system("PAUSE");
    system("cls");
    xian();
    int y;
    scanf("%d",&y);
    switch(y)
    {     
        case 1:
     {
      system("PAUSE");
      system("cls"); 
      
      sort_chin();/*按语文成绩排序*/
     };break;
     
         case 2:
     {
      system("PAUSE");
      system("cls");
      sort_math();/*按数学成绩排序*/
     };break;
     
        case 3:
     {
      system("PAUSE");
      system("cls");
      sort_eng();/*按英语成绩排序*/
     };break;
     
         case 4:
     {
      exit(0);
     };break;
     
        default:
     {
      printf("输入错误:\n");
     };break;     
    }    
   };break;
   
      case 6:/*显示成绩表*/
   {
    system("PAUSE");/*用于输出*/
    system("cls");
    print();
    
   };break;
   
      case 7: /*学生成绩的查找*/
   {
    system("PAUSE");
    system("cls");
    search();
    int a;
    scanf("%d",&a);
    switch(a)
    {     
        case 1:/*按学生的姓名查询*/
     {
      system("PAUSE");
      system("cls");
      name();
     };break;
     
         case 2:/*按学生的班级查询*/
     {
      system("PAUSE");
      system("cls");
      ban();
     };break;
     
        case 3:/*按院系查询*/
     {
      system("PAUSE");
      system("cls");
      xi();
     };break ;
     
        default:
     {
      printf("输入错误:\n");
     };break;     
    }    
   };break;
   
      case 8:/*退出程序*/
   {
    exit(0);
   };break;
   
      default:
   {
    printf("输入错误:\n");
   };break;
   
  }
  system("PAUSE");
  system("cls");
 }
 return 0;
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值