学生学籍管理系统

  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
原文地址:https://www.cnblogs.com/zsj-93/p/3154595.html