学生成绩管理系统代码

来源:百度文库 编辑:神马文学网 时间:2024/04/24 18:15:37

find(stu *p2)                                   /*通过姓名查找查看数据的函数*/
 { char name[20];
   int b=0;
   printf("Enter the name of the student you want to find:");   /*通过姓名查看*/
   scanf("%s",name);
   while(p2!=NULL)
     {if(strcmp(name,p2->name)==0)
        {
          printf("The data you want has be found\n");
          printf(" Name:%s\t",p2->name);
          printf("Num:%d\t",p2->num);
          printf("sex%s\t",p2->sex);
          printf("\n");
          printf("Chinese:%d\t",p2->chinese);
          printf("Math:%d\t",p2->mathematic);
          printf("English:%d\t",p2->english);
          printf("Computer:%d\t",p2->computer);
          printf("\n");

          b=1;
        }
       else if(b==0)
          printf("sorry not find data!");
          p2=p2->next;
     }

   if(b==1)
          {
            print();
            printf("Find one\n");}
    else
            {print();
             printf("Not find\n");

            }
}


void caverage()                        /*求各学生语文平均分、最高和最低分成绩的函数*/
 {  stu *p1;
    int i;
    float max=0.0,min=200.0;
    float sum=0.0,aver=0;
    p1=head;
    if(p1==NULL)
     printf("not data!");
    else
      {for(i=0;p1!=NULL;i++,p1=p1->next)
 sum+=p1->chinese;
   aver=sum/i;

        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
          {if(maxchinese)
             max=p1->chinese;
           }
        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
   if(min>p1->chinese)
     min=p1->chinese;
       }
      printf("Chinese Average:%f",aver);
      printf("Chinese Max:%f",max);
      printf("Chinese Min:%f",min);
 }

void maverage()                       /*求各学生数学平均分、最高和最低分成绩的函数*/
 { stu *p1;
    int i;
    float max=0.0,min=200.0;
    float sum=0.0,aver=0;
    p1=head;
    if(p1==NULL)
     printf("not data!");
    else
      {for(i=0;p1!=NULL;i++,p1=p1->next)
 sum+=p1->mathematic;
   aver=sum/i;

        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
          {if(maxmathematic)
             max=p1->mathematic;
           }
        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
   if(min>p1->mathematic)
     min=p1->mathematic;
       }
      printf("Mathe Average:%f",aver);
      printf("Mathe Max:%f",max);
      printf("Mathe Min:%f",min);
 }


 void eaverage()                /*求各学生英语平均分、最高和最低分成绩的函数*/
 {  stu *p1;
    int i;
    float max=0.0,min=200.0;
    float sum=0.0,aver=0;
    p1=head;
    if(p1==NULL)
     printf("not data!");
    else
      {for(i=0;p1!=NULL;i++,p1=p1->next)
 sum+=p1->english;
   aver=sum/i;

        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
          {if(maxenglish)
             max=p1->english;
           }
        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
   if(min>p1->english)
     min=p1->english;
       }
      printf("English Average:%f",aver);
      printf("English Max:%f",max);
      printf("English Min:%f",min);
 }


void comaverage()             /*求各学生计算机平均分、最高和最低分成绩的函数*/
 {  stu *p1;
    int i;
    float max=0.0,min=200.0;
    float sum=0.0,aver=0;
    p1=head;
    if(p1==NULL)
     printf("not data!");
    else
      {for(i=0;p1!=NULL;i++,p1=p1->next)
 sum+=p1->computer;
   aver=sum/i;

        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
          {if(maxcomputer)
             max=p1->computer;
           }
        p1=head;
 for(i=0;p1!=NULL;i++,p1=p1->next)
   if(min>p1->computer)
     min=p1->computer;
       }
      printf("Computer Average:%f",aver);
      printf("Computer Max:%f",max);
      printf("Computer Min:%f",min);
 }


    update(stu *p2)                      /*通过姓名查找来更新数据*/    
 {
  char name[10];                          /*p2为指向结构体struct student的指针*/
  int b=0;
  printf("Enter The Name");                 /*输入姓名*/
  scanf("%s",name);

  while(p2!=NULL)
    {if(strcmp(name,p2->name)==0)
      {
          printf("Find you data\n");
          scanf("Name:%s",p2->name);
          scanf("Num:%s",p2->num);
          scanf("Sex:%s",p2->sex);
          scanf("Chinese:%d",p2->chinese);
          scanf("Math:%d",p2->mathematic);
          scanf("english:%d",p2->english);
          scanf("Computer:%d",p2->computer);
          printf("Success!");

          b=1;}
     else if(b==0)
          printf("Sorry not Find data!");
          p2=p2->next;}
        if(b==0)
        {print();
         printf("Sorry not Find data!");
         }
        else
        {
         print();
         printf("Finish!");
            }
  }

save(stu *p2)                /*保留数据函数*/
  {
    FILE *fp;
    char file[10];
    printf("Enter file name");          /*输入文件名*/
    scanf("%s",file);
    fp=fopen(file,"w");
    while(p2!=NULL)
    {
        fprintf(fp,"%s",p2->name);
        fprintf(fp,"%s",p2->num);
        fprintf(fp,"%s",p2->sex);
        fprintf(fp,"%d",p2->chinese);
        fprintf(fp,"%d",p2->mathematic);
        fprintf(fp,"%d",p2->english);
        fprintf(fp,"%d",p2->computer);
        p2=p2->next;
    }
        fclose(fp);
 }


char password[7]="123456";                 /*定义初始密码*/


void main()                             /*主函数*/
{  int choice;
   stu *p2;
   char s[8];
   int flag=0,i;                    /*标志项*/
   int n=3;
  do{ printf("Enter password:\n");
      scanf("%s",s);
     if(!strcmp(s,password))              /*进行密码匹配验证*/
      { printf("PASS\n\n\n");
        flag=1;
       break;
      }
    else{
       printf("Error Enter again:\n");
        n--;
        }
       }
      while(n>0);
  if(!flag)
  {printf("you have Enter 3 times!");       /*输入密码超过了3次!!*/
    exit(0);                                /*自动退出*/
  }
                                                /*密码验证成功后进入的界面*/

   printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n");             /*操作界面*/
   printf("\t\tWelcom to the Mis\n");
   printf("Author:-----\tClass:------\tNum:------\n");    /*作者,班级和号码*/
   printf("Adress:HG\n");                                      /*地址*/
   printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
   printf("\t\tEnter OP:\n");
   printf("\n\n\n\n");
   printf("==============\t\t==============\n");
   printf("==============\t\t==============\n");
   printf("\t\tEnter the MIS yes or no\n");                  /*问进入系统与否*/

   scanf("%d",&choice);
    if(choice=='n'||choice=='N')
        exit(1);

 print();
  while(1)
  {
  printf("Enter choice:");
   scanf("%d",&i);
 if(i<1||i>13)
         {
   printf("Enter num from 1 to 13:\n");          /*再从1-13中进行选择*/
          exit(1);
        }

  switch(i)
  {    case 1:
          p2=cindata();  /*其他数据是否继续输入的函数*/
          break;
       case 2:
          p2=lookdata(head);      /*查看数据的函数*/
          break;
       case 3:
          insert();          /*通过比较学号来插入数据的函数*/
          break;
       case 4:
          find(head);        /*通过姓名查找查看数据的函数*/
          break;
       case 5:
          update(head);     /*通过姓名查找来更新数据*/
          break;
       case 6:
          save(head);       /*保留数据函数*/
          break;
       case 7:
          print();         /*显示或打印函数*/
          break;
       case 8:
          caverage();    /*求各学生语文平均分、最高和最低分成绩的函数*/
          break;
       case 9:
          maverage();   /*求各学生数学平均分、最高和最低分成绩的函数*/
          break;
       case 10:
          eaverage();  /*求各学生英语平均分、最高和最低分成绩的函数*/
          break;
       case 11:
          comaverage();  /*求各学生计算机平均分、最高和最低分成绩的函数*/
          break;
       case 12:
            ;          /*空操作*/
       case 13:
           exit(1);      /*退出*/
           break;
}
  scanf("%d",&i);
}
}