学生证管理系统(C语言课程设计).docx
《学生证管理系统(C语言课程设计).docx》由会员分享,可在线阅读,更多相关《学生证管理系统(C语言课程设计).docx(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、中图小賛C语言课程设计报告2010年11月26日报告目录、课程设计目的3二、实习内容及要求3三、需求分析3四、总体分析3五、详细设计45.0 头文件及结构体45. 1 主函数55.2菜单模块55. 3 添加模块65.4 修改模块105.5 浏览模块 145.6 查询模块155. 6. 1按学号查询 155. 6.2按名字查询 165. 6.3按班级查询 175.7统计模块 185. 7. 1男生信息195. 7.2女生信息215. 7. 3全体学生信息 235.8删除模块23六、上机操作266. 1系统说明 266.2系统测试 26七、总结32、源代码32、课程设计目的通过实践,学会编制结构清
2、晰、风格良好、数据结构适当的C语言程序,加深对C语言 基础知识的理解和掌握,进步巩固C语言编程实践能力,锻炼思维逻辑和解决综合性实际 问题的能力。二、实习内容及要求1、用C语言编写个学生证管理系统,该系统具有以下功能:(1)录入某位学生的学生证信息;(2)给定学号,显示某位学生的学生证信息;(3)给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;(5)给定某位学生的学号,删除该学生的学生证信息;(6)提供些统计各类信息的功能;(7)提供浏览所有学生的学生证信息的功能。2、输入要求应用程序运行后,在屏幕上显示个菜单;用户可以根据要求,选定相应的操
3、作项目; 进入某个操作后,根据应用程序的提示,从键盘输入相应的信息。3、输出要求(1)应用程序运行后,要在屏幕上显示个菜单;(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式 及结束方式等。三、需求分析根据题目要求,学生信息要从文本文件中存取,所以本程序应该提供读写文件,显示、 统计、查询、修改记录,保存文件等操作,此外,还应该提供键盘式选择菜单实现功能。四、总体设计根据需求分析,可以把这个系统的设计分为添加、修改、查询、浏览、统计、删除六大 模块,其中查询模块可以分为三个子模块,统计模块可以分为三个子模块,子模块下面还有子 函数;系统功能模块图如下所示:五、详细设计
4、5. 0头文件及结构体#include#include#include#define N 100struct Class t班级(char Cname20;char Cno20;班名 班号struct Student(char Sname20;char Sex10;char Sno20;int Age;struct Class CInfo; StuInfoN;学生姓名性别学号年龄嵌套结构体,表示班级信息结构体数组,用作读取和存放临时数据5. 1主函数void main()(菜单menu();getchar();)5.2 菜单void menu()(int chose;int right;dop
5、rintf(,ntttt 学生证管理系统n);printfC;printf(n菜单:tl 添加、2修改t3 浏览全部t4 .査询t5 .统计t6 .删除t7 .退出、);printf(H);printf(请输入数字选择);scanf(M%d,&chose);if(chose8)(right=l;printf(输入错误,请重新输入!n); getchar();)else right=O;while(right=l);switch(chose)case 1 :add();break;添加模块case 2:modify(); break;修改模块case 3:browse(); break;浏览模块
6、case 4:quiry(); break;查询模块case 5:stastic(); break;统计模块case 6:Delete(); break;删除模块case 7:exit(0);退出)5.3 添加模块首先要判断文件 Stulnfo. txt是否存在,如 果存在就以读写(r+)的方 式打开,如果不存在,就以 写(w)的方式创建文件 Stulnfo. txto输入格式要 求:性别为男或女,学号为 11位且不能重复,年龄在 0700之间,班级号为6位, 程序提供了完善的验证机 制,输入错误时将提示重新 输入直到正确为止。此外, 如果以读写的方式打开,还 要判断记录数numN是否 成立,
7、因为结构体数组的大 小为N,当num=N时,表示 已满,不能再存储数据,需 要修改N的值。void add()int num;表示记录数int i;int age;临时变量,用于验证输入的性别是否满足条件char sno20; 临时变量,用于验证输入的学号是否满足条件 charsex20; 临时变量,用于验证输入的性别是否满足条件 charcno20; 临时变量,用于验证输入的班号是否满足条件 int right;FILE*fp;if(fjp=fopenCStuInfb.txtM;r+M)=NULL)以读写方式打开(if(fp=fopen(HStuInfo.txtM,nwM)=NULL) 文件
8、不存在就创建文件 (printf(”n文件不存在且创建失败,返回!、); menu();printf(n请按照提示输入学生信息:nnH);printf(姓名:“);scanf(M%sM,&StuInfdO.Sname); do(printf(n 性别(男或女):); scanf(H%sn,sex);if(strcmp(sexj 男)!=0)&(strcmp(sex,“ 女)!=0) (printf(”输入错误,请输入男或女!n”);right=l; getchar();)else right=O;while(right=l);strcpy(StuInfo0.Sex,sex); doprintf
9、(”n 学号(11 位):”); scanf(”s”,sno);if(strlen(sno)!=ll) (printf(”输入错误,学号长度应为11位数!); right=l;getchar();else right=O;while(right=l);strcpy(StuInfo0.Sno,sno);doprintfCn 年龄:);scanf(w%dM,&age);if(age100) printf(年龄应在0-100之间,请重新输入年龄!n);right=l;getchar();else right=O;while(right=l);StuInfo0.Age=age;do(printf(n
10、班号(6 位):);scanf(%s,cno);if(strlen(cno)!=6) (printf(输入错误,班号长度应为6位数!n);right=l;getchar();1else right=O;while(right=l);strcpy(StuInfo0.CInfo.Cno,cno);printf(!班名:);scanf(%s,&StuInfb0.CInfo.Cname);fprintf(fp;,n%st%st%st%dt%st%s,StuInfo0.Sname,StuInfo0.Sex,StuInfo0.Sno,StuInfo0.Age,Stu Info0.CInfo.Cno,Stu
11、Info0.CInfo.Cname);fclose(fp);printf(”n 保存成功! n);printf(n请按enter键返回主菜单!n);getchar();getchar();menu();)以上的输入是以写的方式输入,下面是以读写的方式输入数据for(i=0;!feof(fp);i+)fscanf(fp,%s%s%s%d%s%sw,&StuInfoi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,&StuI nfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);)num=i;记录数if(num=N)print
12、f(n保存记录数超出结构体数组数的大小,请先修改N的值!、);printf(Hn请按enter键返回主菜单);getchar();getchar();menu();printf(Mn请按照提示输入学生信息:nn);printf(姓名);scanf(M%sM,&StuInfonum.Sname);doprintf(”n性别(男或女):);scanf(,%s,sex);if(strcmp(sexj 男”)!=0)&(strcmp(sexJ 女)!=0)primf(输入错误,请输入男或女!);right=l;getchar();)else right=O;while(right=l);strcpy(
13、StuInfonum.Sex,sex);do(printf(n 学号(11 位):”);scanf(s”,sno);if(strlen(sno)!=l 1)(printf(输入错误,学号长度应为11位数!);right=l;getchar();)else right=O;for(i=0;inum;i+)if(strcmp(sno,StuInfbi.Sno)=0)(printf(该学号已经存在,请重新输入!n);right= 1;getchar();while(right=l);strcpy(StuInfonum.Sno,sno);do(printf(Hn 年龄);scanf(M%dn,&age
14、);if(age 100)printf(年龄应在0-100之间,请重新输入年龄!n);right=l;getchar();)else right=O;while(right=l);StuInfb|numl.Age=age;doprintf(n 班号(6 位):”);scanf(%s,cno);if(strlen(cno)!=6) prinlf(输入错误,班号长度应为6位数!n);right=l;getchar();else right=O;while(right=l);strcpy(StuInfonum.CInfo.Cno,cno);printf(”n 班名:);scanf(,%s,&StuI
15、nfonum.CInfo.Cname);把该记录写到文件末尾fprintf(fp,n%st%st%st%dt%st%sStuInfonum.Sname,StuInfonum.Sex,StuInfonum.Sno,StuInfonum.Age,StuInfonum.CInfo.Cno,StuInfbnum.CInfo.Cname);fclose(fp);printf(Hn 保存成功! nM);printf(,n请按enter键返回主菜单!n);getchar();getchar();menu();5. 4修改模块先判断文件Stulnfo. txt以读 (r)的方式能否打开,不能就返回, 可以就读
16、入记录;然后输入学号查找 记录,没找到就返回,找到就按照提 示修改该记录,与输入模块样,输 入的格式要求:性别为男或女,学号 为11位且不能与除当前修改的记录 的学号外的记录的学号重复,年龄在 0-100之间,班级号为6位,程序提 供了完善的验证机制,输入错误时将 提示重新输入直到正确为止。输入完 成后,再以写(w)的方式创建文件, 不能创建就返回,可以就将结构体数 组中的所有记录保存到文件中,这与 添加稍有差别,最后返回主菜单。void modify() (int num;否 int i;int right;int age;char sex20;char cno20;char sno20;i
17、nt found=-1;char StuNO20;FILE*fpr,*fpw;if(fpr=fopen(,StuInfo.txt,;,r,)=NULL)printf(文件打不开! n);输入学号(主菜单menu();for(i=0;!feof(fpr);i+)/fscanf(fpr,%s%s%s%d%s%s,&StuInfoi.Sname,&StuInfoi.Sex,&StuInfoi.Sno,&StuInfoi.Age,&StuI nfoi.CInfo.Cno,&StuInfoi.CInfo.Cname);num=i;fclose(fpr);printf(Hn请输入学号选择要修改的记录:;s
18、canf(M%sM,StuNO);fbr(i=O;inum;i+)if(strcmp(StuNO,StuInfoi.Sno)=0)(found=i;printf(Hn你要修改的学生信息为: 、);printf(姓名性别学号年龄班号班名n”);printf(,%st%st%st%dt%st%sn,StuInfoi.Sname,StuInfoi.Sex,StuInfoi.Sno,StuInfoi.Age,StuInfoi .CInfo.Cno,StuInfoi.CInfo.Cname);printf(Hn请按照提示输入学生的新信息:n”);printf(姓名:“);scanf(%s”,&SluIn
19、fofound.Sname);do(printf(”n 性别(男或女):”);scanf(”s”,sex);if(strcmp( sex,” 男”)!=0)&(strcmp(sex,”女”)!=0)(printff输入错误,请输入男或女!n”);right=l;getchar();else right=O;while(right=l);strcpy(StuInfofbund.Sex,sex);doprintfOn 学号(11 位):”);scanf(H%s,sno);if(strlen(sno)!=l 1)primf(输入错误,学号长度应为11位数!n”);right=l;getchar();
20、)else right=O;for(i=0;inum;i+)(if(i!=found)&(strcmp(sno,StuInfoi.Sno)=0)(printf(”该学号己经存在,请重新输入!n”);right=l;getchar();while(right=l);strcpy(StuInfofound.Sno,sno);doprintf(nn 年龄:);scanf(,%d,&age);if(age100)printf(年龄应在0-100之间,请重新输入年龄!n);right=l;getchar();)else right=O;while(right=l);StuInfbfound.Age=ag
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生证 管理 系统 语言 课程设计
限制150内