

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股东的借款合同
- 2025版标准合同范本模板
- 2025标准合同范本示例
- 2025冰箱维修合同模板
- 2025销售人员保密协议-劳动合同模板资料文档
- 2025年农民个人租房合同
- 2025建筑工程合同(混凝土搅拌、模板制作、焊接、水电安装)
- 小学沪教版 (五四制)四、三位数的加减法小练习(2)教学设计
- 重庆市大学城高中英语 Unit 3 Powerful Music Period 3 Reading(2)教学设计 重庆大学版必修2
- 七年级信息技术《从因特网获取信》教学设计 人教新课标版
- 酶免疫技术(免疫学检验课件)
- 教育经济与管理院校排名
- 基本农田划定技术规程(TDT1032-2011)
- 围术期支气管痉挛
- 高新区市政道路可行性研究报告
- 产品零部件防锈规定
- 籍贯对照表完整版
- AGC 系统安全事故应急处置程序
- 变位齿轮与变位齿轮传动
- 二级精神病医院评价细则
- TGIA 004-2020 垃圾填埋场地下水污染防治技术指南
评论
0/150
提交评论