语言学生信息管理系统1_第1页
语言学生信息管理系统1_第2页
语言学生信息管理系统1_第3页
语言学生信息管理系统1_第4页
语言学生信息管理系统1_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#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

2、;/必修课 int sum; /总成绩 stuN,ts;struct admin/管理员结构体 char 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

3、)/打开文件 printf("文件打开失败!"); exit(0); for(i=0;i<len;i+)/写入文件 fprintf(fp,"%st%st%st%st%st%st%st%dt%dt%dt%dtn",stui.num,,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&q

4、uot;)=NULL)/打开教师文件 printf("文件打开失败!"); exit(0); for(i=0;i<lent;i+)/写入文件 fprintf(fp,"%st%stn",thri.num,thri.code); fclose(fp);/关闭文件if(fp=fopen("admin.txt","w")=NULL)/打开管理员文件 printf("文件打开失败!"); exit(0); for(i=0;i<lena;i+)/写入文件 fprintf(fp,"%st

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

6、,&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");/创建文件

7、goto loop2; i=0; while(!feof(fp)/读取文件 fscanf(fp, "%s%s",&thri.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");/初始化初始账号

8、 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;/管理员数量 fclose(fp);/关闭文件 char menu_login()/登陆菜单char ch; system("cls");/清屏 printf("nnnn"); printf(&quo

9、t;-中国海洋大学青岛学院-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&q

10、uot;); printf("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"); syst

11、em("COLOR 2f"); printf("-中国海洋大学青岛学院-n"); printf(" -欢迎使用-n"); printf("-学生信息管理系统-n"); printf("n 尊敬的用户您好!"); printf("n =n| |"); printf("n | 1.欢迎进入帮助系统! |n| |"); printf("n | |n| |"); printf("n | 2.请按照菜单提示进入数字代号! |n| |&q

12、uot;); 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&qu

13、ot;); printf("-n"); printf("请按任意键进入登录界面:."); getch();void exit1() system("cls");/清屏system("COLOR 3f");printf("-中国海洋大学青岛学院-n");printf("n");printf(" -【学生信息管理系统】-n");printf("n");printf("n");printf(" 制作人: 【王汝通

14、】 n");printf("=n");printf(" Bye-Byen");printf("n");printf(" n");printf("n");printf(" n");printf(" n");printf("n");printf(" n");printf(" 海 10级 n");printf(" 软 n");printf(" 大 件 n"

15、;);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(" -

16、欢迎使用-n"); printf("-学生信息管理系统-n"); printf("tt|-STUDENT-|n"); printf("tt| 1.个人信息查询 |n"); printf("tt| 2.修改密码 |n"); printf("tt| 3.退出 |n"); printf("tt|-|n"); printf("nn"); printf("-n"); printf("-n"); printf(&quo

17、t;tttchoose(1-3):"); ch=getchar(); getchar();/消除回车符 return ch;void srh_gr()/个人信息查询 system("cls");/清屏 printf("我(%s)的信息如下:n",); printf("_n"); printf("学号 姓名 年龄 性别 系部 住址 电话 选修 专业 总分nn"); printf("%-8s%-8s%-6d%-6s%-8s%-8s%-8s%-6d%-6d%dn",stuI

18、D.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,stu

19、ID.code)=0)/与原密码相同 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"

20、;);/清屏 else/与原密码不同 printf("对不起!您输入的密码错误,任意键返回。"); getch();void login_stu()/学生登录char num10,code10; system("cls");/清屏 printf("nnn 请输入学号: "); gets(num); for(i=0;i<len;i+) if(strcmp(num,stui.num)=0)/比较学号是否相同 break; if(i=len) printf("对不起!没有这个学号。任意键返回。"); getch()

21、; ID=-1;/-1表示登录失败 return;else printf(" 请输入密码: "); gets(code); while(strcmp(code,stui.code)!=0)/密码不同 printf(" 密码错误,请重新输入:"); gets(code); ID=i;/记住登录号void students()/学生系统 char ch; login_stu();/登录 if(ID=-1) return;/登录失败,返回 while(1) ch=menu_stu();/学生菜单 switch(ch) case '1': srh

22、_gr(); break;/个人信息查询 case '2': mod_code_stu(); break;/修改密码 case '3': return;/返回上一级 void login_thr()/教师登录char num10,code10; system("cls");/清屏 printf("nnn 请输入教师编号: "); gets(num); for(i=0;i<lent;i+) if(strcmp(num,thri.num)=0)/比较编号是否相同 break; if(i=lent) printf(&quo

23、t;对不起!没有这个管理员编号。任意键返回。"); 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("nnnnn"); printf("

24、-中国海洋大学青岛学院-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.退出

25、 |n"); printf("tt|-|n"); printf("nn"); printf("-n"); printf("-n"); printf("tttchoose(1-5):"); ch=getchar();/获取选择 getchar();/消除回车符 return ch;/*void modefy() /成绩修改 char num10; system("cls");/清屏 printf("请输入要修改成绩的学生学号:"); gets(nu

26、m); for(i=0;i<len;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=s

27、tui.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("请再次输入新密码:

28、"); 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() /成绩录入 cha

29、r num12; system("cls");/清屏 printf("请输入要录入成绩的学生学号:"); gets(num); for(i=0;i<len;i+) if(strcmp(num,stui.num)=0)/学号是否相同 break;/相同 结束查找if(i=len) printf("对不起!没有这个学号记录,任意键返回。"); getch(); return; printf("请输入专业课成绩:");scanf("%d",&stui.requ);printf("

30、;请输入选修课成绩:");scanf("%d",&stui.elec);getchar();/消除回车stui.sum=stui.requ+stui.elec;/总成绩save();/保存printf("成绩录入完成,任意键返回。");getch(); void teacher() /老师系统 char ch; login_thr();/登录 if(ID=-1) return;/登录失败,返回 while(1) ch=menu_thr();/老师生菜单 switch(ch) case '1': mod_code_thr(

31、); break;/密码修改 case '2': input(); break;/成绩录入 case '3': srh_stu(); break;/学生信息的查询 case '4': sort(); break;/学生成绩的排序 /case '5': modefy();/学生成绩的修改 case '5':return;/返回上一级 void login_adm()/管理员登录char num10,code10; system("cls");/清屏 printf("nnn 请输入管理员编

32、号: "); gets(num); for(i=0;i<lena;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(" 密码错误,请重新输入:"); gets(cod

33、e); 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"); pri

34、ntf("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|-|n"); printf("nn"); printf("-n"); pr

35、intf("-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,admID.code)=0)/与原密码相同 while(1) printf("请输入新密码:"); gets(c

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

37、ch(); void 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("

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

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

40、if(strcmp(num,admi.num)=0)/编号是否相同 break; if(i=lena) printf("对不起!没有这个管理员编号,任意键返回。");getch();return; ta=admi; admi=admi+1; admi+1=ta;/和最后一个管理员交换位置 lena-;/数量减一 save();/保存 save();/保存 printf("注销成功!任意键返回。"); getch();void sort() /对学生成绩的成绩排序 system("cls");/清屏 for(j=0;j<len-1

41、;j+) for(i=0;i<len-1-j;i+) if(stui.sum<stui+1.sum)/冒泡法按成绩排序 ts=stui; stui=stui+1; stui+1=ts; printf("按总成绩从高到底排序结果如下:n" ); printf("_n"); printf("学号 姓名 年龄 性别 系部 住址 电话 选修 专业 总分nn"); for(i=0;i<len;i+) printf("%-8s%-8s%-6d%-6s%-8s%-8s%-8s%-6d%-6d%dn",stui.

42、num,,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&#

温馨提示

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

评论

0/150

提交评论