版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、word文档可自由复制编辑1. 理系统设计学生信息管理系统目录课程设计目的和要求1课程设计任务内容2设计说明:包括函数功能说明,参数说明,函数流程图,编码及调试34软件测试方案12软件使用说明16课程设计心得与体会17附录1:参考文献18附录2:程序清单(带有较详细的注释)18、课程设计目的和要求设计目的:通过对高级语言程序设计课程设计的学习,来验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单的C语言程序设计。希望通过项目实践熟悉巩固所学知识,以使自己熟练掌握高级语言程序设计,为日后学习计算机科学技术的专业知识能有进一步深入了解,奠定基础。用所学的C+语言知识及其编程方法包括类和
2、对象、继承不多态等面向对象的基本思想和方法以及文件流的基本操作等内容。通过布置具有一定难度的实际程序设计项目要求学生独立完成所布置项目。在分析设计过程中要求学生养成良好的编程习惯学会分析解决简单的实际问题学会C+编程环境VC+的实际调试技巧和方法要求学生在教师的指导下逐步完成应用程序的分析不设计过程。2题目要求:建立一个学生信息管理系统,能实现以下功能:(1) 学生信息初始化:创建学生信息文件,包括学号、姓名、年龄、性别、出生年月、宿舍、手机、Email、课程设计合作者、题目等。(2) 学生信息操作:安全模块信息录入信息浏览学号查询姓名查询信息删除信息修改保存文件退出系统系统菜单形式显示二、课
3、程设计任务内容需求分析:系统功能需求:系统功能需求系统功能需求系统功能需求,学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息、课程信息等。对于学校来讲,学生信息管理系统是不可缺少的组成部分,它有效地管理学生档案,对学校学生的变动和统计起着重要的管理作用。1. 基本信息管理:学生信息管理系统包括:2. 信息输入模块完成学生信息的输入功能,输入信息包括学生号、姓名、性别、出生年月、住址、电话、E-mail等;信息浏览模块完成已录入学生信息的显示;信息查询模块完成学生信息的查询,查询时对应有按姓名查询和按学号查询两种方式;信息修改模块完成学生信息的修
4、改功能;信息删除模块完成学生信息的删除功能;安全模块是进入系统需要用户名字和密码;菜单选择模块完成用户命令的接收,此模块也是学生信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能;系统性能需求:3. 为了保证系统能够长期、安全、稳定、可靠、高效的运行,学生信息管理系统应该满足以下的性能需求:1.准确性和及时2.易用性和易维护性系统数据要求学生信息管理系统的数据需求包括如下几点:1 ).数据录入和处理的准确性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过
5、系统界面上的安排系统具有容错性,从而降低出错概率。2 ).数据的一致性与完整性学生信息管理系统对数据的处理有很高的要求,因为对学生信息的处理非常频繁,所以要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。1. ).数据的独立性学生信息管理的管理对学校来说是非常重要的一个部分,不可能让每一个人都对其进行操作,应该有特定的人员对学生信息管理系统进行管理,对系统进行独立三、详细设计说明:(包括函数功能说明,参数说明,函数流程图,编码及调试)总体模块功能流程图:程序流
6、程系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。系统的流程图如下1.总流程图开始是否存在(结束查询流程图NY显示信息输入学生学号、姓名、手机号2. 模块功能函数1安全模块printf(-请输入用户名,n");scanf("%s",x);if(strcmp(x,y)=0)(printf("请输入密码,n");scanf("%d",&ma);while(ma=123456)通过比较语句来判定输入人名和密码的正确如果正确进入菜单模块;2菜单
7、模块通过while语句给出信息提示;活屏;绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);提示菜单选择并读入到变量;根据读入变量的值调用不同的模块函数;3信息录入模块打开文件While()活屏;按照提示输入各种信息;While显示各种信息;通过选择1.确认并继续2.重新填写3.放弃并返回4.确认并返回选择四种功能;4信息浏览模块通过设计一个模块,来实现学生信息的显示。以便于浏览学生的信息。打开文件While()活屏;用for语句依次按照顺序输出学生信息通过选择可以翻贞1.上一贞2.下一贞0.退出5信息查询通过设计一个模块,这个模块可以按学生的学号、姓名来查询学生所有的信息并显示
8、学生的所有信息,以便查询者阅读。While()通过菜单式的选择是学号查询还是姓名printf("*学生信息管理系统*");printf("n检索");printf("n您想要:");printf("n1.按学号检索");printf("n2.按姓名检索");printf("n3.返回主菜单");printf("n*n");如果选择学号进入学号模块通过输入学号If(学号存在继续)(输出学生信息Else输出无此学生如果选择姓名进入姓名模块If(根据比较姓名判断
9、学生是否存在)(输出学生信息Else输出无此学生6删除模块通过设计一个模块,当输入一个学生的学号或者姓名的时候,可以通过这个模块,将输入学号或者姓名的学生的所有信息从数据库中删除出去。以后,这个学生的信息将不再会出现再数据库中。while(继续删除)(提示并读入待删除的学生的学生号;显示要删除的信息删除成功7信息修改模块通过设计一个模块,当某个人的信息发生变化的时候,可以通过修改模块来进行修改。修改模块时一具有多级子菜单的摸块。使用十分的方便、灵活。输入要修改学生信息的学号:If(判断是否有此学生)(菜单形式显示要修改的项目printf("n1.姓名2.年龄3.性别4.出生年月5.地
10、址6.电话7.E-mailn");Swich()(选择要修改的项目进行修改8打开文件模块voidfileopen()(FILE*fp;intn;if(fp=fopen("data”,"r+")=NULL)fp=fopen("data”,"w+");for(n=0;n<100;n+)fread(&stun,sizeof(structstudent),1,fp);fread(&stunum,4,1,fp);fclose(fp);9保存文件模块voidfilesave()(intn;FILE*fp;fp=fo
11、pen("data”,"r+");for(n=0;n<100;n+)fwrite(&stun,sizeof(structstudent),1,fp);fwrite(&stunum,4,1,fp);fclose(fp);printf("保存成功!pressEntertocontinue.");getch();10退出模块case'8':ma=0;break;用的是跳出while语句回到安全模块学生基本信息结构体是structstudent(intid;charname30;intage;charsex6;ch
12、arbirthday12;charadd80;chartel15;charemail25;四、软件测试方案1.安全模块:通过输入正确的用户名才能进入此系统*F:C+Debugjh.exe,欢迎来到学生信息管理系统请输入用户名,zhuzhizhe请输入密码.1234S6.2. 菜单显示:进入系统后便来到菜单界面通过选择进入不同的模块1=|回,字生信息官理系统*'C:UsersthinkDe?ktopDebugCppLeke"1234567想息息息.息息息理.宣危<=里一-号号0生生生生生生息雀affiIH善信费查修录入函数;通过选择菜单1进入录入模块下面是录入信息的界面年
13、龄:洞性别二男出生牟月日=1993.8.6地址二甘肃电话-maill009738152E请选择:1.确认并继续2.重新擅写3.放弃并返回4.确认并返回4浏览模块如果选择2可以进入浏览模块包括学生的课中基本信息.,注4苔年禁性别出生年月1zhuzhizhe20男1993.8.62yanghaili22nan1990.11M号电话E-mail地址1182340301011009?381520qq.coiri21823403011711111山西TF:C+-hDebugjh.exer5学号查找模块按学号查找6.按姓名查找7修改模块修改模块可以通过选择分别修改姓名年龄性别等信
14、息依次修改名年龄性别出生年月zhuzhizhe20史1993话E-mail地七F::C+Debuigjhiie:修改后如下:*F:C+4-Debugjh.exe¥口|回请输入你想修改的人的学号:J学号姓1名年龄性别出生年月zhuzhizhe2001?93,8.64o亍=1诘E-mail地tJ4.出生年月S,地址6.电话?.E-nail新年龄=22确认吗?<y/n>确认吗?<y/n>_8.保存模块'F;C+Debugjh.tw'zhuzliizbeangfliaill名年龄性别2222man出生年月1993.8.6199
15、0.11学号电12话1823493010118224030117E-mtail1009738152eqq.eulllli9删除模块-QU5erethinkDesktopDebugCppLexe请输入想要删除人的学号|10退出模块I=,I回law息息息.息息息理S侣借士一,£,=By雷二生生生息smffis事信费查修1234567回到安全模块欢迎来到学生信息管理系统请输入用户名,五、软件使用说明1.设计目标开发这个系统的目的就是使学生在毕业设计选题环节中实现选题的规范化、智能化、高效化、简便化;同时极大得便捷学生和指导老师,减轻学生和老师的劳动强度,提高工作效率和管理水平。本设计的任务
16、是编程实现“学生信息管理系统”,主要包括用户登录(该系统中涉及到的用户包括学生基本信息,输入自己的账号和密码登录系统后,进入不同的操作界面)、学生基本信息管理(学生的基本信息进行管理,可以方便灵活的进行添加、删除、修改和查询的功能)、首先教师可以通过成绩录入对成绩进行添加和维护。然后学生便可以通过各种查询方式显示出基本信息)。2. 开发和运行环境选择开发工具:VisualC+6.0运行环境:windowsXP及更高的操作系统。3. 需求描述主要包括用户登录,学生基本信息管理,学生的基本信息进行管理,可以方便灵活的进行添加、删除、修改和查询的功能。六. 课程设计心得与体会这次的课程设计实验是对我
17、们进入大学以来学习C语言结果的一次大考验。自己动手,发现问题和解决问题。并发现了许多自己的不足,平时没掌握的知识在实践中暴漏,经过不断的思考,查阅书籍和上网查资料及上机运行,解决了大部分问题,还稍微有些小问题。但是,我相信在今的学习中,一定能把它解决好。当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言乂是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。我不仅巩固C语言程序设计课程学习的内容,掌握设计的基本方法,强化上机动手能力,还进一步掌握以下了知识:数据类型、分支控制、循环控制、函数的定义及调用、结构体及数组、
18、指针、文件操作、编译预处理等;通过课程设计,掌握了程序的局部测试、调试方法,建立程序系统调试、测试的基本概念和思想,学会较大程序的系统测试和调试方法。当我选择学生通讯录管理系统时,首先系统分析主要思路及框架,与同学讨论,联系所学知识,尽管一些文件要同组帮助找,也还有一些循环语句要具体分析,了解其运行路线,尤其是for,while,if等的使用。我知道书上和老师讲的有限,故上网搜也是一种利用资源的表现。在编程中,特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。当读懂了C语言编程的基本过程和方法
19、。经过一波三折,终于开始正式编程。团队精神不可少,分工合作也是必须的,身为组长就要以身作则,带领好小组,做好各项工作。在开始,对本组人员进行整理,分析其特点,再分配任务,然后进行综合应用,最后对所需资料及要编的程序进行整理得出最后程序。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。1. 附录1:参考文献廖雷,C语言程序设计基础实验教程,高等教学出版社,2004。2. 谭浩强,C语言设计,北京:活华大学出版社,2005.3徐连信,C语言程序设
20、计,活华大学出版社,20054杨涛.C程序设计语言.北京:机械工业出版社,2004网络白度文库资料intmath;intenglish;intsum;stu100;voidcheck()查询函数(voidjsid();voidjsname();inta;charch;while(a)(system("cls");printf("*学生信息管理系统*");printf("n检索");printf("n您想要:");printf("n1.按学号检索");printf("n2.按姓名检索&q
21、uot;);printf("n3.返回主菜单");printf("n*n");ch=getchar();switch(ch)(case'1':jsid();break;case'2':jsname();break;case'3':a=0;break;voidfileopen()打开文件(FILE*fp;intn;if(fp=fopen("data”,"r+")=NULL)fp=fopen("data”,"w+");for(n=0;n<100;
22、n+)fread(&stun,sizeof(structstudent),1,fp);fread(&stunum,4,1,fp);fclose(fp);voidfilesave()保存文件intn;FILE*fp;fp=fopen("data”,"r+");for(n=0;n<100;n+)fwrite(&stun,sizeof(structstudent),1,fp);fwrite(&stunum,4,1,fp);fclose(fp);printf("保存成功!pressEntertocontinue."
23、);getch();voideditname(intn)按照名字修改(printf("n新姓名:");scanf("%s”,);voideditage(intn)修改年龄函数(printf("n新年龄:");scanf("%d”,&stun.age);/修改性别函数修改生日修改地址/修改电话voideditsex(intn)(printf("n新性别:");scanf("%s”,stun.sex);voideditbir(intn)(printf("n新出生年月&quo
24、t;);scanf("%s”,stun.birthday);voideditadd(intn)(printf("n新地址:");scanf("%s”,stun.add);voidedittel(intn)(printf("n新电话:");scanf("%s”,stun.tel);voideditemail(intn)printf("n新E-mail:");修改邮箱scanf("%s”,stun.email);voideditmath(intn)修改数学成绩printf("n新数学:&q
25、uot;);scanf("%d”,&stun.math);stun.sum=stun.math+stun.english;voideditenglish(intn)/修改经与成绩printf(-n新英语:");scanf("%d”,&stun.english);stun.sum=stun.math+stun.english;voidlast(intn)(if(n=stunum)system("cls");printf("*学生信息管理系统*");printf("n检索");printf(&
26、quot;n已检索到末尾。");printf("nPressanykeytocontinue.");printf("n*n");voidedit()/修改函数(charch;inta=1,b;intn;while(a)(system("cls");printf("n请输入你想修改的人的学号:n");scanf("%d”,&n);if(n<=stunum)(n=n-;printf("学号姓名年龄性别出生年月n");printf("%4d”,stun.id
27、);printf("%12s",);printf("%4d",stun.age);printf("%4s",stun.sex);printf("%8sn”,stun.birthday);printf("nnn学号电话E-mail地址n");printf("%4d",stun.id);printf("%15s”,stun.tel);printf("%15s",stun.email);printf("%sn",stun.a
28、dd);printf("n请输入你想修改的内容:");printf("n1.姓名2.年龄3.性别4.出生年月5.地址6.电话7.E-mailn");printf("n*n");getchar();ch=getchar();switch(ch)case'1':editname(n);break;case'2':editage(n);break;case'3':editsex(n);break;case'4':editbir(n);break;case'5':
29、editadd(n);break;case'6':edittel(n);break;case'7':editemail(n);break;case'8':editmath(n);break;case'9':editenglish(n);break;b=1;while(b)printf("n确认吗?(y/n)”);ch=getchar();switch(ch)case'Y':b=0;a=0;break;case'y':b=0;a=0;break;case'N':b=0;bre
30、ak;case'n':b=0;break;voiddelect()删除函数(intn,a;system("cls");printf("n请输入想要删除人的学号:n");scanf("%d”,&n);n=n-;for(a=n;a<=stunum;a+)(strcpy(,stua+1.name);stua.age=stua+1.age;strcpy(stua.sex,stua+1.sex);strcpy(stua.birthday,stua+1.birthday);strcpy(stua.add,st
31、ua+1.add);strcpy(stua.tel,stua+1.tel);strcpy(stua.email,stua+1.email);stua.math=stua+1.math;stua.english=stua+1.english;stua.sum=stua+1.sum;stunum-;printf("删除成功!pressEntertocontinue.");voidjsid()按照学号查询intn,i=0;system("cls");printf("*学生信息管理系统*");printf("n检索");p
32、rintf("n请输入想要检索的学号:");scanf("%d”,&n);if(n<=stunum)n=n-;printf("学号姓名年龄性别出生年月n");printf("%4d",stun.id);printf("%12s”,);printf("%4d",stun.age);printf("%4s”,stun.sex);printf("%8sn”,stun.birthday);printf("nnn学号电话E-mail地址n&qu
33、ot;);printf("%4d",stun.id);printf("%15s”,stun.tel);printf("%15s",stun.email);printf("%sn",stun.add);if(i=0)printf("nError:无此学生。");printf("n*getch();else(system("cls");last(n);getch();voidjsname()/按照姓名查询(intn,i=0;charm30;system("cls&quo
34、t;);printf("*学生信息管理系统*");printf("n检索");printf("n请输入想要检索的姓名:");scanf("%s”,m);for(n=0;n<stunum;n+)(if(strcmp(m,)=0)(system("cls");printf("学号姓名年龄性别出生年月n");printf("%4d”,stun.id);printf("%8s",);printf("%4d”,st
35、un.age);printf("%4s",stun.sex);printf("%8sn”,stun.birthday);地址n");printf("nnn学号电话E-mailprintf("%4d",stun.id);printf("%15s",stun.tel);printf("%15s",stun.email);printf("%sn",stun.add);i+;getch();if(i=0)printf("nError:无此学生。");el
36、selast(n);voidwrite()录入函数(inta,n=1,m;charch;while(n)(a=stunum;system("cls");printf("学号:");stua.id=(a+1);printf("%d”,stua.id);printf("n名字:");scanf("%s",);printf("n年龄:");scanf("%d”,&stua.age);printf("n性别:");scanf("
37、%s”,stua.sex);printf("n出生年月日:");scanf("%s”,stua.birthday);printf("n地址:");scanf("%s”,stua.add);printf("n电话:");scanf("%s”,stua.tel);printf("nE-mail:");scanf("%s”,stua.email);m=1;while(m)做一个循环,直到m=0时跳出system("cls");printf("学号:&q
38、uot;);printf("%d”,stua.id);printf("n名字:");printf("%s",);printf("n年龄:");printf("%d”,stua.age);printf("n性别:");printf("%s”,stua.sex);printf("n出生年月日:");printf("%s”,stua.birthday);printf("n地址:");printf("%s"
39、,stua.add);printf("n电话:");printf("%s”,stua.tel);printf("nE-mail");printf("%s”,stua.email);printf("n请选择:1.确认并继续2.重新填写3.放弃并返回4.确认并返回");ch=getchar();switch(ch)case'1':m=0;stunum+;break;case'2':stunum,m=0;break;case'3':m=0,n=0;break;/选择此项时,
40、m=0,循环终止case'4':m=0,n=0;a=stunum+;break;voidview()/浏览函数(intcount=1,i,n=1,pagenum=1,page=stunum/5+1;/设定变量控制翻页charch;while(n)(system("cls");printf("学号姓名年龄性别出生年月n");for(i=count-1;i<count+4&&i<stunum;i+)(printf("%4d”,stui.id);printf("%8s",stui.nam
41、e);printf("%4d",stui.age);printf("%7s”,stui.sex);printf("%12sn",stui.birthday);printf("nnn学号电话E-mail地址n");for(i=count-1;i<count+4&&i<stunum;i+)(printf("%4d”,stui.id);printf("%15s”,stui.tel);printf("%15s",stui.email);printf("%s
42、n",stui.add);ch=getchar();switch(ch)(case'1':pagenum-;if(pagenum=0)count=(page-1)*5+1,pagenum=page;elsecount=(pagenum-1)*5+1;break;case'2':pagenum+;if(pagenum>page)count=1,pagenum=1;elsecount=(pagenum-1)*5+1;break;case'0':n=0;break;voidturn()排序函数(intx,m;inty=stunum;in
43、tcount=1,i,n=1,pagenum=1,page=stunum巧+1;charch;for(m=0;m<y-1;m+)for(x=m+1;x<y;x+)if(stum.sum<stux.sum)(stu99=stum;stum=stux;stux=stu99;stu99.id=stux.id;stux.id=stum.id;stum.id=stu99.id;printf("排序后的顺序为:n");while(n)(system("cls");printf("学号姓名年龄性别出生年月n");for(i=count-1;i<count+4&&i<stunum;i+)(printf("%4d”,stui.id);printf("%8s”,);printf("%4d”,stui.age);printf("%7s”,stui.sex);printf("%12sn”,stui.birthday);printf("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 8393-2026跳跃平台
- 护理课件曲线图:静脉血栓风险评估与预防
- 护理专业精神科护理与心理康复
- 湖北省鄂州市多校2025-2026学年高二下学期4月阶段检测历史试卷(含答案)
- 动物胶提胶浓缩工岗前岗位安全考核试卷含答案
- 工业炉及电炉机械装配工测试验证知识考核试卷含答案
- 可变电容器装校工岗前实操掌握考核试卷含答案
- 2026年新科教版高中高一历史下册第三单元辛亥革命历史功绩卷含答案
- 石油地震勘探工安全教育测试考核试卷含答案
- 2026年新科教版高中高二数学下册第一单元排列组合不相邻问题卷含答案
- 复杂控制系统-1
- 2022年大英县国企招聘考试真题及答案
- 第二节真理与价值案例
- 碎渣机检修工艺及质量标准
- 热控专业施工方案
- 《BIM技术在土木工程中的应用(案例论文)》
- 22个专业95个病种中医诊疗方案第一部分
- JJG 52-2013弹性元件式一般压力表、压力真空表和真空表
- GA/T 1498-2018法庭科学剪切工具痕迹检验规范
- GA/T 1048.1-2013标准汉译英要求第1部分:术语
- 湖南省衡阳市南岳区事业单位考试历年真题
评论
0/150
提交评论