1 //主函数<也是系统入口>
2 #include<stdio.h>
3 #include<windows.h>
4 #include"admin.cpp"
5 #include"administrator.cpp"
6 #include"stud.cpp"
7 #define stWJ "stud.dat"
8 #define m "欢迎进入"asd"学籍管理系统\n"
9 #define m1 "\t\t ━━━━━━━━━━━━━━━━━━━━━━━━━━ \n"
10 #define m2 "\t\t┃ 请选择你的登录身份<0退出> ┃\n"
11 #define m3 "\t\t┃ 1、系统管理员登录 ┃ 2、管理员登录┃ 3、学生登录 ┃\n"
12 #define m4 "请选择:"
13 int main()
14 {
15 system("color A9");
16 if(access("administrator.dat",0)==-1)
17 {
18 FILE *fp;
19 fp=fopen("administrator.dat","wb");
20 printf("此系统第一次使用,请输入系统管理员密码:");
21 char a[20],b[20];
22 while(1)
23 {
24 fflush(stdin);
25 gets(a);
26 printf("请确认密码:");
27 gets(b);
28 if(strcmp(a,b)!=0)
29 {
30 printf("您两次输入的密码不一样,请再次输入!!!\n");
31 getchar();
32 printf("请输入密码:");
33 }
34 else
35 break;
36 }
37 fprintf(fp,"%16s",a);
38 printf("初始管理员密码成功,回车进入系统!!!\n");
39 getchar();
40 fclose(fp);
41 }
42 while(1)
43 {
44 title:system("cls");
45 printf(""m""m1""m2""m1""m3""m1""m4"");
46 char a;
47 fflush(stdin);
48 a=getchar();
49 getchar();
50 if(a=='1')
51 {
52 printf("用户名:administrator\n密码:");
53 FILE *fp;
54 char adin[16],adins[16];
55 fp=fopen("administrator.dat","rb");
56 fscanf(fp,"%16s\n",adins);
57 while(1)
58 {
59 fflush(stdin);
60 gets(adin);
61 if(strcmp(adin,"0")==0)
62 goto title;
63 if(strcmp(adin,adins)==0)
64 {
65 fclose(fp);
66 system("cls");
67 administrator();
68 goto title;
69 }
70 else
71 printf("您输入的密码不正确,请重新输入:");
72 }
73 }
74 else if(a=='2')
75 {
76 fflush(stdin);
77 char name1[30],pass1[20],name[30],pass[20];
78 while(1)
79 {
80 printf("请输入您的管理员用户名:");
81 gets(name1);
82 if(strcmp(name1,"0")==0)
83 goto title;
84 printf("请输入密码:");
85 gets(pass1);
86 FILE *fp;
87 fp=fopen(""adWJ"","rb");
88 int flag=0;
89 while(!feof(fp))
90 {
91 fscanf(fp,"%24s%16s\n",name,pass);
92 if(strcmp(name,name1)==0&&strcmp(pass,pass1)==0)
93 {
94 flag=1;
95 break;
96 }
97 }
98 if(flag)
99 {
100 printf("敲击回车进入管理员系统!!!");
101 fclose(fp);
102 getchar();
103 break;
104 }
105 else
106 {
107 printf("用户名或密码输入错误!!!");
108 fclose(fp);
109 getchar();
110 }
111
112 }
113 system("cls");
114 admin(name1);
115 goto title;
116 }
117 else if(a=='3')
118 {
119 fflush(stdin);
120 char name1[12],pass1[12],name[12],pass[12];
121 while(1)
122 {
123 printf("请输入您的学号:");
124 gets(name1);
125 if(strcmp(name1,"0")==0)
126 goto title;
127 printf("请输入密码:");
128 gets(pass1);
129 FILE *fp;
130 fp=fopen(""stWJ"","rb");
131 int flag=0;
132 while(!feof(fp))
133 {
134 fscanf(fp,"%10s%10s\n",name,pass);
135 if(strcmp(name,name1)==0&&strcmp(pass,pass1)==0)
136 {
137 flag=1;
138 break;
139 }
140 }
141 if(flag)
142 {
143 printf("敲击回车进入学生系统!!!");
144 fclose(fp);
145 getchar();
146 break;
147 }
148 else
149 {
150 printf("用户名或密码输入错误!!!");
151 fclose(fp);
152 getchar();
153 }
154 }
155 system("cls");
156 stud(name1);
157 goto title;
158 }
159 else if(a=='0')
160 break;
161 else
162 {
163 printf("暂无此项功能,请重新选择!!!");
164 getchar();
165 system("cls");
166 }
167 }
168 return 0;
169 }
170 //系统管理员系统
171 #include<stdio.h>
172 #include<windows.h>
173 #include<io.h>
174 #define adWJ "admin.dat"
175 #define ad "\t\t\t\t欢迎进入系统管理员系统!!\n"
176 #define ad1 "\t\t ━━━━━━━━━━━━━━━━━━━━━━━\n"
177 #define ad2 "\t\t┃ 请选择你管理类别<输入0退出> ┃\n"
178 #define ad3 "\t\t┃ 1、查询管理员帐号 ┃ 2、新建管理员帐号 ┃\n"
179 #define ad4 "\t\t┃ 3、删除管理员帐号 ┃ 4、修改系统管理员密码 ┃\n"
180 #define ad5 "\t\t┃ 5、输出管理员列表 ┃\n"
181 #define adp1 "\t\t ━━━━━━━━━━━━━━━━ \n"
182 #define adp2 "\t\t┃ 管理员帐号 ┃\n"
183 #define adp3 "\t\t┃%-4d┃%-24s┃\n"
184 #define adp4 "\t\t ━━━━━━━━━━━━━━━━━━━━━━ \n"
185 #define adp7 "\t\t┃ 管理员帐号和密码 ┃\n"
186 #define adp8 "\t\t┃ 帐号 ┃ 密码 ┃\n"
187 #define adp5 "\t\t┃%-24s┃%-16s┃\n"
188 #define ad6 "请选择:"
189 int administrator()
190 {
191 void adCX();
192 void adXJ();
193 void adSC();
194 void adXG();
195 void adPR();
196 while(1)
197 {
198 fflush(stdin);
199 system("cls");
200 printf(""ad""ad1""ad2""ad1""ad3""ad1""ad4""ad1""ad5""ad1""ad6"");
201 char a;
202 a=getchar();
203 if(a=='1')
204 {
205 system("cls");
206 adCX();
207 }
208 else if(a=='2')
209 {
210 system("cls");
211 adXJ();
212 }
213 else if(a=='3')
214 {
215 system("cls");
216 adSC();
217 }
218 else if(a=='4')
219 {
220 system("cls");
221 adXG();
222 }
223 else if(a=='5')
224 {
225 system("cls");
226 adPR();
227 }
228 else if(a=='0')
229 return 0;
230 else
231 {
232 printf("暂无此项功能,请重新选择!!!");
233 getchar();
234 getchar();
235 }
236 }
237 return 0;
238 }
239 void adCX()//查询有无此账户名
240 {
241 if(access(""adWJ"",0)==-1)
242 {
243 printf("暂时没有账户名!!\n");
244 getchar();
245 getchar();
246 return;
247 }
248 fflush(stdin);
249 char name[24],name1[24],pass1[16];
250 printf("请输入你要查询的管理员注册名:");
251 gets(name);
252 FILE *fp;
253 fp=fopen(""adWJ"","rb");
254 while(!feof(fp))
255 {
256 fscanf(fp,"%24s%16s\n",name1,pass1);
257 if(strcmp(name,name1)==0)
258 {
259 printf(""adp4""adp7""adp4""adp8""adp4""adp5""adp4"",name1,pass1);
260 fclose(fp);
261 getchar();
262 return;
263 }
264 }
265 printf("没有此账户名!!!");
266 fclose(fp);
267 getchar();
268 }
269 int find(char a[])//判定是否同名
270 {
271 FILE *fp;
272 if(access(""adWJ"",0)==-1)
273 return 0;
274 fp=fopen(""adWJ"","rb");
275 char ast[16],password[16];
276 while(!feof(fp))
277 {
278 fscanf(fp,"%24s%16s\n",ast,password);
279 if(strcmp(a,ast)==0)
280 {
281 fclose(fp);
282 return 1;
283 }
284 }
285 fclose(fp);
286 return 0;
287 }
288 void adXJ()//新建管理员帐号
289 {
290 printf("请输入您新建的用户名:");
291 char name[24],password[16],password1[16];
292 while(1)
293 {
294 fflush(stdin);
295 gets(name);
296 if(find(name)==1)
297 printf("此用户名已注册,请重新输入:");
298 else
299 break;
300 }
301 while(1)
302 {
303 printf("请输入密码:");
304 gets(password);
305 printf("请再次输入密码:");
306 gets(password1);
307 if(strcmp(password,password1)!=0)
308 {
309 printf("您两次输入的密码不一样,请再次输入!!!");
310 getchar();
311 }
312 else
313 break;
314 }
315 FILE *fp;
316 fp=fopen(""adWJ"","ab");
317 fprintf(fp,"%24s%16s\n",name,password);
318 fclose(fp);
319 printf("管理员用户创建成功!!!");
320 getchar();
321 return;
322 }
323 void adSC()//删除帐号
324 {
325 if(access(""adWJ"",0)==-1)
326 {
327 printf("暂时没有账户名!!\n");
328 getchar();
329 getchar();
330 return;
331 }
332 fflush(stdin);
333 FILE *fp,*fp1;
334 char name[24],name1[24],pass1[16];
335 fp=fopen(""adWJ"","rb");
336 fp1=fopen("1"adWJ"","wb");
337 int flag1=1;
338 printf("请输入你要删除的管理员用户名:");
339 gets(name);
340 while(!feof(fp))
341 {
342 int flag=1;
343 fscanf(fp,"%24s%16s\n",name1,pass1);
344 if(strcmp(name,name1)==0)
345 {
346 printf("是否删除? 【1.删除 2.不删除】\n");
347 int b;
348 scanf("%d",&b);
349 if(b==2)
350 {
351 fprintf(fp1,"%24s %16s\n",name1,pass1);
352 system("cls");
353 }
354 }
355 else
356 fprintf(fp1,"%24s %16s\n",name1,pass1);
357 }
358 fclose(fp);
359 fclose(fp1);
360 remove(""adWJ"");
361 rename("1"adWJ"",""adWJ"");
362 system("cls");
363 }
364 void adXG()//改密码
365 {
366 char pass[16],pass1[16];
367 while(1)
368 {
369 fflush(stdin);
370 printf("请输入新密码:");
371 gets(pass);
372 printf("请再次输入新密码:");
373 gets(pass1);
374 if(strcmp(pass,pass1)!=0)
375 {
376 printf("两次密码输入不一样,请从新输入!!!");
377 getchar();
378 }
379 else
380 break;
381 }
382 FILE *fp;
383 fp=fopen("administrator.txt","w");
384 fprintf(fp,"%16s\n",pass);
385 printf("您以成功修改系统管理员密码,请牢记!!!\n");
386 getchar();
387 fclose(fp);
388 }
389 void adPR()//输出信息
390 {
391 FILE *fp;
392 char name[24],password[16];
393 int flag=1;
394 if(access(""adWJ"",0)==-1)
395 {
396 printf("暂时没有管理员!!");
397 getchar();
398 getchar();
399 return;
400 }
401 fp=fopen(""adWJ"","rb");
402 while(!feof(fp))
403 {
404 fscanf(fp,"%s%s\n",name,password);
405 if(flag==1)
406 {
407 printf(""adp1""adp2""adp1""adp3""adp1"",flag,name);
408 flag++;
409 }
410 else
411 {
412 printf(""adp3""adp1"",flag,name);
413 flag++;
414 }
415 }
416 if(flag==1)
417 printf("暂时没有管理员帐号!!!\n");
418 fclose(fp);
419 getchar();
420 getchar();
421 system("cls");
422 }
423
424 //管理员系统
425 #include<stdio.h>
426 #include<windows.h>
427 #include<io.h>
428 #define stWJ "stud.dat"
429 #define adWJ "admin.dat"
430 #define WJ "learn.txt"
431 #define as "管理员\n"
432 #define asd "\t\t\t南阳理工"
433 #define t1 "\t\t ━━━━━━━━━━━━━━━━━━━━━━ \n"
434 #define t2 "\t\t┃ 学籍录入 ┃ 学籍输出 ┃ 学籍查询 ┃\n"
435 #define t3 "\t\t┃ 1 ┃ 2 ┃ 3 ┃\n"
436 #define t4 "\t\t┃ 修改学籍 ┃ 删除学籍 ┃ 修改密码 ┃\n"
437 #define t5 "\t\t┃ 4 ┃ 5 ┃ 6 ┃\n"
438 #define t6 "\t\t┃ 初始化密码 ┃ 一键初始密码 ┃ 退出 ┃\n"
439 #define t7 "\t\t┃ 7 ┃ 8 ┃ 0 ┃\n"
440 #define p1 " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ \n"
441 #define p2 "┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 系别 ┃ 班级 ┃ 学号 ┃ 籍贯 ┃\n"
442 #define p3 "┃%-8s┃ %2s ┃ %2d ┃%-10s┃%10s┃%10s┃%12s┃\n"
443 #define c1 " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ \n"
444 #define c2 "┃ 请选择你查询的分类 (0返回) ┃\n"
445 #define c3 "┃ 1.姓名 ┃2.性别┃3.年龄┃ 4.系别 ┃ 5.班级 ┃ 6.学号 ┃ 7.籍贯 ┃\n"
446 #define x2 "┃ 请选择你修改对象关键字的分类 (0返回) ┃\n"
447 #define d1 "┃ 请选择你删除对象关键字的分类 (0返回) ┃\n"
448 int admin(char lkj[])
449 {
450 void LR();
451 int CX();
452 void XG();
453 void SC();
454 void PR();
455 void XGMM(char a[]);
456 void CSadMM();
457 void YJadMM();
458 system("color A9");
459 while(1)
460 {
461 printf(""as""asd"学籍管理系统\n");
462 putchar('\n');
463 printf(""t1""t2""t1""t3""t1""t4""t1""t5""t1""t6""t1""t7""t1"");
464 char a;
465 fflush(stdin);
466 printf("请选择:");
467 a=getchar();
468 switch(a)
469 {
470 case '1': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); LR();break;
471 case '2': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); PR();break;
472 case '3': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); CX();break;
473 case '4': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); XG();break;
474 case '5': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); SC();break;
475 case '6': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); XGMM(lkj);break;
476 case '7': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); CSadMM();break;
477 case '8': system("cls"); printf(""asd"学籍管理系统\n"); putchar('\n'); YJadMM();break;
478 case '0': return 0;
479 default: printf("暂无此项功能,请重新选择!!!"); getchar(); system("cls");
480 }
481 }
482 return 0;
483 }
484 void LR()//录入信息
485 {
486 FILE *fp,*fp1;
487 char name[20],sex[5],scl[100],cl[20],stunum[20],phnum[20];
488 int age;
489 if(access(""WJ"",0)==-1)
490 fp=fopen(""WJ"","w");
491 else
492 fp=fopen(""WJ"","a");
493 if(access(""stWJ"",0)==-1)
494 fp1=fopen(""stWJ"","wb");
495 else
496 fp1=fopen(""stWJ"","ab");
497 printf("请输入数据(输入0为录入完毕)\n");
498 while(1)
499 {
500 printf("请输入姓名:");
501 fflush(stdin);
502 gets(name);
503 if(name[0]=='0')
504 {
505 fclose(fp);
506 system("cls");
507 break;
508 }
509 printf("请选择性别 [1.男 2.女]:");
510 int c;
511 scanf("%d",&c);
512 if(c==1)
513 strcpy(sex,"男");
514 else
515 strcpy(sex,"女");
516 printf("请输入年龄:");
517 scanf("%d",&age);
518 getchar();
519 printf("请输入系别:");
520 gets(scl);
521 printf("请输入班级:");
522 gets(cl);
523 printf("请输入学号:");
524 gets(stunum);
525 printf("请输入籍贯:");
526 gets(phnum);
527 fprintf(fp,"%8s %2s %2d %10s %10s %10s %12s\n",name,sex,age,scl,cl,stunum,phnum);
528 fprintf(fp1,"%10s %10s\n",stunum,stunum);
529 }
530 fclose(fp);
531 fclose(fp1);
532 }
533 void PR()//输出信息
534 {
535 FILE *fp;
536 fp=fopen(""WJ"","r");
537 char name[20],sex[5],scl[100],cl[20],stunum[20],phnum[20];
538 int age,flag=1;
539 if(access(""WJ"",0)==-1)
540 {
541 printf("暂时没有数据!!!");
542 getchar();
543 getchar();
544 system("cls");
545 return;
546 }
547 while(!feof(fp))
548 {
549 fscanf(fp,"%8s%2s%2d%10s%10s%10s%12s\n",name,sex,&age,scl,cl,stunum,phnum);
550 if(flag==1)
551 {
552 printf(""p1""p2""p1""p3"",name,sex,age,scl,cl,stunum,phnum);
553 flag=0;
554 }
555 else
556 printf(""p1""p3"",name,sex,age,scl,cl,stunum,phnum);
557 }
558 if(!flag)
559 printf(""p1"");
560 else
561 printf("库中没有数据!!\n");
562 fclose(fp);
563 getchar();
564 getchar();
565 system("cls");
566 }
567 int CX()//查询信息
568 {
569 FILE *fp;
570 char name1[20],sex1[5],scl1[100],cl1[20],stunum1[20],phnum1[20];
571 int age1;
572 char name[20],sex[5],scl[100],cl[20],stunum[20],phnum[20];
573 int age;
574 fp=fopen(""WJ"","rb");
575 printf(""c1""c2""c1""c3""c1"");
576 int a;
577 scanf("%d",&a);
578 getchar();
579 switch(a)
580 {
581 case 1: printf("请输入姓名:"); scanf("%s",name1); break;
582 case 2: printf("请输入性别:");scanf("%s",sex1); break;
583 case 3: printf("请输入年龄:");scanf("%d",&age1); break;
584 case 4: printf("请输入系别:");scanf("%s",scl1); break;
585 case 5: printf("请输入班级:");scanf("%s",cl1); break;
586 case 6: printf("请输入学号:");scanf("%s",stunum1); break;
587 case 7: printf("请输入籍贯:");scanf("%s",phnum1); break;
588 case 0: system("cls"); return 0;
589 }
590 int flag1=1;
591 while(!feof(fp))
592 {
593 int flag=1;
594 fscanf(fp,"%8s%2s%2d%10s%10s%10s%12s\n",name,sex,&age,scl,cl,stunum,phnum);
595 switch(a)
596 {
597 case 1: if(!strcmp(name,name1)) flag=0; break;
598 case 2: if(!strcmp(sex,sex1)) flag=0;break;
599 case 3: if(age==age1) flag=0; break;
600 case 4: if(!strcmp(scl,scl1)) flag=0; break;
601 case 5: if(!strcmp(cl,cl1)) flag=0; break;
602 case 6: if(!strcmp(stunum,stunum1)) flag=0; break;
603 case 7: if(!strcmp(phnum,phnum1)) flag=0; break;
604 }
605 if(flag==0)
606 {
607 if(flag1==1)
608 {
609 printf(""p1""p2""p1""p3"",name,sex,age,scl,cl,stunum,phnum);
610 flag1++;
611 }
612 else
613 printf(""p1""p3"",name,sex,age,scl,cl,stunum,phnum);
614 }
615 }
616 if(flag1>1)
617 printf(""p1"");
618 else
619 printf("查询不到此人的信息!!\n");
620 fclose(fp);
621 getchar();
622 getchar();
623 system("cls");
624 return 0;
625 }
626 int XG()//修改信息
627 {
628 FILE *fp,*fp1;
629 char name1[20],sex1[5],scl1[100],cl1[20],stunum1[20],phnum1[20];
630 int age1;
631 char name[20],sex[5],scl[100],cl[20],stunum[20],phnum[20];
632 int age;
633 fp=fopen(""WJ"","r");
634 fp1=fopen("1"WJ"","w");
635 printf(""c1""x2""c1""c3""c1"");
636 int a;
637 scanf("%d",&a);
638 getchar();
639 switch(a)
640 {
641 case 1: printf("请输入姓名:"); scanf("%s",name1); break;
642 case 2: printf("请输入性别:");scanf("%s",sex1); break;
643 case 3: printf("请输入年龄:");scanf("%d",&age1); break;
644 case 4: printf("请输入系别:");scanf("%s",scl1); break;
645 case 5: printf("请输入班级:");scanf("%s",cl1); break;
646 case 6: printf("请输入学号:");scanf("%s",stunum1); break;
647 case 7: printf("请输入籍贯:");scanf("%s",phnum1); break;
648 case 0: system("cls"); return 0;
649 }
650 int flag1=1;
651 while(!feof(fp))
652 {
653 int flag=1;
654 fscanf(fp,"%8s%2s%2d%10s%10s%10s%12s\n",name,sex,&age,scl,cl,stunum,phnum);
655 switch(a)
656 {
657 case 1: if(!strcmp(name,name1)) flag=0; break;
658 case 2: if(!strcmp(sex,sex1)) flag=0;break;
659 case 3: if(age==age1) flag=0; break;
660 case 4: if(!strcmp(scl,scl1)) flag=0; break;
661 case 5: if(!strcmp(cl,cl1)) flag=0; break;
662 case 6: if(!strcmp(stunum,stunum1)) flag=0; break;
663 case 7: if(!strcmp(phnum,phnum1)) flag=0; break;
664 }
665 if(flag==0)
666 {
667 printf(""p1""p2""p1""p3""p1"",name,sex,age,scl,cl,stunum,phnum);
668 printf("是否修改? 【1.修改 2.不修改】\n");
669 int b;
670 scanf("%d",&b);
671 if(b==1)
672 {
673 printf("请输入姓名:");
674 fflush(stdin);
675 gets(name1);
676 printf("请选择性别 [1.男 2.女]:");
677 int c;
678 scanf("%d",&c);
679 if(c==1)
680 strcpy(sex1,"男");
681 else
682 strcpy(sex1,"女");
683 printf("请输入年龄:");
684 scanf("%d",&age1);
685 getchar();
686 printf("请输入系别:");
687 gets(scl1);
688 printf("请输入班级:");
689 gets(cl1);
690 printf("请输入学号:");
691 gets(stunum1);
692 printf("请输入籍贯:");
693 gets(phnum1);
694 printf("%8s %2s %2d %10s %10s %10s %12s\n",name1,sex1,age1,scl1,cl1,stunum1,phnum1);
695 fprintf(fp1,"%8s %2s %2d %10s %10s %10s %12s\n",name1,sex1,age1,scl1,cl1,stunum1,phnum1);
696 getchar();
697 getchar();
698 system("cls");
699 }
700 else
701 {
702 fprintf(fp1,"%8s %2s %2d %10s %10s %10s %12s\n",name,sex,age,scl,cl,stunum,phnum);
703 system("cls");
704 }
705 }
706 else
707 fprintf(fp1,"%8s %2s %2d %10s %10s %10s %12s\n",name,sex,age,scl,cl,stunum,phnum);
708 }
709 fclose(fp);
710 fclose(fp1);
711 remove(""WJ"");
712 rename("1"WJ"",""WJ"");
713 system("cls");
714 return 0;
715 }
716 void SC()//删除信息
717 {
718 FILE *fp,*fp1,*ft,*ft1;
719 char name1[20],sex1[5],scl1[100],cl1[20],stunum1[20],phnum1[20];
720 int age1;
721 char name[20],sex[5],scl[100],cl[20],stunum[20],phnum[20];
722 int age;
723 fp=fopen(""WJ"","r");
724 fp1=fopen("1"WJ"","w");
725 ft=fopen(""stWJ"","rb");
726 ft1=fopen("1"stWJ"","wb");
727 printf(""c1""x2""c1""c3""c1"");
728 int a;
729 scanf("%d",&a);
730 getchar();
731 switch(a)
732 {
733 case 1: printf("请输入姓名:"); scanf("%s",name1); break;
734 case 2: printf("请输入性别:");scanf("%s",sex1); break;
735 case 3: printf("请输入年龄:");scanf("%d",&age1); break;
736 case 4: printf("请输入系别:");scanf("%s",scl1); break;
737 case 5: printf("请输入班级:");scanf("%s",cl1); break;
738 case 6: printf("请输入学号:");scanf("%s",stunum1); break;
739 case 7: printf("请输入籍贯:");scanf("%s",phnum1); break;
740 case 0: system("cls"); return;
741 }
742 int flag1=1;
743 while(!feof(fp))
744 {
745 int flag=1;
746 fscanf(fp,"%8s%2s%2d%10s%10s%10s%12s\n",name,sex,&age,scl,cl,stunum,phnum);
747 switch(a)
748 {
749 case 1: if(!strcmp(name,name1)) flag=0; break;
750 case 2: if(!strcmp(sex,sex1)) flag=0;break;
751 case 3: if(age==age1) flag=0; break;
752 case 4: if(!strcmp(scl,scl1)) flag=0; break;
753 case 5: if(!strcmp(cl,cl1)) flag=0; break;
754 case 6: if(!strcmp(stunum,stunum1)) flag=0; break;
755 case 7: if(!strcmp(phnum,phnum1)) flag=0; break;
756 }
757 if(flag==0)
758 {
759 printf(""p1""p2""p1""p3""p1"",name,sex,age,scl,cl,stunum,phnum);
760 printf("是否删除? 【1.删除 2.不删除】\n");
761 int b;
762 scanf("%d",&b);
763 if(b==2)
764 {
765 fprintf(fp1,"%8s %2s %2d %10s %10s %10s %12s\n",name,sex,age,scl,cl,stunum,phnum);
766 fprintf(ft1,"%10s %10s\n",stunum,stunum);
767 system("cls");
768 }
769 }
770 else
771 {
772 fprintf(fp1,"%8s %2s %2d %10s %10s %10s %12s\n",name,sex,age,scl,cl,stunum,phnum);
773 fprintf(ft1,"%10s %10s\n",stunum,stunum);
774 }
775 }
776 fclose(fp);
777 fclose(fp1);
778 fclose(ft);
779 fclose(ft1);
780 remove(""WJ"");
781 rename("1"WJ"",""WJ"");
782 remove(""stWJ"");
783 rename("1"stWJ"",""stWJ"");
784 system("cls");
785 }
786 void XGMM(char a[])//修改密码
787 {
788 char pass[20],pass1[20],pass2[20],name[30];
789 while(1)
790 {
791 fflush(stdin);
792 printf("请输入新密码:");
793 gets(pass1);
794 printf("请再次输入新密码:");
795 gets(pass2);
796 if(strcmp(pass2,pass1)!=0)
797 {
798 printf("两次密码输入不一样,请从新输入!!!");
799 getchar();
800 }
801 else
802 break;
803 }
804 FILE *fp,*fp1;
805 fp=fopen(""adWJ"","rb");
806 fp1=fopen("1"adWJ"","wb");
807 while(!feof(fp))
808 {
809 fscanf(fp,"%24s%16s\n",name,pass);
810 if(strcmp(name,a)==0)
811 fprintf(fp1,"%24s %16s\n",name,pass1);
812 else
813 fprintf(fp1,"%24s %16s\n",name,pass);
814 }
815 fclose(fp);
816 fclose(fp1);
817 int o=remove(""adWJ"");
818 int p=rename("1"adWJ"",""adWJ"");
819 if(o==0&&p==0)
820 printf("您已成功修改密码,请牢记!!!\n");
821 else
822 printf("密码修改失败!!!\n");
823 getchar();
824 system("cls");
825 }
826 void CSadMM()//初始化密码
827 {
828 fflush(stdin);
829 printf("请输入要初始化的学生学号:");
830 char name[12],name1[12],pass1[12];
831 gets(name);
832 FILE *fp,*fp1;
833 fp=fopen(""stWJ"","rb");
834 fp1=fopen("1"stWJ"","wb");
835 while(!feof(fp))
836 {
837 fscanf(fp,"%10s%10s\n",name1,pass1);
838 if(strcmp(name,name1)==0)
839 fprintf(fp1,"%10s %10s\n",name,name);
840 else
841 fprintf(fp1,"%10s %10s\n",name1,pass1);
842 }
843 fclose(fp);
844 fclose(fp1);
845 int o=remove(""stWJ"");
846 int p=rename("1"stWJ"",""stWJ"");
847 if(o==0&&p==0)
848 printf("您已成功初始化密码,初始密码为学生学号,请牢记!!!\n");
849 else
850 printf("密码初始化失败!!!\n");
851 getchar();
852 system("cls");
853 }
854 void YJadMM()//一键初始化密码
855 {
856 fflush(stdin);
857 printf("确认初始化全部学生的密码吗?<Y 确认 N 取消>\n");
858 char a;
859 scanf("%c",&a);
860 if(a=='N'||a=='n')
861 return;
862 char name1[12],pass1[12];
863 FILE *fp,*fp1;
864 fp=fopen(""stWJ"","rb");
865 fp1=fopen("1"stWJ"","wb");
866 while(!feof(fp))
867 {
868 fscanf(fp,"%10s%10s\n",name1,pass1);
869 fprintf(fp1,"%10s %10s\n",name1,name1);
870 }
871 fclose(fp);
872 fclose(fp1);
873 int o=remove(""stWJ"");
874 int p=rename("1"stWJ"",""stWJ"");
875 if(o==0&&p==0)
876 printf("您已成功一键初始化密码,初始密码为学生学号,请牢记!!!\n");
877 else
878 printf("一键初始化失败!!!\n");
879 getchar();
880 system("cls");
881 }
882 //学生登录系统
883 #include<stdio.h>
884 #include<windows.h>
885 #include<io.h>
886 #define stWJ "stud.dat"
887 #define WJ "learn.txt"
888 #define s0 "学生\n"
889 #define s1 "\t\t ━━━━━━━━━━━━━━━━━━━━ \n"
890 #define s2 "\t\t┃ 学生学籍查询系统<0退出> ┃\n"
891 #define s3 "\t\t┃ 查看个人信息 ┃ 修改密码 ┃\n"
892 #define s4 "\t\t┃ 1 ┃ 2 ┃\n"
893 #define s5 "请选择:"
894 #define p1 " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ \n"
895 #define p2 "┃ 姓名 ┃ 性别 ┃ 年龄 ┃ 系别 ┃ 班级 ┃ 学号 ┃ 籍贯 ┃\n"
896 #define p3 "┃%-8s┃ %2s ┃ %2d ┃%-10s┃%10s┃%10s┃%12s┃\n"
897 int stud(char am[])
898 {
899 void CK(char a[]);
900 void MM(char a[]);
901 while(1)
902 {
903 printf(""s0""s1""s2""s1""s3""s1""s4""s1""s5"");
904 int a;
905 scanf("%d",&a);
906 if(a==1)
907 {
908 system("cls");
909 CK(am);
910 }
911 else if(a==2)
912 {
913 system("cls");
914 MM(am);
915 }
916 else if(a==0)
917 {
918 return 0;
919 }
920 else
921 {
922 printf("暂无此项功能,请重新选择!!!");
923 getchar();
924 }
925 }
926 return 0;
927 }
928 void CK(char a[])
929 {
930 puts(a);
931 FILE *fp;
932 char name[20],sex[5],scl[100],cl[20],stunum[20],phnum[20];
933 int age;
934 fp=fopen(""WJ"","r");
935 while(!feof(fp))
936 {
937 fscanf(fp,"%8s%2s%2d%10s%10s%10s%12s\n",name,sex,&age,scl,cl,stunum,phnum);
938 if(!strcmp(stunum,a))
939 printf(""p1""p2""p1""p3""p1"",name,sex,age,scl,cl,stunum,phnum);
940 }
941 getchar();
942 getchar();
943 fclose(fp);
944 system("cls");
945 return;
946 }
947 void MM(char a[])
948 {
949 char pass[20],pass1[20],pass2[20],name[30];
950 while(1)
951 {
952 fflush(stdin);
953 printf("请输入新密码:");
954 gets(pass1);
955 printf("请再次输入新密码:");
956 gets(pass2);
957 if(strcmp(pass2,pass1)!=0)
958 {
959 printf("两次密码输入不一样,请从新输入!!!");
960 getchar();
961 }
962 else
963 break;
964 }
965 FILE *fp,*fp1;
966 fp=fopen(""stWJ"","rb");
967 fp1=fopen("1"stWJ"","wb");
968 while(!feof(fp))
969 {
970 fscanf(fp,"%10s%10s\n",name,pass);
971 if(strcmp(name,a)==0)
972 fprintf(fp1,"%10s %10s\n",name,pass1);
973 else
974 fprintf(fp1,"%10s %10s\n",name,pass);
975 }
976 fclose(fp);
977 fclose(fp1);
978 int o=remove(""stWJ"");
979 int p=rename("1"stWJ"",""stWJ"");
980 if(o==0&&p==0)
981 printf("您已成功修改密码,请牢记!!!\n");
982 else
983 printf("密码修改失败!!!\n");
984 getchar();
985 system("cls");
986 }
987 //一键恢复系统<可以删除以前所有的文件,初始化系统>
988 #include<stdio.h>
989 #include<io.h>
990 #define stWJ "stud.dat"
991 #define adWJ "admin.dat"
992 #define WJ "learn.txt"
993 #define adminWJ "administrator.dat"
994 int main()
995 {
996 if(access(""stWJ"",0)!=-1)
997 remove(""stWJ"");
998 if(access(""adWJ"",0)!=-1)
999 remove(""adWJ"");
1000 if(access(""WJ"",0)!=-1)
1001 remove(""WJ"");
1002 if(access(""adminWJ"",0)!=-1)
1003 remove(""adminWJ"");
1004 printf("学籍管理系统一键还原完毕!!!\n");
1005 getchar();
1006 return 0;
1007 }