《c语言学生信息管理系统(共26页).doc》由会员分享,可在线阅读,更多相关《c语言学生信息管理系统(共26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上#include#include#include#include#define N 10000 void srh_stu();void sort();struct student char num10;/学号 char name10;/姓名 char code10;/登录密码 char sex3;/性别 char depart10;/系部 char addr10;/家庭住址 char tel15;/电话 int age;/年龄 int elec;/选修课 int requ;/必修课 int sum; /总成绩 stuN,ts;struct admin/管理员结构体 c
2、har num10;/管理员编号 char code10;/密码admN,ta;struct teacher/教师结构体 char num10;/教师编号 char code10;/密码thrN,tt;int ID;/登录号int i,j;int len=0;/学生人数 int lent=0;/老师人数int lena=0;/管理员人数void save()/保存信息 FILE *fp; if(fp=fopen(student.txt,w)=NULL)/打开文件 printf(文件打开失败!); exit(0); for(i=0;ilen;i+)/写入文件 fprintf(fp,%st%st%
3、st%st%st%st%st%dt%dt%dt%dtn,stui.num,stui.name,stui.code,stui.sex,stui.depart,stui.addr,stui.tel,stui.age,stui.elec,stui.requ,stui.sum ); fclose(fp);/关闭文件if(fp=fopen(teacher.txt,w)=NULL)/打开教师文件 printf(文件打开失败!); exit(0); for(i=0;ilent;i+)/写入文件 fprintf(fp,%st%stn,thri.num,thri.code); fclose(fp);/关闭文件i
4、f(fp=fopen(admin.txt,w)=NULL)/打开管理员文件 printf(文件打开失败!); exit(0); for(i=0;ilena;i+)/写入文件 fprintf(fp,%st%stn,admi.num,admi.code); fclose(fp);/关闭文件 void load()/读取信息 FILE *fp; if(fp=fopen(student.txt,r)=NULL)/打开文件 fopen(student.txt,w);/创建文件 goto loop1; i=0; while(!feof(fp)/读取文件 fscanf(fp,%s%s%s%s%s%s%s%d
5、%d%d%d,&stui.num,&stui.name,&stui.code,&stui.sex,&stui.depart,&stui.addr,&stui.tel,&stui.age,&stui.elec,&stui.requ,&stui.sum ); if(!feof(fp) i+; len=i;/数量 fclose(fp);/关闭文件loop1: if(fp=fopen(teacher.txt,r)=NULL)/打开文件 fopen(teacher.txt,w);/创建文件 goto loop2; i=0; while(!feof(fp)/读取文件 fscanf(fp, %s%s,&th
6、ri.num,&thri.code); if(!feof(fp) i+; lent=i;/教师数量 fclose(fp);/关闭文件loop2: if(fp=fopen(admin.txt,r)=NULL)/打开文件 fopen(admin.txt,w);/创建文件 strcpy(adm0.num,123);/初始化初始账号 strcpy(adm0.code,123);/初始化初始密码 lena=1; save();/保存 return; i=0; while(!feof(fp)/读取文件 fscanf(fp, %s%s,&admi.num,&admi.code); if(!feof(fp)
7、i+; lena=i;/管理员数量 fclose(fp);/关闭文件 char menu_login()/登陆菜单char ch; system(cls);/清屏 printf(nnnn); printf(-中国海洋大学青岛学院-n);printf(n); printf( -欢迎使用-n); printf(n); printf(-学生信息管理系统-n); printf(nn); printf(ttt|-Login-|n); printf(ttt|t 1. 帮助【必看】 |n); printf(ttt|t 2. 学生登陆 |n); printf(ttt|t 3. 教师登录 |n); printf
8、(ttt|t 4. 管理员登录 |n); printf(ttt|t 5. 退出 |n); printf(nn); printf(-n); printf(-n); printf(ttchoose(1-5):);printf( 请选择:); ch=getchar();getchar();/消除缓存中的换行符return ch;void help() system(cls); system(COLOR 2f); printf(-中国海洋大学青岛学院-n); printf( -欢迎使用-n); printf(-学生信息管理系统-n); printf(n 尊敬的用户您好!); printf(n =n|
9、|); printf(n | 1.欢迎进入帮助系统! |n| |); printf(n | |n| |); printf(n | 2.请按照菜单提示进入数字代号! |n| |); printf(n | 3.教师和学生信息由管理员写入! |n| |); printf(n | 4.成绩为-1表示尚未录入成绩! |n| |); printf(n | 5.初始管理员初始登录账号:123 密码:123! |n| |); printf(n | 6.谢谢您的使用! |n| |); printf(n | 7.教师和学生首次登陆账号和密码由管理员给定 |n| |); printf(n =n ); printf(
10、-n); printf(-n); printf(请按任意键进入登录界面:.); getch();void exit1() system(cls);/清屏system(COLOR 3f);printf(-中国海洋大学青岛学院-n);printf(n);printf( -【学生信息管理系统】-n);printf(n);printf(n);printf( 制作人: 【王汝通】 n);printf(=n);printf( Bye-Byen);printf(n);printf( n);printf(n);printf( n);printf( n);printf(n);printf( n);printf(
11、 海 10级 n);printf( 软 n);printf( 大 件 n);printf( 工 n);printf( 青 程 n);printf( 一 n);printf( 院 班 n);printf( n);printf( 谢谢使用n);exit(0);char menu_stu()/学生菜单 char ch; system(cls);/清屏 printf(nnnnn); printf(-中国海洋大学青岛学院-n); printf( -欢迎使用-n); printf(-学生信息管理系统-n); printf(tt|-STUDENT-|n); printf(tt| 1.个人信息查询 |n);
12、printf(tt| 2.修改密码 |n); printf(tt| 3.退出 |n); printf(tt|-|n); printf(nn); printf(-n); printf(-n); printf(tttchoose(1-3):); ch=getchar(); getchar();/消除回车符 return ch;void srh_gr()/个人信息查询 system(cls);/清屏 printf(我(%s)的信息如下:n,stui.name); printf(_n); printf(学号 姓名 年龄 性别 系部 住址 电话 选修 专业 总分nn); printf(%-8s%-8s%
13、-6d%-6s%-8s%-8s%-8s%-6d%-6d%dn,stuID.num,stuID.name,stuID.age,stuID.sex,stuID.depart,stuID.addr,stuID.tel,stuID.elec,stuID.requ,stuID.sum); printf(_n); printf(查询完毕,任意键返回.); getch();void mod_code_stu()/修改密码char cd010,cd110,cd210; system(cls);/清屏printf(请输入原密码:);gets(cd0);if(strcmp(cd0,stuID.code)=0)/与
14、原密码相同 while(1) printf(请输入新密码:); gets(cd1); printf(请再次输入新密码:); gets(cd2); if(strcmp(cd1,cd2)=0)/两次密码相同 strcpy(stuID.code,cd1);/修改密码 save();/保存 printf(修改成功,任意键返回。); getch(); return; else/两次输入密码不同 printf(两次输入密码不同,请重来。n); system(cls);/清屏 else/与原密码不同 printf(对不起!您输入的密码错误,任意键返回。); getch();void login_stu()/
15、学生登录char num10,code10; system(cls);/清屏 printf(nnn 请输入学号: ); gets(num); for(i=0;ilen;i+) if(strcmp(num,stui.num)=0)/比较学号是否相同 break; if(i=len) printf(对不起!没有这个学号。任意键返回。); getch(); ID=-1;/-1表示登录失败 return;else printf( 请输入密码: ); gets(code); while(strcmp(code,stui.code)!=0)/密码不同 printf( 密码错误,请重新输入:); gets(
16、code); ID=i;/记住登录号void students()/学生系统 char ch; login_stu();/登录 if(ID=-1) return;/登录失败,返回 while(1) ch=menu_stu();/学生菜单 switch(ch) case 1: srh_gr(); break;/个人信息查询 case 2: mod_code_stu(); break;/修改密码 case 3: return;/返回上一级 void login_thr()/教师登录char num10,code10; system(cls);/清屏 printf(nnn 请输入教师编号: ); g
17、ets(num); for(i=0;ilent;i+) if(strcmp(num,thri.num)=0)/比较编号是否相同 break; if(i=lent) printf(对不起!没有这个管理员编号。任意键返回。); getch(); ID=-1;/-1表示登录失败 return;else printf( 请输入密码: ); gets(code); while(strcmp(code,thri.code)!=0)/密码不同 printf( 密码错误,请重新输入:); gets(code); ID=i;/记住登录号char menu_thr()/教师菜单 char ch; system(c
18、ls); printf(nnnnn); printf(-中国海洋大学青岛学院-n); printf( -欢迎使用-n); printf(-学生信息管理系统-n); printf(tt|-TEACHER-|n); printf(tt|t 1.密码修改 |n); printf(tt|t 2.学生成绩的录入 |n); printf(tt|t 3.学生信息的查询 |n); printf(tt|t 4.学生成绩的显示(排序) |n); printf(tt|t 5.退出 |n); printf(tt|-|n); printf(nn); printf(-n); printf(-n); printf(tttc
19、hoose(1-5):); ch=getchar();/获取选择 getchar();/消除回车符 return ch;/*void modefy() /成绩修改 char num10; system(cls);/清屏 printf(请输入要修改成绩的学生学号:); gets(num); for(i=0;ilen;i+) if(strcmp(num,stui.num)=0)/学号是否相同 break;/相同 结束查找if(i=len) printf(对不起!没有这个学号记录,任意键返回。); getch(); return; printf(请输入专业课成绩:);scanf(%d,&stui.r
20、equ);printf(请输入选修课成绩:);scanf(%d,&stui.elec);getchar();/消除回车stui.sum=stui.requ+stui.elec;/总成绩save();/保存printf(成绩修改完成,任意键返回。);getch(); */void mod_code_thr() /密码修改 char cd010,cd110,cd210; system(cls);/清屏printf(请输入原密码:);gets(cd0);if(strcmp(cd0,thrID.code)=0)/与原密码相同 while(1) printf(请输入新密码:); gets(cd1); p
21、rintf(请再次输入新密码:); gets(cd2); if(strcmp(cd1,cd2)=0)/两次密码相同 strcpy(thrID.code,cd1);/修改密码 save();/保存 printf(修改成功,任意键返回。); getch(); return; else/两次输入密码不同 printf(两次输入密码不同,请重来。n); system(cls);/清屏 else/与原密码不同 printf(对不起!您输入的密码错误,任意键返回。); getch();void input() /成绩录入 char num12; system(cls);/清屏 printf(请输入要录入成
22、绩的学生学号:); gets(num); for(i=0;ilen;i+) if(strcmp(num,stui.num)=0)/学号是否相同 break;/相同 结束查找if(i=len) printf(对不起!没有这个学号记录,任意键返回。); getch(); return; printf(请输入专业课成绩:);scanf(%d,&stui.requ);printf(请输入选修课成绩:);scanf(%d,&stui.elec);getchar();/消除回车stui.sum=stui.requ+stui.elec;/总成绩save();/保存printf(成绩录入完成,任意键返回。);
23、getch(); void teacher() /老师系统 char ch; login_thr();/登录 if(ID=-1) return;/登录失败,返回 while(1) ch=menu_thr();/老师生菜单 switch(ch) case 1: mod_code_thr(); break;/密码修改 case 2: input(); break;/成绩录入 case 3: srh_stu(); break;/学生信息的查询 case 4: sort(); break;/学生成绩的排序 /case 5: modefy();/学生成绩的修改 case 5:return;/返回上一级
24、void login_adm()/管理员登录char num10,code10; system(cls);/清屏 printf(nnn 请输入管理员编号: ); gets(num); for(i=0;ilena;i+) if(strcmp(num,admi.num)=0)/比较编号是否相同 break; if(i=lena) printf(对不起!没有这个管理员编号。任意键返回。); getch(); ID=-1;/-1表示登录失败 return;else printf( 请输入密码: ); gets(code); while(strcmp(code,admi.code)!=0)/密码不同 p
25、rintf( 密码错误,请重新输入:); gets(code); ID=i;/记住登录号char menu_adm()/管理员菜单 char ch; system(cls); printf(nnnnn); printf(-中国海洋大学青岛学院-n); printf( -欢迎使用-n); printf(-学生信息管理系统-n); printf(n); printf(ttt|-COMMANDER-|n); printf(ttt| 1.登陆密码的修改 |n); printf(ttt| 2.显示学生信息 |n); printf(ttt| 3.账户注册管理 |n); printf(ttt| 4.账户注销管理 |n); printf(ttt| 5.学生信息查询 |n); printf(ttt| 6.学生信息修改 |n); printf(ttt| 7.退出 |n); printf(ttt|-