公司员工信息管理系统设计.doc_第1页
公司员工信息管理系统设计.doc_第2页
公司员工信息管理系统设计.doc_第3页
公司员工信息管理系统设计.doc_第4页
公司员工信息管理系统设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆科技学院面向对象程序设计课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科1103 学生姓名: 兰倩 学 号: 2011442001 设计地点(单位)_计算机自主学习中心 _ _设计题目:_公司员工信息管理系统设计_ 完成日期: 2013 年1月18日 指导教师评语: _ _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院 课程设计任务书设计题目:公司员工信息管理系统设计学生姓名兰倩课程名称面向对象程序设计专业班级计科1103地 点I304/I306起止时间2013年1月7日1月18日设计内容及要求1)问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。2)功能要求(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量等信息。3)问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参考资料1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2009年2钱能.+语言程序设计教程.清华大学出版社.2005年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军/伍建全/焦晓军/陈应祖 2013年1月1日摘要本程序是能够对公司人员进行管理,而公司需要存储的是雇员的编号、姓名、性别、所在部门、级别,并进行对工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。而日常生活中的人员管理有添加、查询、显示、编辑、删除和统计等基本功能。该程序也同样拥有这些功能。在程序运行开始,系统将首先进行的是从文件中读取数据,而只要管理人员正确的结束程序时,系统将自动保存所修改的数据。在系统运行中,必须按照提示进行操作,否则系统报错,而往往操作人员只有6次机会,若连续6次操作失败,该界面将自动退出,若该页面为主页面,则退出该系统。关键字:公司 管理 雇员 数据目录摘要3第一章 软件需求分析说明书5第二章 系统分析与设计62.1 软件界面设计62.2 软件的数据(结构)设计102.2.1 基类的私有成员102.2.2公司对各派生类的管理中的私有成员102.2.3主要函数102.3 软件的算法设计11第三章 软件的实现153.1 添加功能模块153.2 查询功能模块163.3 编辑功能模块163.4 删除功能模块173.5 统计功能模块19第四章 软件测试214.1 void Add();/添加功能214.2 void Find(); /查询人员214.3 void Print();/显示214.4 void Rewrite(); /修改人员224.5 void Delete(); /删除人员224.6 void Sum(); /统计22第五章 软件使用说明书23致谢25参考文献26第一章 软件需求分析说明书 本产品共包含七大功能:添加功能、查询功能、显示功能、编辑功能、删除功能、统计功能和退出系统。“添加”中有经理、技术人员、销售人员和销售经理四个类别可供用户选择,而其判定是否可供添加的依据是编号,在添加的人员类别中要求员工的编号要唯一。若输入的编号已存在,系统将给予提示并提示是否继续;而当用户成功添加时,系统也会给予是否继续的提示,若继续,则重复上次操作,否则再按任意键返回主界面。在用户操作过程中,若用户输入错误,系统报错并给予是否继续的提示。“查询”中有编号、姓名、性别、级别四个判断依据。其中级别有四个判断依据,1指经理,2指技术人员,3指销售人员,4指销售经理,当用户选择要查询的类别时,系统会显示相关的全部信息,若系统中不存在此信息,系统将会提示记录为空。在查询完成后,系统会给予是否继续的提示,若继续则重复操作,否则回到主界面。“显示”是显示当前系统中所有记录,每条记录占一行。若系统中不存在任何记录,系统将显示记录为空,并按任意键回到主界面。“编辑”中有编号和姓名两个判断依据,用户可任意选择进行编辑,其中编号和性别是固定不变的,不能更改。在正确编辑或系统不存在用户所要编辑的信息时,系统会给予是否继续的提示,若继续则重复操作,否则按任意键回到主界面。“删除”中有编号、姓名、级别和所有记录四个判定依据,用户选择任意选项将自动删除所选删除的记录,若该系统数据为空,系统将显示记录为空,并按任意键回到主界面。“统计”中有总数、男员工、女员工、经理、技术人员、销售人员和销售经理七个选项可供用户选择,而用户选择任意选项,系统将显示该类员工的人数,并提示是否继续,若继续则重复操作,否则按任意键回到主界面。“退出系统”是系统结束的标志,而当用户选择该选项时,系统将保存所修改的数据。第二章 系统分析与设计2.1 软件界面设计运行程序则出现 图2.1 制作人显示 按任意键到主菜单 图2.2 主菜单 在主菜单中输入相应的序号在进入对应的界面,若输入非主菜单中的序号,系统会报错并要求重新输入,而用户只要6次机会。在图2.2中输入1,则 图2.3 添加功能添加功能的依据有经理、技术人员、销售人员和销售经理。在输入1后,则添加的类别属于经理类,若输入2则添加的类别属于技术人员类,若输入3则添加的类别属于销售人员类,若输入4则添加的类别属于销售经理类,否则系统报错,而用户只要6次机会,若6次都失败,则退出该界面,按任意键回到主菜单。在添加过程中,必须满足编号的唯一性,若输入的编号存在,系统给出提示,若不存在,则继续输入操作。在完成操作后,系统会给出是否继续的的提示,若输入y或Y,则重复操作,若输入n或N,则再按任意键回到主菜单,如图2.3所示。 在图2.2中输入2,则 图2.4 查询功能查询功能中有编号、姓名、性别和级别3个依据,输入1,系统将提示输入编号;输入2,系统将提示输入姓名;输入3则男和女2中判定依据,再其中输入1,则显示所有男员工的信息,若输入2则显示所有女员工的信息;输入4则又14个级别可供选择,其中1指经理,2指技术人员,3指销售人员,4指销售经理,选择相应数字,则系统将显示相应的所有信息。在系统操作中,若要查询对象不存在,系统将给予提示,并显示是否继续查询。而若完成一次操作后,系统也将提示是否继续查询,若继续,则重复操作,否则按任意键回到这菜单,如图2.4所示。在图2.2中输入3,则 图2.5 显示功能显示功能是显示当前记录的所有信息,若系统中不存在任何记录,则系统会显示记录为空。在显示功能中按任意键则回到主菜单。如图2.5所示。在图2.2中输入4,则 图2.6 编辑功能编辑功能中有编号和姓名2个判定依据,输入1,则系统会要求输入需要编辑的编号,若该编号不存在,系统会给予提示,并显示是否继续;若系统中存在该编号,则系统会显示编号下的所有信息,并提示编辑,当编辑完成,系统会提示是否继续。若输入2,系统会要求输入需要编辑的姓名,其相关规定同编号选项类似。如图2.6所示。在图2.2中输入5,则 图2.7 删除功能 删除功能有编号、姓名、级别和所有记录4个判定依据。输入1,则系统会提示输入要删除的编号,并提示是否继续;若输入2,则系统会提示输入要删除的姓名,这指代删除系统中首次出现的该姓名;若输入3,怎系统会提示输入级别,而级别有4个部分组成,分别是1经理,2技术人员,3销售人员,4销售经理,输入其代表的数字,便可删除相应的类别;若输入4,则系统将删除所有记录。如图2.7所示。 在图2.2中输入6,则 图2.8 统计功能 统计功能中有总数、男员工、女员工、经理、技术人员、销售人员、销售经理7个判定依据。输入1,系统将显示总人数,并显示是否继续;若输入2,系统将显示男员工的人数并显示是否继续,其它5个类别也类似,如图2.8所示。 在图2.2中输入0,则 图2.9 退出系统当进入退出系统时,代表该程序结束,并且在之前的操作过程中对系统数据的修改也会自动保存在文件中,如图2.9所示。2.2 软件的数据(结构)设计 2.2.1 基类的私有成员string类型的number表示编号string类型的name表示姓名string类型的sex表示性别 string类型的department表示所在部门 int类型的sort表示级别 double 类型的wages工资 2.2.2公司对各派生类的管理中的私有成员vectorM;/经理 vectorT;/技术人员 vectorS;/销售人员 vectorL;/销售经理 2.2.3主要函数void Add(); /增加人员 void Find(); /查询人员 int Findid(string num);/查找编号 int Findname(string nam_e);/查找姓名 int Findsex(string se);/查找性别 int Findsort(int &sor);/查找级别 void Print();/显示 void Rewrite(); /修改人员 void Delete(); /删除人员 void Sum(); /统计 void Read();/读文件 void Write();/写文件2.3 软件的算法设计 主菜单1、添加功能2、查询功能3、显示功能4、编辑功能5、删除功能6、统计功能0、退出系统6054321请选择(06) 图2.10 主菜单流程图添加功能1、经理2、技术人员3、销售人员4、销售经理请输入雇员的信息:该编号已存在是否继续(y/n)Y添加功能n主菜单 图2.11 添加功能流程图查询功能1编号2姓名3性别4级别请输入编号该编号不存在请输入姓名1男2女请输入你要查询的级别(14)该姓名不存在记录为空是否继续n主菜单Y查询功能 图2.12 查询功能流程图编辑功能1、编号2、姓名请输入编号:请输入姓名该编号不存在该姓名不存在是否继续(y/n)Y编辑功能N主菜单 图2.13 编辑功能删除功能1、编号2、姓名3、级别4、所有记录请输入编号:请输入姓名:请输入级别(14):删除成功是否继续(y/n)Y删除功能主菜单 图2.13 删除功能统计功能1、总数2、男员工3、女员工4、经理5、技术人员6、销售人员7、销售经理*人数为:是否继续(y/n)Y添加功能N主菜单 图2.14 统计功能第三章 软件的实现3.1 添加功能模块 添加功能模块中有经理、技术人员、销售人员和销售经理4个选项。选择选项后要判断要添加的信息中的编号是否存在,若输入的编号存在,提示该编号已存在,若不存在,则执行下步操作。在添加时,要对类别进行判定,并将添加的信息压入该类别的向量的末尾。完成操作后,将判断是否继续,若继续则执行递归。其伪代码如下:void company:Add()/定义数据类型a:coutnnt添加功能n;cout1、经理 2、技术人员nn;cout3、销售人员 4、销售经理nn;cout请选择(14):;sor=choice(4,1);/判定输入的sor必须是14中的数字if(!sor)return;cout请输入雇员的信息:n;coutnum;cin.clear();/判断编号是否存在/在输入的编号不存在的情况下编辑信息if(sor=x)/判断添加的信息的类别并加入该类别的向量中cin.clear();if(judge()/判定是否继续Add();/继续则重复操作3.2 查询功能模块 查询功能模块中有编号、姓名、性别和级别4个选项,其中首先调用的是choice(int a,int b),它的作用是判断输入的必须是数字,且大于等于b,小于等于a的,在下步操作中再判定输入的值并调用相关函数,以达到查询的目的。其伪代码如下:void company:Find()/定义数据类型coutnntt查询功能nn;coutt1、编号 2、姓名nn;coutt3、性别 4、级别nn;cout请选择(14):;x=choice(4,1); /判定输入的x必须是14中的数字if(x=1) if(Findid(num) Find();/查找编号,若Findid(num)返回值为1,则继续查找,否则结束查找。 else return;if(x=2)if(Findname(nam) Find(); else return;/查找姓名,若Findname(nam)返回值为1,则继续查找,否则结束查找。if(x=3) if(Findsex(se) Find(); else return;/查找性别,若Findsex(se)返回值为1,则继续查找,否则结束查找。if(x=4)if(Findsort(sor) Find(); else return;/查找级别,若Findsort(sor)返回值为1,则继续查找,否则结束查找。3.3 编辑功能模块 编辑功能模块包含有编号和姓名2个选择,它的函数制作的思路是判定该编号或姓名是否存在,在存在的情况下判定它存在的类别,找到所处的类别并把它的编号和性别记录下来,并删除该编号或姓名下的相关信息,然后添加除编号和性别以外的信息,根据添加的信息判定添加的类别,然后将添加的信息压入该类别的向量中,从而达到编辑的目的。其伪代码如下:void company:Rewrite()/定义数据类型coutnntt编辑功能nn;coutt1、编号 2、姓名nn;cout请选择序号(1/2):;x=choice(2,1);if(!x) return;if()/判断x的值cin.clear();for(i=0;iM.size();i+) /删除该编号或该姓名下的全部信息if(t=0)/该编号或姓名不存在else/该编号或姓名存在,并编辑/判定编辑的类别并压入相关类别的向量中cin.clear();if(judge() Rewrite();/判断是否继续3.4 删除功能模块 删除功能模块中首先判断的是记录是否为空,若为空则停止操作,否则继续下步操作。选择要删除的类别的序号则可删除对应的记录,若删除成功,系统会有所提示;若删除的信息不存在,系统会显示该信息不存在。其伪代码如下:void company:Delete()定义数据类型if(M.empty()&T.empty()&S.empty()&L.empty()cout记录为空!n;return ;/判断记录是否为空,若为空,则停止操作,否则执行下面操作coutnntt删除功能nn;coutt1、编号 2、姓名nn;coutt3、级别 4、所有记录nn;cout请选择序号(14):;x=choice(4,1);if(!x)return ;if(x=1|x=2)输入要删除的编号或姓名 for(i=0;iM.size();i+) if(Mi.getnumber()=num|Mi.getname()=nam) m=1;M.erase(&Mi); for(i=0;iT.size();i+) if(Ti.getnumber()=num|Ti.getname()=nam) m=1; T.erase(&Ti); for(i=0;iS.size();i+) if(Si.getnumber()=num|Si.getname()=nam)m=1;S.erase(&Si); for(i=0;iL.size();i+) if(Li.getnumber()=num|Li.getname()=nam)m=1;L.erase(&Li);/删除该编号或姓名下的全部信息if(x=3)cout请输入级别(14):;t=choice(4,1);if(!t) return;/若为0则停止操作if(t=1)m=1;M.clear();/若选择经理类,则删除所有经理类的信息if(t=2)m=1;T.clear();/若选择技术人员类,则删除所有经理类的信息if(t=3)m=1;S.clear();/若选择销售人员类,则删除所有经理类的信息if(t=4)m=1;L.clear();/若选择销售经理类,则删除所有经理类的信息if(x=4)M.clear();T.clear();S.clear();L.clear();m=1;/删除所有记录if(m=0)cout该信息不存在!n;elsecout删除成功n;cin.clear();if(judge()Delete();/判断是否继续3.5 统计功能模块 统计功能模块中包含总数、男员工、女员工、经理、技术人员、销售人员和销售经理7个选择,主要运用了函数自带的size()函数来获取人数,其中的男、女员工是通过sum来计数的。其伪代码如下:void company:Sum()定义数据类型coutnntt统计功能nn;coutt1、总数 2、男员工nn;coutt3、女员工 4、经理nn;coutt5、技术人员 6、销售人员nn;coutt7、销售经理 nn;cout请选择序号(17):;x=choice(7,1);if(!x) return;if(x=1)coutn总人数为: M.size()+T.size()+S.size()+L.size()endl;else if(x=2|x=3)for(i=0;iM.size();i+) if(Mi.getsex()=男) sum+; for(i=0;iT.size();i+) if(Ti.getsex()=男) sum+; for(i=0;iS.size();i+) if(Si.getsex()=男) sum+; for(i=0;iL.size();i+) if(Li.getsex()=男) sum+;if(x=2) coutn男员工人数为: sumendl;else coutn女员工人数为: M.size()+T.size()+S.size()+L.size()-sumendl;else if(x=4) coutn经理人数为: M.size()endl;else if(x=5) coutn技术人员人数: T.size()endl;else if(x=6) coutn销售人员人数: S.size()endl;else coutn销售经理人数: L.size()endl;if(judge() Sum(); 第四章 软件测试4.1 void Add();/添加功能用例:input:1 output:请输入雇员的信息: 编号: input:1001 output:姓名 input:ttt output:性别 input:女 output:部门 input:财务部门 output:工资 input:4444 output:是否继续(y/n):用例:input:1 output:请输入雇员的信息: 编号: input:1001 output:该编号已存在 是否继续(y/n):4.2 void Find(); /查询人员用例:input:4 output:请输入你要查询的级别(14): input:1 output: 是否继续(y/n):用例:input:1 output:请输入编号 input:1999 output:该编号不存在 是否继续(y/n): 4.3 void Print();/显示 如图2.5所示4.4 void Rewrite(); /修改人员 用例:input:1 output:请输入编号: input:1003 output:该编号步存在 是否继续(y/n):用例:input:1001 output: 请编辑: 姓名: input: tt output:所在部门: input:财务部门 output:级别: input:3 output:工资 input:5555 output:是否继续(y/n):4.5 void Delete(); /删除人员 用例:input:2 output:请输入要删除的姓名: input:aaa output:该信息不存在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论