版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、封面作者: PanHongliang仅供个人学习学生上机管理系统1. 需求分析1.1 实现的目标课程设计的任务:制作一个小型的学生上机管理系统,要求制作一个菜单,实现数据的录入,数 据的显示,数据查找,数据的删除,数据的保存,数据的统计,数据的修改, 系统的退出。系统的设计要求用到 C+C+面向对象的程序设计,要求用到类来实 现,同时每一个功能用到一个函数。基本功能:学生基本信息(学号,姓名,上机对应的设备编号,设备名称,设备状态)扩展功能:学生数据的添加、修改、与删除学生数据的读取与存储系统特点:系统要能够对相应的数据进行很好的测试,系统的统计对设备的状态,人 数都进行了统计;系统数据的录入
2、除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,姓名;程序中查找运用了两 种查找方式即学号查找和姓名查找。1.2 系统实现方案第一步:分析题目,建立类并派生出它的子类,画出类图。第二步:画出流程,根据流程图编写程序清单第三步:上机调试程序(使用单步调试,设置断点、分块调试的方法)。第五步:及时整理资料,撰写课程设计报告中有关这个题目的内容。1.3 界面设计与数据程序对学生上机据处理要求1能够输入并浏览学生的基本信息;2能够实现对学生信息的查询和修改;3能够对成绩进行统计;4能够对学号排序。5能够对学生的信息进行保存;现行的系统功能:资料维护:系统维护包括对各学生
3、信息和成绩的录入操作。资料维护:对数据表中的信息进行浏览。系统查询:可以对学生的姓名,学号,设备信息来查询。1类设计类:student数据成员学号,姓名,性别,设备编号,设备名称类:school成员函数录入函数统计函数查询函数修改函数统计函数排序函数删除函数输出函数UML 图:Input():输入编号到计算机的成绩;count():统计各科的总成绩,计算平均成绩,统计各科的及格率;found():按学号或姓名查找学生的记录; mend():修改指定学号学生成绩记录;ncount():统计学生人数;sort():按学号排序;del():删除指定学号学生记录;show():输出班级所有学生成绩记录
4、;编号查询3.详细设计school+school()+school()+ input():void+ mend():void+ del():void+ find:int+found():void+ show():void+ count():void+sort():void,+ save():void+begin():void+clear():void+mainmenu():char+getkey():int+setkey(intk):void-*head:student-key:intStudent#number:int#name20:char#sex6:char#deviceid20:cha
5、r#devicename6:char#devicestatus20:char+student*next。+student() -+student() + * getname():char+getnumber():int+getscore(inti)double+ getg():float+ input():void+input(ifstream & is): void+output():void+output(ofstrea m&os):void2. 界面设计1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。2功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析
6、相关内容。应用系 统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生 信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。3系统主界面:4.调式分析本程序基本完成了题目要求的功能。但是由于显示的限制,我未完成统计的运行功 能,老师指导下完成了,要动脑子。程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。 解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。此次 C+C+课程设计,在指导教师的精心教导下,我们学会了如何用C+C+编 写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然 后系统分析与系统设计,最后是代码
7、设计与调试。程序实现上,设计了简单的 查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据 C+C+课程所学的概念、理论和方法,按照 C+C+程序设计的基本步骤, 设计出一个适当规模的程序;进一步加深对 C+C+语言的理解和掌握。理论联系 实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。 我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编 程,就必须不断改进,才能更好提高编程能力。5用户使用说明按1录入按2显示按3查找按4删除按5统计等等来操作的学生上机管理系统的6.测试结果7.附录1.student .h#include#include#incl
8、udeschool.h class studentprotected: int number 。 char name20 。 char devicestatus8。char deviceid10 。 chardevicename20 。public: student *next 。 friend void school:sort() 。 student()student()char* getname()return name 。int getnumber()return number 。void input()int e=1 。 coutttt 按提示输入 :endl 。 coutnumber
9、 。coutname。 docoutdevicestatus 。if(strcmp(devicestatus,)=0)coutdeviceid 。coutdevicename 。e=0。elsecoutttt 无此类型状态 ! 重新输入 !numbernamedevicestatusdeviceiddevicename 。 is.get() 。void output()cout 学生基本信息如下 :endl 。cout 编 号 :number 姓 名 :name 设 备 态 :devicestatus设备编号 :deviceid 设备名称 :devicenameendl 。void outpu
10、t(ofstream & os)ossetw(6)number setw(15)namesetw(5)devicestatussetw(5)deviceidsetw(10)devicenamenext=NULL 。key=0 。school:school()开 )=0 | strcmp(devicestatus,delete headvoid school:input()/ 录入函数student *p,*p2=NULL 。 p=head。int n 。while(p-next) p=p-next 。while(n) p2=new student 。 p2-input() 。 p-ne
11、xt=p2 。 p2-next=NULL 。 p=p-next 。school:setkey(1) 。coutn 。int school:find(student *p1,int num,char *pn)/ 子查找函数student *p 。p=head。 while(p-next)(*p1)=p 。 if( (p-next)-getnumber()=num|!strcmp( getname(),pn ) )return 1 。 p=p-next 。return 0 。void school:found()/ 查找函数student *p 。int num=-1,n=9 。char n am
12、e20=A。do coutn 。(p-next)-while(n2) 。if(n=1)coutnum 。if(n=2)coutname。if(!find(&p,num,name) )coutnext)-output() 。void school:del()/ 删除函数student *p,*p2 。int num 。coutnum 。if( !fin d(&p, nu m,“)coutnext)-output() 。p2=p-next 。p-next=p2-next 。delete p2 。school:setkey(1) 。int school:ncount() /统计函数s
13、tudent *p 。p=head。int amount=0 。while(p-next)p= p-next 。 amount+。!endl 。!endl 。return amountvoid school:sort() / 排序函数student *p1 。student *temp=new student 。student *temp1 。student *temp2 。int i,j,count 。int n=ncount() 。 for(j=0 。 in-1 。 j+)p1=head。for(i=0 。inext 。 count- 。if(p1-numberp1-next-number
14、)temp1 = p1-next 。 temp2 = p1-next-next 。memcpy(temp,p1,sizeof(student) 。memcpy(p1,p1-next,sizeof(student) p1-next = temp1 。memcpy(p1-next,temp,sizeof(student) p1-next-next =temp2 。void school:show() / 显示函数student *p 。 p=head 。int n=0 。while(p-next)(p-next)-output() p=p-next 。n+。void school:mend()/
15、修改函数student *p 。 int num=-1,n 。char n ame20=A。docoutn 。while(n2)。if(n=1)coutnum 。if(n=2)coutname。if( !find(&p,num,name) )couttt 找不到你要修改的内容 !next)-output() 。(p-next)-input() 。 school:setkey(1) 。void school:save() / 保存函数student *p 。p=head。ofstream os(student.txt,ios:out)。if (school:getkey()=1)whil
16、e(p-next)(p-next)-output(os) 。 p=p-next 。coutttt 文件已保存 ! num。 is.seekg(t) 。if(numinput(is) 。p-next=p2 。p2-next=NULL 。p=p-next 。void school:clear()/ 清空函数student *p,*p2 。 p=head-next 。 while( p )p2=p。p=p-nextdelete p2 * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * *
17、* * * * * * * * * * * * * * * *endl* *1:录入学生信息* *endl* *2:显示学生信息* *endl* *3:查找学生信息* *endl* *4:删除学生信息* *endl * *5:统计学生数量* *endl * *6:学生学号排序* *endl* *7:修改学生信息* *endl* *8:保存学生信息* *endl* *0:退出系统* *endl* * * * * * * *endl* * * * * * * *endln 。return n0 。2.school.h#include #include class student 。class sc
18、hoolpublic: school() 。 school() 。 void input() 。 void mend() 。 void del() 。int fin d(stude nt *p,i nt nu m,char *pn=) void found() 。int ncount()char school:mainmenu()/char n8 。coutnn主选菜单函数欢迎进入学生上机管理系统endlendlvoid sort() 。void show() 。void save() 。void begin() 。void clear() 。char mainmenu() 。int getk
19、ey() return key。 void setkey(int k) key=k。 private:student *head 。int key 。3.main.cpp#includestudent.h void main()/ 主函数school pp 。int k=1 。char n 。pp.begin() 。while(k=1)n=pp.mainmenu() 。switch(n)case 1:pp.input()。 break 。case 2 pp.show()。 break 。case 3 pp.found()。 break 。case 4 pp.del()。 break 。case
20、 5 pp.ncount()。 break 。case 6 pp.sort()。 break 。case 7 pp.mend()。 break 。case 8 pp.save()。 break 。case 0if(pp.getkey()=1)coutk 。if(k=1)pp.save() 。pp.clear() 。k=0。break 。版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整 理。版权为潘宏亮个人所有This article in eludes some parts, in cludi ng text, pictures, anddesig n. Copyright is
21、Pan Hon glia ngs pers onal own ership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定, 不得侵犯本网站及相关权利人的合法权利。 除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权 利人的书面许可,并支付报酬。Users may use the contents or services of this article forpers onal study, research or appreciati on, and othernon-commercial or non-profit purposes, but at the same time, theyshall abide by the provisio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PEP人教版小学四年级上册Unit 1 My classroom PartC Story time课件
- 农村个人房屋买卖合同协议书范本
- (立项备案方案)椰雕项目立项申请报告
- 古代建筑行业中的追踪和定位- 王姣27课件讲解
- 山东省菏泽市郓城县第一中学2023-2024学年七年级上学期第一次月考生物试题(解析版)-A4
- 湖南省娄底市新化县2024-2025学年八年级上学期12月月考道德与法治试题-A4
- 兽医寄生虫题库与参考答案
- 养老院老人心理关爱制度
- 养老院老人紧急救援人员职业道德制度
- 房屋建筑项目工程总承包合同(2篇)
- 穿孔机操作规程
- 危机公关处理技巧
- 10、特种作业人员管理台账
- 机械基础考试题库及参考答案
- GB/T 70.1-2008内六角圆柱头螺钉
- 第一章数学的萌芽
- GB/T 24628-2009医疗保健产品灭菌生物与化学指示物测试设备
- GB/T 24176-2009金属材料疲劳试验数据统计方案与分析方法
- 多发性骨髓瘤的疗效评估
- 导视系统设计讲解课件
- 新人教部编版六年级语文上册第六单元复习课件(含期末复习计划)
评论
0/150
提交评论