学籍信息管理系统设计源代码(共16页)

上传人:4**** 文档编号:56312656 上传时间:2022-02-21 格式:DOC 页数:16 大小:72KB
收藏 版权申诉 举报 下载
学籍信息管理系统设计源代码(共16页)_第1页
第1页 / 共16页
学籍信息管理系统设计源代码(共16页)_第2页
第2页 / 共16页
学籍信息管理系统设计源代码(共16页)_第3页
第3页 / 共16页
资源描述:

《学籍信息管理系统设计源代码(共16页)》由会员分享,可在线阅读,更多相关《学籍信息管理系统设计源代码(共16页)(16页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上#include #define N 50#define M 200int stumax=0,scoremax=0;FILE *fp;struct student char num9; /学号 char name20; /姓名 int sex; /性别 int room; /宿舍号码 long int tel; /电话号码stuN;struct stuscore char num9; /学号 char coursenum10; /课程编号 char course15; /课程名称 float point; /学分 int nscore; /平时成绩 int expsc

2、ore; /实验成绩 int examscore; /卷面成绩 int comscore; /综合成绩 float getpoint;/实得学分scoreM,score1M;void enter_stu();void input_stu(int j);void enter_score();void input_score(int i);void com_score(int i);void browse_stu();void browse_score();void search();void search_stu();void search_num();void search_name();vo

3、id search_room();void search_score();void printf_onestu_score(char snum);void delete_one();void order();void order_course_num();void order_course();void order_printf(int k);/*菜单*/void menu() int w1; char n; /*变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/ system(cls); do puts(*nn); puts(t * 总菜单 *nn); puts(t*

4、 1.输入学生的基本信息 *); puts(t* 2.浏览学生的基本信息 *); puts(t* 3.输入学生的成绩基本信息 *); puts(t* 4.浏览学生的成绩基本信息 *); puts(t* 5.查询信息功能 *); puts(t* 6.删除信息功能 *); puts(t* 7.排序:按综合成绩或实得学分 *); puts(t* 8.退出 *); puts(nn*); printf(n选择要进行的功能代号(1-8): bb); scanf(%c,&n); if(n8) /*对选择的数字作判断*/ w1=1; printf(nn? 请输入数字 18!nn); else w1=0; /*

5、选择功能*/ switch(n) case 1:enter_stu();break; /*输入基本信息模块*/ case 2:browse_stu();break; /*浏览基本信息模块*/ case 3:enter_score();break; /*输入成绩基本信息模块*/ case 4:browse_score();break; /*浏览成绩基本信息模块*/ case 5:search();break; /*查找模块*/ case 6:delete_one();break; /*删除学籍模块*/ case 7:order();break; /*排序模块*/ case 8:exit(0);

6、while(w1=1); getch();/*主函数*/void main() menu(); /*进入菜单*/*公用函数*/*保存所有分数*/void save_score() int i; if(fp=fopen(b.txt,w+)=NULL) /*以输出方式打开,在此前的记录被覆盖*/ printf(n 不能打开文件.); getch(); for(i=0;iscoremax;i+) if(fwrite(&scorei,sizeof(struct stuscore),1,fp)!=1) printf(n 文件输入错误.); fclose(fp); printf(n 输入数据结束.Pres

7、s any key to continue . . .);getch();/*保存所有学生信息*/void save() int i; if(fp=fopen(a.txt,w+)=NULL) /*以输出方式打开,在此前的记录被覆盖*/ printf(n不能打开文件); getch(); for(i=0;istumax;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(n文件输入错误.); fclose(fp);/*显示一个分数,形参i表示显示第i个记录*/void printf_one_score(int i) printf

8、(n学号:%s 课程编号:%s 课程名称:%s 学分:%fn 平时成绩:%d 实验成绩:%d 卷面成绩:%d 综合成绩:%d 实得学分:%f,scorei.num,scorei.coursenum,scorei.course,scorei.point,scorei.nscore,scorei.expscore,scorei.examscore,score,scorei.getpoint);/*显示一个学生信息,形参j表示显示第j个记录*/void printf_one_stu(int j) printf(n学号:%s 姓名:%s 性别:%d 宿舍号码:%d 电话号码:%ld,stuj.num,

9、stuj.name,stuj.sex,stuj.room,stuj.tel);/*删除一个分数,形参i表示删除第i个记录*/void delete_one_score(int i) printf_one_score(i); scorei=scorescoremax; scoremax-; printf(n删除学生数据成功!Press any key to continue . . .); getch(); save_score();/*录入模块*/*学生信息录入*/void enter_stu() int i,n,es1; printf(n要输入多少学生基本信息(1%d)? ,N-1); sc

10、anf(%d,&n); /*要输入的学生基本信息的个数*/ es1=n+stumax; /*输入n个后应有的记录个数*/ printf(n输入信息:); for(i=stumax;ies1;i+) input_stu(i); /*调用输入学生基本信息函数*/ printf(n共输入 %d 项基本信息.Press any key to continue . . .,n);getch();menu(); /*提示输入任务结束,按任意键返回主菜单*/*录入一个学生信息*/void input_stu(int j) int i1,k=0,d; switch(j+1)%10) case 1:printf

11、(n Input the %dst students information:,j+1);break; case 2:printf(n Input the %dnd students information:,j+1);break; default:printf(n Input the %dth students information:,j+1); printf(n学号 姓名 性别 宿舍号码 电话号码n); scanf(%s%s%d%d%ld,stuj.num,stuj.name,&stuj.sex,&stuj.room,&stuj.tel); stumax+; /*输入一个信息,总数加1*

12、/ for(i1=0;i1stumax;i1+) if(i1!=j&strcmp(stui1.num,stuj.num)=0) /*表示学号已存在*/ k=1; /*k为学号是否已存在标记,k=1表存在*/ printf_one_stu(i1); /*显示已存在的学号的信息*/ printf(n此学生存在!); /*提示学号已存在*/ stumax-; /*总数减1,删除输入信息*/ printf(n删除信息成功!); save(); /*调用保存函数*/ break; if(k=0) /*表示学号不重复*/ printf(n输入信息成功!); /*提示输入成功*/ save(); /*调用保

13、存函数*/ /*学生成绩信息录入*/void enter_score() int i,n,es1; printf(n要输入的学生基本信息的个数(1%d)? ,M-1); scanf(%d,&n); /*要输入的学生基本信息的个数*/ es1=n+scoremax; /*输入n个后应有的记录个数*/ printf(n输入数据:n); for(i=scoremax;ies1;i+) input_score(i); /*调用输入学生成绩基本信息函数*/ save_score(); /*调用保存学生成绩基本信息函数*/ printf(n 共输入了 %d 项数据.Press any key to con

14、tinue . . .,n);getch();menu(); /*提示输入任务结束,按任意键返回主菜单*/*录入一个成绩*/void input_score(int i) int j,j1,k,c; float a; switch(i+1)%10) case 1:printf(n Input the %dst students score:,i+1);break; case 2:printf(n Input the %dnd students score:,i+1);break; default:printf(n Input the %dth students score:,i+1); pri

15、ntf(n学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩n); scanf(n%s%s%s%f%d%d%d,scorei.num,scorei.coursenum,scorei.course,&a,&scorei.nscore,&scorei.expscore,&scorei.examscore); scorei.point=a; com_score(i); /*调用计算综合成绩、实得学分函数*/ scoremax+; for(j1=0;j1stumax;j1+) if(strcmp(scorei.num,stuj1.num)=0) break; if(j1=stumax) /*

16、学生不存在*/ printf(n该学生不存在!); delete_one_score(i);/*/ else /*学生存在*/ for(k=0;kscoremax;k+) if(k!=i&strcmp(scorek.num,scorei.num)=0&strcmp(scorek.coursenum,scorei.coursenum)=0&strcmp(scorek.course,scorei.course)=0) /*该学生该课程已存在*/ printf(n该学生的此项信息已经存在!); delete_one_score(i);/*/ break; if(strcmp(scorek.cours

17、enum,scorei.coursenum)=0&strcmp(scorek.course,scorei.course)!=0)|(strcmp(scorek.coursenum,scorei.coursenum)!=0&strcmp(scorek.course,scorei.course)=0) /*该课程编号和课程名称与前面矛盾并提示删除哪一个*/ printf(n课程编号和课程名称不符:); printf(n成绩信息%d:,i); printf_one_score(i); /*显示矛盾课程*/ printf(n成绩信息%d:,k); printf_one_score(k); /*显示矛盾

18、课程*/ printf(n 1)删除成绩%d 2)删除成绩%d? bb,i,k); scanf(%d,&c); switch(c) case 1:delete_one_score(i);break; /*调用删除函数*/ default:delete_one_score(k); /*调用删除函数*/ break; if(k=scoremax) printf(n输入信息成功! Press any key to continue . . .);getch(); /*计算综合成绩*/void com_score(int i) if(scorei.expscore=-1) /*判断是否有实验*/ sc

19、ore=scorei.nscore*0.3+scorei.examscore*0.7; else score=scorei.nscore*0.15+scorei.expscore*0.15+scorei.examscore*0.7; switch(score/10) case 10: case 9: scorei.getpoint=scorei.point*1.0;break; case 8: scorei.getpoint=scorei.point*0.8;break; case 7: scorei.getpoint=scorei.point*0.75;break; case 6: scor

20、ei.getpoint=scorei.point*0.6;break; default:scorei.getpoint=0; printf(n综合成绩计算结束. Press any key to continue . . .);getch();/*浏览模块*/*浏览学生信息*/void browse_stu() int i; for(i=0;istumax;i+) /* stumax 为总的学生数*/ printf_one_stu(i); /*调用显示一个学生基本信息函数*/ printf(n浏览学生基本信息结束.Press any key to continue . . .);getch()

21、;menu();/*浏览学生成绩信息*/void browse_score() int j; for(j=0;j=1&c=3) switch(c) case 1:search_stu();break; /*调用查找学生基本信息函数*/ case 2:search_score();break; /*调用查找学生成绩基本信息函数*/ default:menu(); printf(n查询结束.n 是否继续查询? 1)是 2)否 bb); /*询问是否继续查找*/ scanf(%d,&c1); switch(c1) case 1:search();break; /*继续查找*/ default:men

22、u(); /*查找学生信息*/void search_stu() int i,c; printf(n 查找学生信息中.n 选择查询方式:n1)学号 2)姓名 3)宿舍编号 4)返回查询 ? bb); scanf(%d,&c); /*选择查找方式*/ switch(c) case 1:search_num();break; /*调用按学号查询函数*/ case 2:search_name();break; /*调用按姓名查询函数*/ case 3:search_room();break; /*调用按宿舍号查询函数*/ default:printf(n继续查询.); printf(n查询结束. P

23、ress any key to continue . . .);getch();/*按学号查找学生信息*/void search_num() int i,c; char n19; printf(n请输入要查询学生的学号: ); scanf(%s,&n1); /*输入要查询的学号*/ for(i=0;istumax;i+) if(strcmp(stui.num,n1)=0) printf_one_stu(i); /*显示查到的记录*/ break; if(i=stumax) printf(n此学号不存在!n查询下一个学号? 1)是 2)否 bb); /*未查到相应记录,询问是否继续查找*/ sc

24、anf(%d,&c); switch(c) case 1:search_num();break; /*继续按此方式查找*/ default:printf(n继续查找.); else printf(n学生信息查询结束. Press any key to continue . . .);getch(); /*按姓名查找学生信息*/void search_name() int i,c,sn1=0; char n220; printf(n输入要查询学生的名字: ); scanf(%s,&n2); for(i=0;istumax;i+) if(strcmp(stui.name,n2)=0) printf

25、_one_stu(i); /*显示查到的记录*/ sn1+; if(sn1=0) printf(n此学生不存在!n查询下一个学生? 1)是 2)否 bb); /*未查到相应记录,询问是否继续查找*/ scanf(%d,&c); switch(c) case 1:search_name();break; /*继续按此方式查找*/ default:printf(n继续查询.); else printf(n查询结束. Press any key to continue . . .);getch(); /*按宿舍查找学生信息*/void search_room() int i,c,r,sr1=0;pr

26、intf(n输入要查询学生的宿舍号码: ); scanf(%d,&r); for(i=0;istumax;i+) if(stui.room=r) printf_one_stu(i); /*显示查到的记录*/ sr1+; if(sr1=0) printf(n这个宿舍号码不存在!n查询下一个宿舍号码? 1)是 2)否 bb); /*未查到相应记录,询问是否继续查找*/ scanf(%d,&c); switch(c) case 1:search_room();break; /*继续按此方式查找*/ default:printf(n继续查询.); else printf(n查询结束. Press an

27、y key to continue . . .);getch(); /*按学号查找学生成绩*/void search_score() int i,a,s1; char n39; printf(n输入要查询成绩的学生的学号: ); scanf(%s,n3); printf_onestu_score(n3); /*显示查到的记录*/ printf(n查询结束. n 是否查询其他学生? 1)是 2)否 bb); /*询问是否继续查找*/ scanf(%d,&s1); switch(s1) case 1:search_score();break; /*继续按此方式查找*/ default:printf

28、(n查询结束. Press any key to continue . . .);getch(); /*显示一个学生的所有分数*/void printf_onestu_score(char snum) int i,j,k=0,a1; float gp=0; for(j=0;jstumax;j+) if(strcmp(snum,stuj.num)=0) printf(n学号: %s 姓名:%s,stuj.num,stuj.name); printf(n); break; if(j=stumax) printf(n此学生不存在!); else for(i=0;iscoremax;i+) if(st

29、rcmp(scorei.num,snum)=0) /*显示该学生的所有成绩*/ printf_one_score(i); k+; gp+=scorei.getpoint; printf(n); printf(n共修: %d 科 实得总学分: %-5.1fn,k,gp); printf(n此学生成绩显示完毕. Press any key to continue . . .);getch(); /*删除*/void delete_one() int i,j,sd1=0,sd2,sd3; char c9; printf(n你要删除哪位同学的信息记录? n请输入他的学号:); scanf(%s,c);

30、 /*输入要删除的学号*/ for(i=0;istumax;i+) if(strcmp(stui.num,c)=0) break; if(i=stumax) /*未找到学生*/ printf(n未找到该学生!); else /*找到学生*/ printf_one_stu(i); /*显示学生基本信息记录*/printf(n要删除这些信息么? 1)是 2)否并返回 bb); scanf(%d,&sd2); /*删除确认?*/ if(sd2=1) /*确认*/ stui=stustumax-1; /*删除该学生基本信息*/ stumax-; printf(n删除学生信息成功!n); save();

31、 /*调用保存学生基本信息函数*/ for(j=0;jscoremax;j+) /*删除该学生的成绩信息*/ if(strcmp(scorej.num,c)=0) delete_one_score(j); /*调用删除成绩函数*/ sd1+; if(sd1=0) printf(n该学生无成绩记录.); /*该学生无成绩记录*/ printf(n删除信息成功.); printf(n删除其他学生的成绩? 1)是 2)否 bb); /*是否继续删除*/ scanf(%d,&sd3); switch(sd3) case 1:delete_one();break; /*继续删除*/ default: p

32、rintf(n查询学生的号码结束. Press any key to continue . . .);getch();menu(); /*排序*/void order() int c; printf(排序中.n按什么排序: 1)课程编号 2)课程 bb); scanf(%d,&c); /*指定按什么排序*/ switch(c) case 1:order_course_num();printf(n排序结束. Press any key to continue . . .);break; /*选择按课程编号排序*/ case 2:order_course();printf(n排序结束. Press

33、 any key to continue . . .);break; /*选择按课程名称排序*/ default:printf(n输入错误. 请重新输入 (12)!n);order(); getch();menu();/*按课程编号排序*/void order_course_num() int i,j,k=0; char cnum10; struct stuscore sco; printf(n输入要排序的课程编号:); scanf(%s,cnum); /*输入要排序的课程编号*/ for(i=0;iscoremax;i+) if(strcmp(scorei.coursenum,cnum)=0

34、) /*查找对应信息并保存在score1M中*/ score1k=scorei; /* score1M为全局数组*/ k+; for(i=0;ik-1;i+) for(j=i+1;score) /*升序排序*/ sco=score1i;score1i=score1j;score1j=sco; order_printf(k); /*调用显示函数*/ printf(n排序结束Press any key to continue . . .); getch();/*按课程名称排序*/void order_course() int i,j,k=0; char c15; struct stuscore s

35、co; printf(n输入要排序的课程名称:); scanf(%s,c); /*输入要排序的课程名称*/ for(i=0;iscoremax;i+) if(strcmp(scorei.course,c)=0) /*查找对应信息并保存在score1M中*/ score1k=scorei; k+; for(i=0;ik-1;i+) for(j=i+1;score) /*升序排序*/ sco=score1i;score1i=score1j;score1j=sco; order_printf(k); /*调用显示函数*/ printf(n排序结束.Press any key to continue

36、. . .); getch();/*排序显示*/void order_printf(int k) int w1,i,c; do printf(n选择排序的顺序:n 1)升序 2)降序 bb); /*选择显示顺序*/ scanf(%d,&c); if(c=1&c=2) w1=0; switch(c) case 1:for(i=0;i=0;i-) /*选择降序显示*/ printf(n 学号:%s 课程编号:%-10s 课程名称:%-15s 综合成绩:%5d 实得学分:%f,score1i.num,score1i.coursenum,score1i.course,score,score1i.getpoint);break; printf(nPress any key to continue . . .);getch(); else w1=1; printf(n输入错误请重新输入 (12)!); while(w1=1); printf(n排序结束.Press any key to continue . . .); getch();专心-专注-专业

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