c语言学生信息管理系统

上传人:无*** 文档编号:51278831 上传时间:2022-01-25 格式:DOC 页数:26 大小:136.50KB
收藏 版权申诉 举报 下载
c语言学生信息管理系统_第1页
第1页 / 共26页
c语言学生信息管理系统_第2页
第2页 / 共26页
c语言学生信息管理系统_第3页
第3页 / 共26页
资源描述:

《c语言学生信息管理系统》由会员分享,可在线阅读,更多相关《c语言学生信息管理系统(26页珍藏版)》请在装配图网上搜索。

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/管理员结构体 char num10;/管理

2、员编号 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%st%st%st%st%s

3、t%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);/关闭文件if(fp=fopen(ad

4、min.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%d%d%d,&stui.

5、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,&thri.num,&thri.

6、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) i+; lena=i;/管

7、理员数量 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(ttt|t 4. 管理员

8、登录 |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| |); printf(n

9、| 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(-n); printf(-

10、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( 海 10级 n);pri

11、ntf( 软 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); printf(tt| 2.

12、修改密码 |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%-6d%-6s%-8s%-

13、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)/与原密码相同 while(1

14、) 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()/学生登录char num1

15、0,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(code); ID=i;/

16、记住登录号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 请输入教师编号: ); gets(num); for

17、(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(cls); printf(n

18、nnnn); 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(tttchoose(1-5):);

19、 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.requ);printf(请

20、输入选修课成绩:);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); printf(请再次输入新密

21、码:); 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(请输入要录入成绩的学生学号:); get

22、s(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(成绩录入完成,任意键返回。);getch(); void

23、 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;/返回上一级 void login_ad

24、m()/管理员登录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)/密码不同 printf( 密码错误,请

25、重新输入:); 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); print

26、f(ttt| 5.学生信息查询 |n); printf(ttt| 6.学生信息修改 |n); printf(ttt| 7.退出 |n); printf(ttt|-|n); printf(nn); printf(-n); printf(-n); printf(ttchoose(1-6):); ch=getchar();/获取选择 getchar();/消除回车符 return ch;void mod_code_adm()/修改管理员密码char cd010,cd110,cd210; system(cls);/清屏printf(请输入原密码:);gets(cd0);if(strcmp(cd0,ad

27、mID.code)=0)/与原密码相同 while(1) printf(请输入新密码:); gets(cd1); printf(请再次输入新密码:); gets(cd2); if(strcmp(cd1,cd2)=0)/两次密码相同 strcpy(admID.code,cd1);/修改密码 save();/保存 printf(修改成功,任意键返回。); getch(); return; else/两次输入密码不同 printf(两次输入密码不同,请重来。n); system(cls);/清屏 else/与原密码不同 printf(对不起!您输入的密码错误,任意键返回。); getch(); vo

28、id del() /注销账户char num10,ch; system(cls);/清屏 printf(请选择要注销账户的类型(1、学生 2、教师 3、管理员):n); while(1) ch=getchar(); getchar();/消除上一步产生的回车符 if(ch=1 | ch=2 | ch=3) break; else printf(输入错误请重新输入:); if(ch=1 )/注销学生账号 printf(请输入要注销学生的学号:); gets(num); for(i=0;ilen;i+) if(strcmp(num,stui.num)=0)/学号是否相同 break; if(i=l

29、en) printf(对不起!没有这个学号,任意键返回。);getch();return; ts=stui; stui=stui+1; stui+1=ts;/和最后一个同学交换位置 len-;/数量减一 save();/保存 else if(ch=2)/注销管老师账号 printf(请输入要注销教师的编号:); gets(num); for(i=0;ilent;i+) if(strcmp(num,thri.num)=0)/编号是否相同 break; if(i=lent) printf(对不起!没有这个教师编号,任意键返回。);getch();return; tt=thri; thri=thri

30、+1; thri+1=tt;/和最后一个老师交换位置 lent-;/数量减一 save();/保存 else if(ch=3)/注销管理员账号 printf(请输入要注销管理员的编号:); gets(num); for(i=0;ilena;i+) if(strcmp(num,admi.num)=0)/编号是否相同 break; if(i=lena) printf(对不起!没有这个管理员编号,任意键返回。);getch();return; ta=admi; admi=admi+1; admi+1=ta;/和最后一个管理员交换位置 lena-;/数量减一 save();/保存 save();/保存

31、 printf(注销成功!任意键返回。); getch();void sort() /对学生成绩的成绩排序 system(cls);/清屏 for(j=0;jlen-1;j+) for(i=0;ilen-1-j;i+) if(stui.sumstui+1.sum)/冒泡法按成绩排序 ts=stui; stui=stui+1; stui+1=ts; printf(按总成绩从高到底排序结果如下:n ); printf(_n); printf(学号 姓名 年龄 性别 系部 住址 电话 选修 专业 总分nn); for(i=0;ilen;i+) printf(%-8s%-8s%-6d%-6s%-8s%

32、-8s%-8s%-6d%-6d%dn,stui.num,stui.name,stui.age,stui.sex,stui.depart,stui.addr,stui.tel,stui.elec,stui.requ,stui.sum); printf(_n); printf(排序完毕,任意键返回。); getch();void regist() /注册管理char ch; system(cls);/清屏 printf(请选择要注册账户的类型(1、学生 2、教师 3、管理员):n); while(1) ch=getchar(); getchar();/消除上一步产生的回车符 if(ch=1 | c

33、h=2 | ch=3) break; else printf(输入错误请重新输入:); if(ch=1)/学生注册 for(i=len;iN;i+) printf(请输入姓名:); gets(stui.name); printf(请输入学号:); gets(stui.num); printf(请输入登录密码:); gets(stui.code); printf(请选择性别(1.男 2.女):); while(1) ch=getchar(); getchar();/消除上一步产生的回车符 if(ch=1 | ch=2) break; else printf(输入错误请重新输入:); if(ch=

34、1 ) strcpy(stui.sex,男); else strcpy(stui.sex,女); printf(请输入系部:); gets(stui.depart); printf(请输入家庭住址:); gets(stui.addr); printf(请输入电话:); gets(stui.tel); printf(请输入年龄:); scanf(%d,&stui.age); getchar();/消除回车符 stui.sum=-1;/-1标记尚未录入成绩 stui.requ=-1; stui.elec=-1; len+;/数量加1 printf(注册完成,是否继续注册下位同学信息?(y/n):)

35、; while(1) ch=getchar(); getchar();/消除上一步产生的回车符 if(ch=y | ch=Y | ch=n | ch=N) break; else printf(输入错误请重新输入:); if(ch=n | ch=N) break; if(ch=2)/注册教师账户 for(i=lent;iN;i+) printf(请输入教师编号:); gets(thri.num); printf(请输入登录密码:); gets(thri.code); lent+; printf(注册完成,是否继续注册下位教师信息?(y/n):); while(1) ch=getchar(); getchar();/消除上一步产生的回车符 if(ch=y | ch=Y | ch=n | ch=N) break; else printf(输入错误请重新输入:);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!