学籍信息管理系统设计源代码.doc

上传人:豆**** 文档编号:33440050 上传时间:2022-08-11 格式:DOC 页数:12 大小:63KB
返回 下载 相关 举报
学籍信息管理系统设计源代码.doc_第1页
第1页 / 共12页
学籍信息管理系统设计源代码.doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《学籍信息管理系统设计源代码.doc》由会员分享,可在线阅读,更多相关《学籍信息管理系统设计源代码.doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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; /平时成

2、绩 int expscore; /实验成绩 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 searc

3、h_name();void 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 * 总菜单 *n

4、n); puts(t* 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); el

5、se w1=0; /*选择功能*/ 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

6、8:exit(0); 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

7、输入数据结束.Press 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(in

8、t i) printf(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 电话号码:%l

9、d,stuj.num,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)

10、? ,N-1); scanf(%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) ca

11、se 1:printf(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+; /*输

12、入一个信息,总数加1*/ 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输入信息成功!); /*提示输入成功*/ sa

13、ve(); /*调用保存函数*/*学生成绩信息录入*/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 k

14、ey to continue . . .,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:,

15、i+1); printf(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=s

16、tumax) /*学生不存在*/ 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(sco

17、rek.coursenum,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) /*判断是否

19、有实验*/ score=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

20、 6: scorei.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 . . .)

21、;getch();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; /*继续查找*/ def

22、ault:menu();/*查找学生信息*/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

23、查询结束. Press 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); /*未查到相应记录,询问是否继续

24、查找*/ scanf(%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)

25、printf_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

26、=0;printf(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查询结束. Pre

27、ss any 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:pr

28、intf(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

29、(strcmp(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: printf(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_n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com