学生管理第统

#include"string.h"
#include "stdio.h"
#include "stdlib.h"
#include"conio.h"
#define MAXSIZE 100
void menu();
typedef struct
{
    char Sno[10];
    char Sname[15];
    char Ssex[4];
    int  Sage;
    int  Sscore;
}Record;
int length=0;
/*************************显示所有数据*************************/
void display( )
{
   int i;
   FILE *fp;
   Record student;
   if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
   {
       printf("File open error!\n");
       exit(0);
   }
   printf("Display All Student Data!\n\n");
   while(!feof(fp))                            /*判断文件是否读取完成*/
   {
       fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
       printf("\n%s\t%s\t%s\t%d\t%d",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
   }
   fclose(fp);               /*关闭文件*/
   printf("\n\nplese Enter 1 to end:");
   scanf("%d",&i);
   if(i==1)
   {
      clrscr();
      return;
   }
   else
   {
        clrscr();
        display();
   }

}
/*************************添加菜单*************************/
void addMenu()
{
     printf("--------------添加菜单--------------\n\n");
     printf("1. Add  student Data\n");
     printf("2. Display  All student Data\n");
     printf("0. Exit Add Menu\n");
     printf("------------------------------------\n\n");
     printf("Enter the index:");
}
/*************************添加*************************/
void add()
{
    FILE *fp;
    Record student;
    char *cr;
    int i,k;
     addMenu();
     scanf("%d",&i);
     printf("\n\n");
     if(i==1)
     {
         printf("Enter Student No:");    /*输入学号*/
         scanf("%s",cr);
         while(strlen(cr)>10)
         {
             printf("Data to Long!\n");
             printf("Enter Student No:");
             scanf("%s",cr);
         }
         strcpy(student.Sno,cr);
         printf("Enter Student Name:");  /*输入姓名*/
         scanf("%s",cr);
         while(strlen(cr)>15)
         {
             printf("Data to Long!\n");
             printf("Enter Student Name:");
             scanf("%s",cr);
         }
         strcpy(student.Sname,cr);
          printf("Enter Student Ssex:");  /*输入性别*/
         scanf("%s",cr);
         while(strlen(cr)>4)
         {
             printf("Data to Long!\n");
             printf("Enter Student Ssex:");
             scanf("%s",cr);
         }
         strcpy(student.Ssex,cr);

        printf("Enter Student Sage:");    /*输入年龄*/
        scanf("%d",&student.Sage);
        printf("Enter Student Sscore:");    /*输入分数*/
        scanf("%d",&student.Sscore);
        if((fp=fopen("D:\\f.txt","a"))==NULL)    /*判断文件是否能打开*/
        {
           printf("File open error!\n");
           exit(0);
        }
         fprintf(fp,"\n%s\t%s\t%s\t%d\t%d",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
         fclose(fp);                          /*关闭文件*/
         clrscr();
     printf("Add Success!\n");
     printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
     add();
     }
     else if(i==2)
     {
          clrscr();
          display();
          add();
     }
     else if(i==0)
     {
          clrscr();
          return;
     }
     else
     {
        clrscr();
        add();
     }
}
/*************************插入************************
void insert()
{
} */
 
 
/*************************查找菜单*************************/
void selectMenu()
{
   printf("-------------查找菜菜单---------------\n\n");
   printf("     1.  Enter Sname  Seek \n\n");
   printf("     2.  Enter Sno    Seek \n\n");
   printf("     3.  Enter Ssex   Seek \n\n");
   printf("     4.  Enter Sage   Seek \n\n");
   printf("     5.  Enter Sscore Seek \n\n");
   printf("     0.  Exit\n\n");
   printf("---------------------------------------\n\n");
}
/*************************查找*************************/
void select()
{
    int i,k,n;
    Record student;
    FILE *fp;
    char *cr;
    k=0;
    selectMenu();
    printf("Please Enter Seek Index:");
    scanf("%d",&i);
    if(i==0)
    {
        clrscr();
        menu();
    }
    else if(i==1)        /*根据姓名查询*/
    {

         printf("\n\n\nEnter Student Name:");  /*输入姓名*/
         scanf("%s",cr);
         while(strlen(cr)>15)
         {
             printf("Data to Long!\n");
             printf("Enter Student Name:");
             scanf("%s",cr);
         }
         strcpy(student.Sname,cr);
         if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
         {
              printf("File open error!\n");
              exit(0);
         }
        while(!feof(fp))                            /*判断文件是否读取完成*/
       {
            fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
            if(strcmp(student.Sname,cr)==0)
            {
                k=1;
                printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
            }
       }
       if(feof(fp)&&k==0)
          printf("Have Not Found Name Is %s Student Information!\n",cr);
       fclose(fp);               /*关闭文件*/
   }
   else if(i==2)                 /*根据学号查询*/
   {
        printf("Enter Student No:");    /*输入学号*/
         scanf("%s",cr);
         while(strlen(cr)>10)
         {
             printf("Data to Long!\n");
             printf("Enter Student No:");
             scanf("%s",cr);
         }
         strcpy(student.Sno,cr);
          if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
         {
              printf("File open error!\n");
              exit(0);
         }
        while(!feof(fp))                            /*判断文件是否读取完成*/
       {
            fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
            if(strcmp(student.Sno,cr)==0)
            {
                k=1;
                printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
            }
       }
       if(feof(fp)&&k==0)
          printf("Have Not Found No Is %s Student Information!\n",cr);
       fclose(fp);   
   }
   else if(i==3)
   {
         printf("Enter Student Ssex:");  /*输入性别*/
         scanf("%s",cr);
         while(strlen(cr)>4)
         {
             printf("Data to Long!\n");
             printf("Enter Student Ssex:");
             scanf("%s",cr);
         }
         strcpy(student.Ssex,cr);
          if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
         {
              printf("File open error!\n");
              exit(0);
         }
        while(!feof(fp))                            /*判断文件是否读取完成*/
       {
            fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
            if(strcmp(student.Ssex,cr)==0)
            {
                k=1;
                printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
            }
       }
       if(feof(fp)&&k==0)
          printf("Have Not Found Sex Is %s Student Information!\n",cr);
       fclose(fp);   
   }
   else if(i==4)
   {
        printf("Enter Student Sage:");    /*输入年龄*/
        scanf("%d",&n);
         if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
         {
              printf("File open error!\n");
              exit(0);
         }
        while(!feof(fp))                            /*判断文件是否读取完成*/
       {
            fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
            if(student.Sage==n)
            {
                k=1;
                printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
            }
       }
       if(feof(fp)&&k==0)
          printf("Have Not Found Age Is %s Student Information!\n",n);
       fclose(fp);   
   }
    else if(i==5)
   {
         printf("Enter Student Sscore:");    /*输入分数*/
        scanf("%d",&n);
         if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
         {
              printf("File open error!\n");
              exit(0);
         }
        while(!feof(fp))                            /*判断文件是否读取完成*/
       {
            fscanf(fp,"%s%s%s%d%d",student.Sno,student.Sname,student.Ssex,&student.Sage,&student.Sscore);
            if(student.Sscore==n)
            {
                k=1;
                printf("%s\t%s\t%s\t%d\t%d\n",student.Sno,student.Sname,student.Ssex,student.Sage,student.Sscore);
            }
       }
       if(feof(fp)&&k==0)
          printf("Have Not Found Sex Is %s Student Information!\n",n);
       fclose(fp);   
   }
  select();
}
/*************************修改************************
void modify()
{
}    */
/*************************排序菜单*************************/
orderMenu()
{
   printf("\n\n-------------排序菜单---------------\n\n");
   printf("     1.  Order By Sno      \n\n");
   printf("     2.  Order By Sage    \n\n");
   printf("     3.  Order By Sscore  \n\n");
   printf("     0.  Exit\n\n");
   printf("---------------------------------------\n\n");
}
/*************************排序*************************/
void order()
{
   int i,j,k,length;
   FILE *fp;
   Record student[50];
   length=0;
   orderMenu();
   printf("\nEnter the Index:");
   scanf("%d",&k);
   if(k>=1&&k<=3)
   {
       if((fp=fopen("D:\\f.txt","r"))==NULL)
       {
             printf("File open error!\n");
             exit(0);
       }
       i=0;
       while(!feof(fp))                            /*判断文件是否读取完成*/
       {
          i++;
          fscanf(fp,"%s%s%s%d%d",student[i].Sno,student[i].Sname,student[i].Ssex,&student[i].Sage,&student[i].Sscore);
       }
       length=i;

      fclose(fp);        /*关闭文件*/
      if(k==1)               /*学号排序*/
      {
          if(length>=2)
           {
                for(i=2;i<=length;i++)
                {
                    j=i-1;
                    student[0]=student[i];
                    while(strcmp(student[0].Sno,student[j].Sno)<0)
                    {
                       student[j+1]=student[j];
                       j=j-1;
                    }
                    student[j+1]=student[0];
                }
           }
            for(i=1;i<=length;i++)
           printf("\n%s\t%s\t%s\t%d\t%d",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
      }
      else if(k==2)          /*年龄排序*/
      {
           if(length>=2)
           {
                for(i=2;i<=length;i++)
                {
                    j=i-1;
                    student[0]=student[i];
                    while(student[0].Sage<student[j].Sage)
                    {
                       student[j+1]=student[j];
                       j=j-1;
                    }
                    student[j+1]=student[0];
                }
           }
            for(i=1;i<=length;i++)
           printf("\n%s\t%s\t%s\t%d\t%d",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
      }
      else                 /*成绩排序*/
      {
            if(length>=2)
           {
                for(i=2;i<=length;i++)
                {
                    j=i-1;
                    student[0]=student[i];
                    while(student[0].Sscore<student[j].Sscore)
                    {
                       student[j+1]=student[j];
                       j=j-1;
                    }
                    student[j+1]=student[0];
                }
           }
            for(i=1;i<=length;i++)
           printf("\n%s\t%s\t%s\t%d\t%d",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
      }
   }
   else if(k==0)
   {
        clrscr();
        return;
   }
   else
   {
       clrscr();
       order();
   }
   order();
}
/*************************删除菜单*************************/
deletedMenu()
{
   printf("\n\n------------------删除菜单----------------------------\n\n");
   printf("     1.  Enter  No  Delected.\n\n");
   printf("     2.  Enter  name Delected.\n\n");
   printf("     3.  Delected All Man Student Information.    \n\n");
   printf("     4.  Delected All Woman Student Information. \n\n");
    printf("     5.  Delected All Studnet Information.      \n\n");
   printf("     0.  Exit\n\n");
   printf("------------------------------------------------------------\n\n");
}
/*************************删除*************************/
void deleted()
{
     int i,j,k,length;
   FILE *fp;
   char *cr,c[15];
   Record stu,student[50];
   length=j=i=0;
   deletedMenu();
   printf("\nEnter the Index:");
   scanf("%d",&k);

   if(k>=1&&k<=5)
   {
       if(k==1)             /*输入学号删除*/
       {
            printf("\n\nEnter Student No:");    /*输入学号*/
            scanf("%s",cr);
            while(strlen(cr)>10)
            {
                printf("Data to Long!\n");
                printf("Enter Student No:");
                scanf("%s",cr);
            }

             if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
            {
                printf("File open error!\n");
                exit(0);
            }
            while(!feof(fp))                            /*判断文件是否读取完成*/
            {
                  fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
                  if(strcmp(stu.Sno,cr)==0)
                  {
                      j=1;
                      printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
                  }
                  else
                  {
                     student[i]=stu;
                      i++;
                      length++;
                  }
            }
            fclose(fp);
            if(j==1)
            {
                printf("\nThe above information will be deleted!\n");
                do
                {
                    printf("Make sure to delete(Y/N):");
                    scanf("%s",cr);
                }while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
                 i=0;
                if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
                {
                     if((fp=fopen("D:\\f.txt","w"))==NULL)
                    {
                          printf("File open error!\n");
                          exit(0);
                    }
                   while(i<length-1)
                   {
                        fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
                        i++;
                   }
                   printf("Deleted successfully!");
                   fclose(fp);
                }
            }
            else
                printf("\nThe student information does not exist!\n");
       }
       else if(k==2)
       {
            printf("\n\nEnter Student Name:");  /*输入姓名*/
            scanf("%s",cr);
            while(strlen(cr)>15)
            {
                 printf("Data to Long!\n");
                 printf("Enter Student Name:");
                 scanf("%s",cr);
            }
            if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
            {
                printf("File open error!\n");
                exit(0);
            }
            while(!feof(fp))                            /*判断文件是否读取完成*/
            {
                  fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
                  if(strcmp(stu.Sname,cr)==0)
                  {
                      j=1;
                      printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
                  }
                  else
                  {
                     student[i]=stu;
                      i++;
                      length++;
                  }
            }
            fclose(fp);
            if(j==1)
            {
                printf("\nThe above information will be deleted!\n");
                do
                {
                    printf("Make sure to delete(Y/N):");
                    scanf("%s",cr);
                }while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
                 i=0;
                if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
                {
                     if((fp=fopen("D:\\f.txt","w"))==NULL)
                    {
                          printf("File open error!\n");
                          exit(0);
                    }
                   while(i<length-1)
                   {
                        fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
                        i++;
                   }
                   printf("Deleted successfully!");
                   fclose(fp);
                }
            }
            else
                printf("\nThe student information does not exist!\n");
       }
       else if(k==3)
       {
           if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
            {
                printf("File open error!\n");
                exit(0);
            }
            while(!feof(fp))                            /*判断文件是否读取完成*/
            {
                  fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
                  if(strcmp(stu.Ssex,"男")==0)
                  {
                      j=1;
                      printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
                  }
                  else
                  {
                     student[i]=stu;
                      i++;
                       length++;
                  }
            }
            fclose(fp);
            if(j==1)
            {
                printf("\nThe above information will be deleted!\n");
                do
                {
                    printf("Make sure to delete(Y/N):");
                    scanf("%s",cr);
                }while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
                 i=0;
                if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
                {
                     if((fp=fopen("D:\\f.txt","w"))==NULL)
                    {
                          printf("File open error!\n");
                          exit(0);
                    }
                   while(i<length-1)
                   {
                        fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
                        i++;
                   }
                   printf("Deleted successfully!");
                   fclose(fp);
                }
            }
            else
                printf("\nMale students information does not exist!\n");
       }
       else if(k==4)
       {
             if((fp=fopen("D:\\f.txt","r"))==NULL)        /*判断文件是否能打开*/
            {
                printf("File open error!\n");
                exit(0);
            }
            while(!feof(fp))                            /*判断文件是否读取完成*/
            {
                  fscanf(fp,"%s%s%s%d%d",stu.Sno,stu.Sname,stu.Ssex,&stu.Sage,&stu.Sscore);
                  if(strcmp(stu.Ssex,"女")==0)
                  {
                      j=1;
                      printf("%s\t%s\t%s\t%d\t%d\n",stu.Sno,stu.Sname,stu.Ssex,stu.Sage,stu.Sscore);
                  }
                  else
                  {
                     student[i]=stu;
                      i++;
                      length++;
                  }
            }
            fclose(fp);
            if(j==1)
            {
                printf("\nThe above information will be deleted!\n");
                do
                {
                    printf("Make sure to delete(Y/N):");
                    scanf("%s",cr);
                }while(strcmp(cr,"Y")!=0&&strcmp(cr,"y")!=0&&strcmp(cr,"N")!=0&&strcmp(cr,"n")!=0);
                 i=0;
                if(strcmp(cr,"Y")==0||strcmp(cr,"y")==0)
                {
                     if((fp=fopen("D:\\f.txt","w"))==NULL)
                    {
                          printf("File open error!\n");
                          exit(0);
                    }
                   while(i<length-1)
                   {
                        fprintf(fp,"%s\t%s\t%s\t%d\t%d\n",student[i].Sno,student[i].Sname,student[i].Ssex,student[i].Sage,student[i].Sscore);
                        i++;
                   }
                   printf("Deleted successfully!");
                   fclose(fp);
                }
            }
            else
                printf("\nFemale student information does not exist!\n");
       }
       else
       {
           if((fp=fopen("D:\\f.txt","w"))==NULL)
           {
               printf("File open error!\n");
               exit(0);
           }
           fclose(fp);
           clrscr();
           printf("All Students Data is  Cleaned Empty!\n");
       }
   }
   else if(k==0)
   {
       return;
   }
   else
   {
       deleted();
   }
   deleted();
}
/*************************主菜单*************************/

void menu()
{
     int i, k,j;;
      i=1;
     clrscr();
    srand((unsigned)time(0));
    k=rand() % 7;
    textbackground(k);
    do
    {
       j=rand() % 7;
    }while(j==k);
    textcolor(j);

     while(i!=0)
     {
        printf("-------------------主菜单-----------------------------------\n");
           printf("     Please  Choose   Menu  Item\n\n");
           printf("     1.Add Student Informatiom\n\n");
           printf("     2.Display All Student Information\n\n");
           printf("     3.Select Student Informatiom\n\n");
           printf("     4.Order  Student Informatiom\n\n");
           printf("     5.Deleted Student Informatiom\n\n");
           printf("     0.Exit Program\n");
        printf("------------------------------------------------------\n\n");
        printf("Enter The Item No:");
        scanf("%d",&i);
        switch(i)
        {
           case 0:
               exit(0);
           case 1:
               clrscr();
               add();
               break;
           case 2:
               clrscr();
               display();
               break;
           case 3:
               clrscr();
               select();
               break;
           case 4:
               clrscr();
               order();
               break;
           case 5:
               clrscr();
               deleted();
               break;
           default:
               menu();
               break;
       }
        menu();
    }
}
/*************************主函数*************************/
void main()
{
    int i,j;
    srand((unsigned)time(0));
    i=rand() % 7;
    textbackground(i);
    do
    {
       j=rand() % 7;
    }while(j==i);
    textcolor(j);
    menu();
getch();
return;
}

你可能感兴趣的:(职场,学生管理系统,休闲)