ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:150.27KB ,
资源ID:6403956      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6403956.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(教工信息管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

教工信息管理系统.docx

1、教工信息管理系统 学号: 课 程 设 计 报 告课程设计名称: 面向对象程序设计课程设计 题 目: 教工信息管理系统 学 生 姓 名: 专 业 班 级: 指 导 教 师: 完 成 时 间: 年 月 日 年 月 日成 绩: 一、系统的需求分析需求分析是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,“需求分析”就是确定要计算机“做什么”。需求分析包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。本次课程设计需要实现的是教工信息管理系统。主要实现的功能包括:教工信息的录入、

2、查询、修改、删除、排序、输出。教工信息可写入文件,也可从文件中读取。教工信息涉及的数据有教工号、姓名、出生年月、职务、工资、住址、电话等。按照需求分析所得,教工信息系统有以下几个功能模块 :1教工信息录入模块该模块主要录入教工的教工号、姓名、出生年月、职务、地址、电话号码和工资信息。2教工信息显示模块该模块主要显示教工的所有信息,有教工号、姓名、出生年月、职务、地址、电话号码和工资信息。3教工信息删除模块该模块先提示输入要删除的教工的教工号,然后查找与输入相同的教工号,查找到该教工后,删除该教工的所有信息。4教工信息排序模块选择排序后,该模块提示已经成功按照工资高低排序,如需查看排序后信息,选

3、择“教工信息显示”输出信息。5教工信息修改模块该模块先提示输入要修改的教工的教工号,按照输入的教工号查找到该教工,然后删除该教工信息。6教工信息查询模块该教工模块提示选择需要按教工号查询、按姓名查询还是按职务查询,然后通过选择查询的方式查找到该教工。由上述需求分析可得,系统的功能模块图如图1所示。图1 教工信息系统功能模块图二、 系统的设计与实现根据第一章的需求分析,接下来给出的是系统的设计与实现。1. 类的设计根据上述需求分析得出有以下教工类和链表类。(1)教工类教工类cteacher中有成员:教工号NUMSIZE,教工姓名NameSIZE,出生日期TimeSIZE,职务PostSIZE,住

4、址AddressSIZE ,电话号码Phone,工资Pay,标志flag 和构造函数cTeacher()。其中私有成员有NUMSIZE、NameSIZE、TimeSIZE、PostSIZE、AddressSIZE、Phone、Pay、flag,公有成员有cTeacher()。教工类的UML图如图2所示。 图2 教工类的UML图(2)链表类链表类tList中,有成员:构造函数tList(),创建链表Create(),判断链表是否为空的函数Empty() const,从尾部插入一个元素的函数Insert(const T e),返回第i个节点的函数GetcNode(int i),在链表中查询某个值的

5、函数bool Find(const T e),析构函数tList(),头节点head。链表类的UML图如图3所示。 图3 链表类的UML图 2. 界面设计(1)主界面的设计主界面中显示教工信息系统的信息,有教工信息录入、教工信息显示、教工信息保存、教工信息删除、按工资排序、教工信息修改、教工信息查询、退出系统。教工信息管理系统如图4所示。图4 教工信息管理系统(2)教工信息录入的设计 提示输入教工号、教工名、教工出生日期、教工职务、教工地址、教工电话号码和工资。教工信息录入如图5所示。图5 教工信息录入(3)教工信息的删除设计输入要删除的教工的教工号,先找到该教工的原始信息,然后显示并提示该教

6、工的信息删除成功。教工信息删除如图6所示。 图6 教工信息删除(4)教工信息的排序设计按照工资从小到大排序,选择排序后,提示输出按照工资从小到大排序成功。教工信息按照工资排序如图7所示。 图7 工资排序(5)教工信息的显示设计选择教工信息显示,显示出已存入的教工信息。教工信息的显示如图8所示。 图8 教工信息的显示(6)教工信息的修改设计选择要修改的教工的教工号,然后系统提示重新输入教工的教工号、教工名、教工出生日期、教工职务、教工地址、教工电话号码和工资。教工信息的修改如图9所示。 图9 教工信息的修改(7)教工信息的查询设计选择查询的方式,可以按教工号、教工名、教工职务查询。教工信息的查询

7、如图10所示。 图10 教工信息的查询3. 关键程序代码的分析(1) 系统的登录在主函数中,创建链表,输出教工信息系统的各功能提示。选择需要执行功能的序号,由switch判断、选择功能。选择1,执行教工基本信息的录入;选择2,执行教工基本信息的显示;选择3,执行教工基本信息的保存;选择4,执行教工基本信息的删除;选择5,执行教工工资按从高到低排序;选择6,执行教工基本信息的修改;选择7,执行教工基本信息的查询;选择8退出。 int main() tList tListMedic; tListMedic.Create(); /创建链表 ReadData(&tListMedic); while(1

8、) coutnn 教 工 管 理 系 统 nn; cout -nn; cout 1:教工信息录入nn; cout 2:教工信息显示nn; cout 3:教工信息保存nn; cout 4:教工信息删除nn; cout 5:按工资排序nn; cout 6:教工信息修改nn; cout 7:教工信息查询nn; cout 8:退 出 系 统 nn; coutchoose; switch(choose)/根据用户选择执行相关功能 case 1:AddTheTeacher(&tListMedic);/教工基本信息录入 break; case 2:Display(&tListMedic);/教工基本信息显示

9、 break; case 3:SaveData(&tListMedic); /教工基本信息保存 break; case 4:DeleteTheTeacher(&tListMedic);/教工基本信息删除 break; case 5:ArrangeData(&tListMedic); /教工按工资从小到大排序 break; case 6:ModifyTheTeacher(&tListMedic);/教工基本信息修改 break; case 7:FindTheTeacher(&tListMedic);/教工基本信息查询 break; case 8: exit(0);/退出 default:brea

10、k; return 0;(2) 信息的添加教工信息的添加,创建cTeacher类的tempTeacher对象,调用构造函数。提示输入“教工号”、“教工名”、“教工出生年月”、“教工职务”、“教工住址”、“教工电话号码”和“教工工资”,输入成功后显示“录入成功”。通过Insert函数录入教工的信息。void AddTheTeacher(tList *tListMedic)/录入教工函数 cTeacher tempTeacher; /定义临时教工 cout下面开始录入教工信息n; couttempTeacher.NUM;/读入教工号 couttempTeacher.Name;/读入教工名 cout

11、tempTeacher.Time;/读入出生日期 couttempTeacher.Post;/读入职务 couttempTeacher.Address;/读入住址 couttempTeacher.Phone;/读入电话号码 couttempTeacher.Pay;/读入工资 tempTeacher.flag=true; tListMedic-Insert(tempTeacher); cout录入成功!n; system(pause); system(cls);(3) 信息的删除删除教工信息,提示输入要删除的教工的教工号,定义一个指向链表第一个节点的指针p。如果指针创建成功,开始用while和i

12、f语句实现p指向的节点的教工号与存在的教工号的比较。如果相同,输出该教工的信息;如果没有相同的,提示没有所查询的教工。void DeleteTheTeacher(tList *tListMedic)/删除教工信息 char numSIZE; coutnum;/读取教工号 bool flag=false; int count=0; cNode *p; p=tListMedic-head-next; while(p) if(strcmp(p-data.NUM,num)=0 & p-data.flag) count+; flag=true; break; p=p-next; if(flag=fals

13、e) cout对不起,没有你所查询的教工!n;/如果找不到 else /如果找到了 count-; cout找到了,该教工的原始信息是:n; coutnn教工号:data).NUMt教工名:data).Namentt出生日期:data).Timentt职务:data).Post; coutntt住址:data).Addressntt电话号码:data).Phonentt工资data).Pay; coutdata).flag=false; cout该教工的信息删除成功!n; coutendl; system(pause); system(cls); return;(4) 信息的修改教工信息的修改

14、,提示输入要修改的教工的教工号,定义一个指向链表第一个节点的指针p。如果指针创建成功,开始用while和if语句实现p指向的节点的教工号与存在的教工号的比较。如果相同,提示重新输入教工的各个信息;如果没有相同的,提示没有所查询的教工。void ModifyTheTeacher(tList *tListMedic)/修改教工信息 char numSIZE; coutnum;/读取教工号 bool flag=false; cNode *p; p=tListMedic-head-next; while(p) if(strcmp(p-data.NUM,num)=0 & p-data.flag) fla

15、g=true; break; p=p-next; if(flag=false) cout对不起,没有你所查询的教工!n;/如果找不到 else /如果找到了 /显示屏幕 cout找到了,该教工的原始信息是:n; coutnn教工号:data).NUMt教工名:data).Namentt出生日期:data).Timentt职务:data).Post; coutntt住址:data).Addressntt电话号码:data).Phonentt工资data).Pay; coutn下面开始修改该教工的信息:n; cTeacher tempTeacher; /定义临时教工 couttempTeacher

16、.NUM;/读入教工号 couttempTeacher.Name;/读入教工名 couttempTeacher.Time;/读入出生日期 couttempTeacher.Post;/读入职务 couttempTeacher.Address;/读入住址 couttempTeacher.Phone;/读入电话号码 couttempTeacher.Pay;/读入工资 tempTeacher.flag=true; p-data=tempTeacher; cout修改成功!; coutendl; system(pause); system(cls); return;4. 系统的调试程序调试是将编制的程序

17、投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。编程结束后,经Debug调试发现在以下程序段出现错误:void ArrangeData(tList *tListMedic)/按照工资从小到大排序cNode *p, *q; cTeacher tempTeacher; for (p = tListMedic-head-next; p != NULL; p = p-next) for (q = p; q != NULL; q = q-next) if (p-data.Pay q-data

18、.Pay) tempTeacher.flag=p-data.flag; strcpy(tempTeacher.Address, p-data.Address); strcpy(tempTeacher.NUM,p-data.NUM); strcpy(tempTeacher.Name, p-data.Name); strcpy(tempTeacher.Time,p-data.Time); strcpy(tempTeacher.Post, p-data.Post); tempTeacher.Phone = p-data.Phone; tempTeacher.Pay = p-data.Pay; p-d

19、ata.flag = q-data.flag; strcpy(p-data.Address, q-data.Address); strcpy(p-data.NUM, q-data.NUM); strcpy(p-data.Name, q-data.Name); strcpy(p-data.Time, q-data.Time); strcpy(p-data.Post, q-data.Post); p-data.Phone = q-data.Phone; p-data.Pay = q-data.Pay; q-data.flag=tempTeacher.flag; strcpy(q-data.Addr

20、ess, tempTeacher.Address); strcpy(q-data.NUM,tempTeacher.NUM); strcpy(q-data.Name, tempTeacher.Name); strcpy(q-data.Time,tempTeacher.Time); strcpy(q-data.Post, tempTeacher.Post); q-data.Phone = tempTeacher.Phone; q-data.Pay = tempTeacher.Pay; cout按照工资从小到大排序成功endl;经过仔细的查找,发现在程序中有两个for语句和一个if语句,在程序末尾少

21、了一个”,修改后程序运行正确。三、总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.通过短短四天时间的课程设计,在无形的压力下提高了我的办事速度,锻炼了我的工作效率。课程设计是与实际接轨的,我通过网络了解了需要完成的教工信息管理系统的相关数据。然后对需要实现的功能进行分析、设计、编程和测试。面向对象程序设计作为一门软件设计课程,常用来解决一些实际问题。此次设计加强了我灵活应用理论知识的能力,也锻炼了我理论联系实际的技能。在设计过程中,总会遇到这样或那样的问题,如标识符大小写的问题,函数体缺少“”,以及有些函数没有事先声明等问题。一个小问题会引起一连串的错误,需要做大量的工作,花大量的时间才能解决。自然而然,培养了我的耐心。也为以后的工作积累了经验,增强了信心。本次设计使我对C+有了更深的认识和理解,让我认识到一个好的程序会给解决实际问题带来很大的便利。编程过程有一个清晰的编程思路是很重要的。我们学习的知识是有限的,在以后的工作中我们肯定会遇到更多未知领域的问题,锻炼这方面的能力会使我们受益匪浅。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1