• 学生学籍管理系统


      1 //运行文件前在D盘建一个program文件夹
      2 #include<stdio.h>
      3 #include<stdlib.h>
      4 #include<string.h>
      5 #include<windows.h>
      6 #include<conio.h>
      7 struct student
      8 {
      9     int num;
     10     char name[50];
     11     char sex[20];
     12     int age;
     13     char address[50];
     14     char xiyuan[20];
     15     char zhuanye[20];
     16 }stu[1000000];
     17 int cmp(student a,student b)
     18 {
     19     return a.num<b.num;
     20 }
     21 void menu()
     22 {
     23     system("color 4e");
     24     system("cls");//清屏!!
     25     printf("
    
    ");
     26     printf("          *******************************************************
    ");
     27     printf("          **                 学生学籍管理系统菜单              **
    ");
     28     printf("          *******************************************************
    ");
     29     printf("          **                                                   **
    ");
     30     printf("          **  1:新建一个学籍管理系统  2:增加学生学籍           **
    ");
     31     printf("          **                                                   **
    ");
     32     printf("          **  3:修改学生学籍信息      4:删除学生学籍           **
    ");
     33     printf("          **                                                   **
    ");
     34     printf("          **  5:查找学生学籍          6:浏览所有学生学籍       **
    ");
     35     printf("          **                                                   **
    ");
     36     printf("          **  7:退出学籍管理系统      8.修改密码               **
    ");
     37     printf("          **                                                   **
    ");
     38     printf("          *******************************************************
    ");
     39 
     40 }
     41 void newbuild()/*新建一个学籍管理系统*/
     42 {
     43     system("cls");
     44     int i,true1,n;
     45     printf("
    
       是否新建学生学籍信息,是1,否0  :      ");
     46     scanf("%d",&true1);
     47     if(!true1)     return;
     48     printf("
        请你输入你新建学籍管理系统学生个数:    ");
     49     scanf("%d",&n);
     50     for(i=0;i<n;i++)
     51     {
     52         printf("
               请输出第 %d 个学生的学籍:
    ",i+1);
     53         printf("
                            学号:");scanf("%d",&stu[i].num);getchar();
     54         printf("                        姓名:");scanf("%s",stu[i].name);getchar();
     55         printf("                        性别:");scanf("%s",stu[i].sex);getchar();
     56         printf("                        年龄:");scanf("%d",&stu[i].age);getchar();
     57         printf("                        籍贯:");scanf("%s",stu[i].address);getchar();
     58         printf("                        系院:");scanf("%s",stu[i].xiyuan);getchar();
     59         printf("                        专业:");scanf("%s",stu[i].zhuanye);getchar();
     60     }
     61     FILE *fp;
     62     if((fp=fopen("d:\program\student.txt","w"))==NULL)
     63     {
     64         printf("
    打开文件失败!!!
    ");
     65         getch();
     66         exit(1);
     67     }
     68     for(i=0;i<n;i++)
     69         fprintf(fp,"	%d	%s	%s	%d	%s	%s	%s
    ",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].address,stu[i].xiyuan,stu[i].zhuanye);
     70     fclose(fp);
     71     system("pause
    ");
     72 }
     73 void add()/*增加学生学籍*/
     74 {
     75     int true2;
     76     FILE *fp;
     77     if((fp=fopen("d:\program\student.txt","a"))==NULL)
     78     {
     79         printf("
    打开文件失败!!!
    ");
     80         getch();
     81         exit(1);
     82     }
     83     while(1)
     84     {
     85         printf("
              请选择 1->增加 或 0->结束增加 :  ");
     86         scanf("%d",&true2);
     87         getchar();
     88         if(!true2)   break;
     89         printf("
                  请依次输入增加的每个学生的学籍信息
    ");
     90         printf("
                            学号:");scanf("%d",&stu[0].num);getchar();
     91         printf("                        姓名:");scanf("%s",stu[0].name);getchar();
     92         printf("                        性别:");scanf("%s",stu[0].sex);getchar();
     93         printf("                        年龄:");scanf("%d",&stu[0].age);getchar();
     94         printf("                        籍贯:");scanf("%s",stu[0].address);getchar();
     95         printf("                        系院:");scanf("%s",stu[0].xiyuan);getchar();
     96         printf("                        专业:");scanf("%s",stu[0].zhuanye);getchar();
     97         fprintf(fp,"	%d	%s	%s	%d	%s	%s	%s
    ",stu[0].num,stu[0].name,stu[0].sex,stu[0].age,stu[0].address,stu[0].xiyuan,stu[0].zhuanye);
     98     }
     99     fclose(fp);
    100     system("pause
    ");
    101 }
    102 void modify()/*修改学生学籍信息*/
    103 {
    104     system("cls");
    105     int i=0,j,n;
    106     FILE *fp;
    107     if((fp=fopen("d:\program\student.txt","r"))==NULL)
    108     {
    109         printf("
    打开文件失败!!!
    ");
    110         getch();
    111         exit(1);
    112     }
    113     memset(stu,0,sizeof(stu));
    114     while(fscanf(fp,"%d",&stu[i].num)!=EOF)
    115     {
    116         fscanf(fp,"%s%s%d%s%s%s",stu[i].name,stu[i].sex,&stu[i].age,stu[i].address,stu[i].xiyuan,stu[i].zhuanye);
    117         i++;
    118     }
    119     fclose(fp);
    120     while(1)
    121     {
    122 
    123             printf("
                    ※※※※※※※※※※※※※※※※※※※※※※※※
    ");
    124             printf("                ※※※※※※※※※※※※※※※※※※※※※※※※
    ");
    125             printf("                ※※                                        ※※
    ");
    126             printf("                ※※    1:按照学号修改学生学籍:            ※※
    ");
    127             printf("                ※※                                        ※※
    ");
    128             printf("                ※※    2:按照姓名修改学生学籍:            ※※
    ");
    129             printf("                ※※                                        ※※
    ");
    130             printf("                ※※    3:返回主菜单                        ※※
    ");
    131             printf("                ※※                                        ※※
    ");
    132             printf("                ※※※※※※※※※※※※※※※※※※※※※※※※
    ");
    133             printf("                ※※※※※※※※※※※※※※※※※※※※※※※※
    ");
    134             printf("
    输入数据,请选择(1—3):");
    135             scanf("%d",&n);
    136             while(n<1||n>3)
    137             {
    138                 printf("输入错误,请重新输入!!
    ");
    139                 scanf("%d",&n);
    140             }
    141             if(n==3)  break;
    142             if(n==1)
    143             {
    144                 int num,flag=0;
    145                 printf("
    请输入学号:");
    146                 scanf("%d",&num);
    147                 for(j=0;j<i;j++)
    148                 {
    149                     if(stu[j].num==num)
    150                     {
    151                         flag=1;
    152                         printf("                 请输入该学生的新学籍信息:
    ");
    153                         printf("
                            学号:");scanf("%d",&stu[j].num);getchar();
    154                         printf("                        姓名:");scanf("%s",stu[j].name);getchar();
    155                         printf("                        性别:");scanf("%s",stu[j].sex);getchar();
    156                         printf("                        年龄:");scanf("%d",&stu[j].age);getchar();
    157                         printf("                        籍贯:");scanf("%s",stu[j].address);getchar();
    158                         printf("                        系院:");scanf("%s",stu[j].xiyuan);getchar();
    159                         printf("                        专业:");scanf("%s",stu[j].zhuanye);getchar();
    160                         break;
    161                     }
    162                 }
    163                 if(flag)   printf("
        修改成功!!
    ");
    164                 else       printf("
        不存在该学生!!
    ");
    165             }
    166             else if(n==2)
    167             {
    168                 int flag=0;
    169                 char ch[50];
    170                 printf("
    请输入姓名:");
    171                 scanf("%s",ch);
    172                 for(j=0;j<i;j++)
    173                 {
    174                     if(!strcmp(ch,stu[j].name))
    175                     {
    176                         flag=1;
    177                         printf("
                   请输入该学生的新学籍信息:
    ");
    178                         printf("
                            学号:");scanf("%d",&stu[j].num);getchar();
    179                         printf("                        姓名:");scanf("%s",stu[j].name);getchar();
    180                         printf("                        性别:");scanf("%s",stu[j].sex);getchar();
    181                         printf("                        年龄:");scanf("%d",&stu[j].age);getchar();
    182                         printf("                        籍贯:");scanf("%s",stu[j].address);getchar();
    183                         printf("                        系院:");scanf("%s",stu[j].xiyuan);getchar();
    184                         printf("                        专业:");scanf("%s",stu[j].zhuanye);getchar();
    185                         break;
    186                     }
    187                 }
    188                 if(flag)
    189                     printf("
        修改成功!!
    ");
    190                 else
    191                     printf("
        不存在该学号生!!
    ");
    192             }
    193     }
    194     if((fp=fopen("d:\program\student.txt","w"))==NULL)
    195     {
    196         printf("
    打开文件失败!!!
    ");
    197         getch();
    198         exit(1);
    199     }
    200     for(j=0;j<i;j++)
    201         fprintf(fp,"	%d	%s	%s	%d	%s	%s	%s
    ",stu[j].num,stu[j].name,stu[j].sex,stu[j].age,stu[j].address,stu[j].xiyuan,stu[j].zhuanye);
    202     fclose(fp);
    203     system("pause
    ");
    204 }
    205 void del()/*删除学生学籍*/
    206 {
    207     system("cls");
    208     int i=0,j,n;
    209     FILE *fp;
    210     if((fp=fopen("d:\program\student.txt","r"))==NULL)
    211     {
    212         printf("
    打开文件失败!!!
    ");
    213         getch();
    214         exit(1);
    215     }
    216     memset(stu,0,sizeof(stu));
    217     while(fscanf(fp,"%d",&stu[i].num)!=EOF)
    218     {
    219         fscanf(fp,"%s%s%d%s%s%s",stu[i].name,stu[i].sex,&stu[i].age,stu[i].address,stu[i].xiyuan,stu[i].zhuanye);
    220         i++;
    221     }
    222     fclose(fp);
    223     while(1)
    224     {
    225             printf("
                ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ");
    226             printf("            ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ");
    227             printf("            ★★★★                                          ★★★★
    ");
    228             printf("            ★★★★            1:按照学号删除学              ★★★★
    ");
    229             printf("            ★★★★                                          ★★★★
    ");
    230             printf("            ★★★★            2:按照姓名删除学生学籍:      ★★★★
    ");
    231             printf("            ★★★★                                          ★★★★
    ");
    232             printf("            ★★★★            3:返回主菜单                  ★★★★
    ");
    233             printf("            ★★★★                                          ★★★★
    ");
    234             printf("            ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ");
    235             printf("            ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ");
    236             printf("
        输入数据,请选择(1—3):");
    237             scanf("%d",&n);
    238             while(n<1||n>3)
    239             {
    240                 printf("   输入错误,请重新输入!!
    ");
    241                 scanf("%d",&n);
    242             }
    243             if(n==3) break;
    244             if(n==1)
    245             {
    246                 int num,flag=0;
    247                 printf("
    请输入学号:");
    248                 scanf("%d",&num);
    249                 for(j=0;j<i;j++)
    250                 {
    251                     if(stu[j].num==num)
    252                     {
    253                         flag=1;
    254                         stu[j].age=0;
    255                         break;
    256                     }
    257                 }
    258                 if(flag)
    259                     printf("
        删除成功!!
    ");
    260                 else
    261                     printf("
        不存在该学生!!
    ");
    262             }
    263             else if(n==2)
    264             {
    265                 int flag=0;
    266                 char ch[50];
    267                 printf("
        请输入姓名:");
    268                 scanf("%s",ch);
    269                 for(j=0;j<i;j++)
    270                 {
    271                     if(!strcmp(ch,stu[j].name))
    272                     {
    273                         flag=1;
    274                         stu[j].age=0;
    275                         break;
    276                     }
    277                 }
    278                 if(flag)
    279                     printf("
        删除成功!!
    ");
    280                 else
    281                     printf("
        不存在该学生!!
    ");
    282             }
    283     }
    284     if((fp=fopen("d:\program\student.txt","w"))==NULL)
    285     {
    286         printf("
    打开文件失败!!!
    ");
    287         getch();
    288         exit(1);
    289     }
    290     for(j=0;j<i;j++)
    291         if(stu[j].age)
    292            fprintf(fp,"	%d	%s	%s	%d	%s	%s	%s
    ",stu[j].num,stu[j].name,stu[j].sex,stu[j].age,stu[j].address,stu[j].xiyuan,stu[j].zhuanye);
    293     fclose(fp);
    294     system("pause
    ");
    295 }
    296 void search()/*查找学生学籍*/
    297 {
    298     system("cls");
    299     int i=0,j,n;
    300     FILE *fp;
    301     if((fp=fopen("d:\program\student.txt","r"))==NULL)
    302     {
    303         printf("
    打开文件失败!!!
    ");
    304         getch();
    305         exit(1);
    306     }
    307     memset(stu,0,sizeof(stu));
    308     while(fscanf(fp,"%d",&stu[i].num)!=EOF)
    309     {
    310        fscanf(fp,"%s%s%d%s%s%s",stu[i].name,stu[i].sex,&stu[i].age,stu[i].address,stu[i].xiyuan,stu[i].zhuanye);
    311         i++;
    312     }
    313     fclose(fp);
    314     while(1)
    315     {
    316             printf("
             ●●●●●●●●●●●●●●●●●●●●●●●●
    ");
    317             printf("         ●●●●●●●●●●●●●●●●●●●●●●●●
    ");
    318             printf("         ●●●                                    ●●●
    ");
    319             printf("     ●●●        1:按照学号查找学生学籍:    ●●●
    ");
    320             printf("         ●●●                                    ●●●
    ");
    321             printf("         ●●●        2:按照姓名查找学生学籍      ●●●
    ");
    322             printf("         ●●●                                    ●●●
    ");
    323             printf("         ●●●        3:返回主菜单                ●●●
    ");
    324             printf("         ●●●                                    ●●●
    ");
    325             printf("         ●●●●●●●●●●●●●●●●●●●●●●●●
    ");
    326             printf("         ●●●●●●●●●●●●●●●●●●●●●●●●
    ");
    327             printf("
         输入数据,请选择(1—3): ");
    328             scanf("%d",&n);
    329             while(n<1||n>3)
    330             {
    331                 printf("    输入错误,请重新输入!!
    ");
    332                 scanf("%d",&n);
    333             }
    334             if(n==3)  break;
    335             if(n==1)
    336             {
    337                 int num,flag=0;
    338                 printf("
        请输入学号: ");
    339                 scanf("%d",&num);
    340                 for(j=0;j<i;j++)
    341                 {
    342                     if(stu[j].num==num)
    343                     {
    344                         flag=1;
    345                         printf("
    	学号	姓名	性别	年龄	籍贯	系院	专业
    ");
    346                         printf("
    	%d	%s	%s	%d	%s	%s	%s
    ",stu[j].num,stu[j].name,stu[j].sex,stu[j].age,stu[j].address,stu[j].xiyuan,stu[j].zhuanye);
    347                         break;
    348                     }
    349                 }
    350                 if(!flag)
    351                     printf("
       不存在该学生!!
    ");
    352             }
    353             else if(n==2)
    354             {
    355                 int flag=0;
    356                 char ch[50];
    357                 printf("
         请输入姓名:");
    358                 scanf("%s",ch);
    359                 for(j=0;j<i;j++)
    360                 {
    361                     if(!strcmp(ch,stu[j].name))
    362                     {
    363                         flag=1;
    364                         printf("
    	学号	姓名	性别	年龄	籍贯	系院	专业
    ");
    365                         printf("
    	%d	%s	%s	%d	%s	%s	%s
    ",stu[j].num,stu[j].name,stu[j].sex,stu[j].age,stu[j].address,stu[j].xiyuan,stu[j].zhuanye);
    366                         break;
    367                     }
    368                 }
    369                 if(!flag)
    370                     printf("
       不存在该学生!!
    ");
    371             }
    372     }
    373     system("pause
    ");
    374 }
    375 void Browse()/*浏览所有学生学籍*/
    376 {
    377     system("cls");
    378     int i=0,j,n;
    379     FILE *fp;
    380     if((fp=fopen("d:\program\student.txt","r"))==NULL)
    381     {
    382         printf("
    打开文件失败!!!
    ");
    383         getch();
    384         exit(1);
    385     }
    386     memset(stu,0,sizeof(stu));
    387     while(fscanf(fp,"%d",&stu[i].num)!=EOF)
    388     {
    389         fscanf(fp,"%s%s%d%s%s%s",stu[i].name,stu[i].sex,&stu[i].age,stu[i].address,stu[i].xiyuan,stu[i].zhuanye);
    390         i++;
    391     }
    392     fclose(fp);
    393     printf("
    
    	学号	姓名	性别	年龄	籍贯	系院	专业 
    ");
    394     for(j=0;j<i;j++)
    395          printf("	%d	%s	%s	%d	%s	%s	%s
    ",stu[j].num,stu[j].name,stu[j].sex,stu[j].age,stu[j].address,stu[j].xiyuan,stu[j].zhuanye);
    396     printf("
    ");
    397     system("pause
    ");
    398 }
    399 void newboot()/*用户登陆*/
    400 {
    401     system("cls");
    402     char user[50],user1[50],password[50],password1[50];
    403     FILE *fp;
    404     if((fp=fopen("d:\program\password.txt","r"))==NULL)
    405     {
    406 
    407         if((fp=fopen("d:\program\password.txt","w"))==NULL)
    408         {
    409             printf("
    打开文件失败!!!
    ");
    410             getch();
    411             exit(1);
    412         }
    413         printf("
           请注册你的账号密码:
    ");
    414         printf("
                  请输入用户名:  ");scanf("%s",user1);
    415         printf("
                  请输入密码:  ");scanf("%s",password1);
    416         fprintf(fp,"	%s
    ",user1);
    417         fprintf(fp,"	%s",password1);
    418         fclose(fp);
    419         printf("
     ok,注册成功!!
    ");
    420 
    421     }
    422     fp=fopen("d:\program\password.txt","r");
    423     fscanf(fp,"%s",user);
    424     fscanf(fp,"%s",password);
    425     fclose(fp);
    426     printf("
    ");
    427     int k=0;
    428     while(1)
    429     {
    430         k++;
    431         printf("
    ");
    432         printf("		***************************************************
    ");
    433         printf("		*******                                     *******
    ");
    434         printf("		*******      欢迎进入学生学籍管理系统       *******
    ");
    435         printf("		*******                                     *******
    ");
    436         printf("		***************************************************
    ");
    437         if(k>1)  printf("
                     请重新输入账号和密码:
    ");
    438         printf("
                            请输入用户名:  ");scanf("%s",user1);
    439         printf("
                            请输入密码:   ");scanf("%s",password1);
    440         if(!strcmp(user1,user)&&!strcmp(password1,password))
    441             break;
    442         else
    443         {
    444             printf("
                 账号或密码错误!!!
    ");
    445             Sleep(1000);
    446 
    447         }
    448         system("cls");
    449     }
    450 }
    451 void password()/*修改密码*/
    452 {
    453     char user1[50],password1[50];
    454     FILE *fp;
    455     if((fp=fopen("d:\program\password.txt","w"))==NULL)
    456     {
    457         printf("
    打开文件失败!!!
    ");
    458         getch();
    459         exit(1);
    460     }
    461     printf("
            请输入新的用户名:  ");scanf("%s",user1);
    462     printf("
            请输入新的密码:  ");scanf("%s",password1);
    463     fprintf(fp,"%s%c",user1,'
    ');
    464     fprintf(fp,"%s%c",password1,' ');
    465     fclose(fp);
    466     printf("
    密码已修改!!!
    
    ");
    467     system("pause
    ");
    468 }
    469 void exit()
    470 {
    471     exit(0);
    472 }
    473 int main()
    474 {
    475     int n;
    476     system("color 4e");
    477     newboot ();
    478     while(1)
    479     {
    480         menu();
    481         printf("请输入1~8操作命令,选择功能:");
    482         scanf("%d",&n);
    483         while(n>8||n<0)
    484         {
    485             printf("输入错误!!请重新输入n
    ");
    486             scanf("%d",&n);
    487         }
    488         switch(n)
    489         {
    490              case 1 :newbuild();break;
    491              case 2 :add();break;
    492              case 3 :modify();break;
    493              case 4 :del();break;
    494              case 5 :search();break;
    495              case 6 :Browse();break;
    496              case 7 :exit();break;
    497              case 8 :password();break;
    498         }
    499     }
    500 }
    View Code
  • 相关阅读:
    记录操作:增删改查
    mysql表的完整性约束
    mysql支持的数据类型:数值类型、时间类型、字符串类型、ENUM和SET类型
    mysql中的存储引擎
    系统从未分库分表动态切换到分库分表
    为什么要分库分表
    生产环境中的 redis 是怎么部署的
    redis 集群模式
    redis 的持久化方式
    redis 的过期策略都有哪些?内存淘汰机制都有哪些?
  • 原文地址:https://www.cnblogs.com/zsj-93/p/3154595.html
Copyright © 2020-2023  润新知