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

下载本文档

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

文档简介

仅供个人参考仅供个人参考不得用于商业用途不得用于商业用途重庆科技学院Forpersonaluseonlyinstuyanresearch;notforcommercialuse《面向关于象程序设计》课程设计报告Forpersonaluseonlyinstuyanresearch;notforcommercialuseForpersonaluseonlyinstuyanresearch;notforcommercialuse学 :_电气与信息工程学_专业班:计科学生姓: 兰倩 学 :01设计地点(单位计算机自主学习中心 设计题: 公司员工信息管理系统设 Forpersonaluseonlyinstuyanresearch;notforcommercialuse2013118指导教师评: Forpersonaluseonlyinstuyanresearch;notforcommercialuse _成绩(五级记分制):指导教师(签字):Forpersonaluseonlyinstuyanresearch;notforcommercialuse重庆科技学院课程设计任务书学生姓名兰倩课程名称学生姓名兰倩课程名称面向关于象程序设计专业班级计科1103地点I304/I306起止时间201317~118设计内容及要求问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并且进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够关于公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。功能要求户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了反复编号的记录时,则提示数据添加反复并且取消添加。查询功能:可根据编号、姓名等信息关于已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;显示功能:可显示当前系统中一切记录,每条记录占据一行。一性。相应的人员记录,则提示“记录为空及总数,或者统计男、女员工的数量等信息。问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;分析系统中的各个实体及它们之间的关系;根据问题描述,设计系统的类层次;完成类层次中各个类的描述;完成类中各个成员函数的定义;完成系统的应用模块;功能调试;完成系统总结报告。根据题目要求,应用所学知识,完成设计和实现工作,并且依照书写规矩,撰写课程设计报告。设(1)系统分析、设计正确。计(2)参数(3)界面简捷、美观。(4)报告格式规矩。进周一:明确设计任务,学习相关基础知识度要周二:熟悉各知识点,进行基础练习求周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参[1]RicharJohnsonbaugh.MartinKalin.《面向关于象程序设计—C++语言描述》.考资机械工业出版社.2009年料[2]钱能.《C++语言程序设计教程》.清华大学出版社.2005年其它说明3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰/伍建焦晓陈应祖201311摘要所在部门、级别,并且进行关于工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。而日常生活中的人员管理有添加、查询、显示、编辑、删除和统计等基本功能。该程序也同样拥有这些功能。在程序运行开始,系统将首先进行的是从文件中读取数据,而只要管理人员正确的结束程序时,系统将自动保存所修改的数据。在系统运行66次操作失败,该界面将自动退出,若该页面为主页面,则退出该系统。关键字:公司管理雇员数据目录摘要 错误!未定义书签。第一章软件需求分析说明书 错误!未定义书签。第二章系统分析与设计 错误!未定义书签。软件界面设计 错误!未定义书签。软件的数据(结构)设计 错误!未定义书签。基类的私有成员 错误!未定义书签。错误!未定义书签。错误!未定义书签。软件的算法设计 错误!未定义书签。第三章软件的实现 错误!未定义书签。添加功能模块 错误!未定义书签。查询功能模块 错误!未定义书签。编辑功能模块 错误!未定义书签。删除功能模块 错误!未定义书签。统计功能模块 错误!未定义书签。第四章软件测试 错误!未定义书签。voi A();//添加功能 错误!未定义书签。voiFin();//查询人员 错误!未定义书签。voiPrint();//显示 错误!未定义书签。voiRewrite(); //修改人员 错误!未定义书签。voielete(); //删除人员 错误!未定义书签。voiSum();//统计 错误!未定义书签。第五章软件使用说明书 错误!未定义书签。致谢 错误!未定义书签。参考文献 错误!未定义书签。第一章软件需求分析说明书统计功能和退出系统。“添加”中有经理、技术人员、销售人员和销售经理四个类别可供用户选择,而其判定是否可供添加的依据是编号,在添加的人员类别中要求员工的编号要唯一。若输入的编号已存在,系统将给予提示并且提示是否继续;而当用户成功添加时,系统也会给予是否继续的提示,若继续,则反复上次操作,否则再按任意键返回主界面。在用户操作进程中,若用户输入错误,系统报错并且给予是否继续的提示。“查询”中有编号、姓名、性别、级别四个判断依据。其中级别有四个判断依据,1指经理,2指技术人员,3指销售人员,4指销售经理,当用户选择要查询的类别时,系统会显示相关的全部信息,若系统中不存在此信息,系统将会提示记录为空。在查询完成后,系统会给予是否继续的提示,若继续则反复操作,否则回到主界面。“显示”是显示当前系统中一切记录,每条记录占一行。若系统中不存在任何记录,系统将显示记录为空,并且按任意键回到主界面。“编辑”中有编号和姓名两个判断依据,用户可任意选择进行编辑,其中编号和性别是固定不变的,不能更改。在正确编辑或系统不存在用户所要编辑的信息时,系统会给予是否继续的提示,若继续则反复操作,否则按任意键回到主界面。“删除”中有编号、姓名、级别和一切记录四个判定依据,用户选择任意选项将自动删除所选删除的记录,若该系统数据为空,系统将显示记录为空,并且按任意键回到主界面。“统计”中有总数、男员工、女员工、经理、技术人员、销售人员和销售经理七个选项可供用户选择,而用户选择任意选项,系统将显示该类员工的人数,并且提示是否继续,若继续则反复操作,否则按任意键回到主界面。“退出系统”是系统结束的标志,而当用户选择该选项时,系统将保存所修改的数据。第二章系统分析与设计软件界面设计运行程序则出现2.12.16在图2.2中输入1,则图2.3添加功能添加功能的依据有经理、技术人员、销售人员和销售经理。在输入1后,则添加的类别属于经理类,若输入2则添加的类别属于技术人员类,若输入3则添加的类别属于4则添加的类别属于销售经理类,否则系统报错,而用户只要6次6次都失败,则退出该界面,按任意键回到主菜单。在添加进程中,必需满足编号的唯一性,若输入的编号存在,系统给出提示,若不存在,则继续输入操作。在完yn2.3所示。在图2.2中输入2,则图2.4查询功能31,系统将提示输入编号;2321,则显示一切男员工的信息,若输入2则显示一切女员工的信息;输入41^4个级别可供选择,其中1指销售经理,选择相应数字,则系2.4所示。在图2.2中输入3,则显示功能是显示当前记录的一切信息,若系统中不存在任何记录,则系统会显示记录为空。在显示功能中按任意键则回到主菜单。如图2.5所示。在图2.2中输入4,则编辑功能中有编号和姓名 ,则系统会要求输入需要编辑的编号,若该编号不存在,系统会给予提示,并且显示是否继续;若系统中存在该编号,则统会显示编号下的一切信息,并且提示编辑,当编辑完成,系统会提示是否继续。若输2,系统会要求输入需要编辑的姓名,其相关规则同编号选项类似。如图2.6所示。在图2.2中输入5,则1,则系统会提示输入要删除的编号,并且提示是否继续;若输入,则系统会提示输入要删除的姓名,这指34个部分组成,诀别是142.7所示。在图2.2中输入6,则2.8统计功能中有总数、男员工、女员工、经理、技术人员、销售人员、销售经理7判定依据。输入1 2,系统将显示男工的人数并且显示是否继续,其它 所示在图2.2中输入0,则图2.9退出系统当进入退出系统时,代表该程序结束,并且且在之前的操作进程中关于系统数据的修改也会自动保存在文件中,如图2.9所示。软件的数据(结构)设计基类的私有成员①string类型的number表示编号②string类型的name表示姓名③string类型的sex表示性别④string类型的epartment表示所在部门⑤int类型的sort表示级别oublewages工资vector<manage>M;//经理vector<technology>T;//技术人员vector<seller>S;//销售人员vector<leaer>L;//销售经理voiA(); //增加人voiFin(); //查询人员intFini(stringnum);//查找编号intFinname(stringnam_e);//查找姓名intFinsex(stringse);//查找性别intFinsort(int&sor);//查找级别voiPrint();//显示voiRewrite(); //修改人员voielete(); //voiSum();//统计voiRea();//读文件voiWrite();//写文件软件的算法设计111、添加功能22、查询功能33、显示功能主菜单请选择44、编辑功能(0^6)55、删除功能66、统计功能00、退出系统图2.10主菜单流程图11、经理2、技术人员添加功能请入员输雇的该编号已存在3、销售人员信息:是否继续(y/n)Y添加功能……4、销售经理n主菜单2.11添加功能流程图请请入号输编不存在1编号n主菜单查询功能2姓名姓名该姓名不存在……1男3性别记录是否继续为空2女4级别请输入你要查询的Y查询功能图2.12查询功能流程图11、编号请入输编不存在号:Y 编辑功能编辑功能……2、姓名请入名输姓是否继续(y/n)N 主菜单不存在图2.13编辑功能11、编号请输入编号:2、姓名请输入姓名:删除功能3、级别(1^:删除成功是否继续(n)Y删除功能主菜单4、一切记录图2.13删除功能11、总数2、男员工Y 添加功能3、女员工统计功能4、经理***人数为:是否继续(y/n)N 主菜单5、技术人员6、销售人员7、销售经理图2.14统计功能第三章软件的实现添加功能模块添加功能模块中有经理、技术人员、销售人员和销售经理4个选项。选择选项后要判断要添加的信息中的编号是否存在,若输入的编号存在,提示该编号已存在,若不存在,则执行下步操作。在添加时,要关于类别进行判定,并且将添加的信息压入该类别的向量的末尾。完成操作后,将判断是否继续,若继续则执行递归。其伪代码如下:voicompany::A()定义数据类型a:cout<<"\n\n\t添加功能\n";cout<<"1、经理2、技术人员\n\n";cout<<"3、销售人员4、销售经理\n\n";cout<<"请选择(1^4):";sor=choice(4,1);//判定输入的sor必需是1^4中的数字if(!sor)return;cout<<"请输入雇员的信息:\n";cout<<"编号:";fflush(stin);cin>>num;cin.clear();……//判断编号是否存在……//在输入的编号不存在的情况下编辑信息if(sor==x){……//判断添加的信息的类别并且加入该类别的向量中}cin.clear();if(juge())//判定是否继续A();//继续则反复操作}查询功能模块4choice(inta,intb)ba作中再判定输入的值并且调用相关函数,以达到查询的目的。其伪代码如下:voicompany::Fin(){……//定义数据类型cout<<"\n\n\t\t查询功能\n\n";cout<<"\t1、编号 2、姓名\n\n";cout<<"\t3、性别 4、级别cout<<"请选择(1^4):";x=choice(4,1);//判定输入的x必需是1^4中的数字if(x==1){if(Fini(num))Fin();//Fini(num)1结束查找。else return;}if(x==2){if(Finname(nam))else return;}//查找姓名,若Finname(nam)返回值为1,则继续查找,否则结束查找。if(x==3){if(Finsex(se))else return;;}//查找性别,若Finsex(se)返回值为1,则继续查找,否则结束查找。if(x==4){if(Finsort(sor))else return;;}}//查找级别,若Finsort(sor)返回值为1,则继续查找,否则结束查找。编辑功能模块2个选择,它的函数制作的思路是判定该编号或姓名是否存在,在存在的情况下判定它存在的类别,找到所处的类别并且把它的编号和性别记录下来,并且删除该编号或姓名下的相关信息,然后添加除编号和性别以外的信息,根据添加的信息判定添加的类别,然后将添加的信息压入该类别的向量中,从而达到编辑的目的。其伪代码如下:voicompany::Rewrite(){……//定义数据类型cout<<"\n\n\t\t编辑功能\n\n";cout<<"\t1、编号 2、姓名cout<<"请选择序号(1/2):";x=choice(2,1);if(!x)return;if(……){……}//判断x的值cin.clear();for(i=0;i<M.size();i++){……}//删除该编号或该姓名下的全部信息if(t==0){……}//该编号或姓名不存在else{……//该编号或姓名存在,并且编辑……//判定编辑的类别并且压入相关类别的向量中}cin.clear();if(juge()) Rewrite();//判断是否继续}删除功能模块删除功能模块中首先判断的是记录是否为空,若为空则停滞操作,否则继续下步操作。选择要删除的类别的序号则可删除关于应的记录,若删除成功,系统会有所提示;若删除的信息不存在,系统会显示该信息不存在。其伪代码如下:voicompany::elete(){……定义数据类型if(M.empty()&&T.empty()&&S.empty()&&L.empty()){cout<<"记录为空!\n";return;}//判断记录是否为空,若为空,则停滞操作,否则执行下面操作cout<<"\n\n\t\t删除功能\n\n";cout<<"\t1、编号 2、姓名\n\n";cout<<"\t3、级别 4、一切记录cout<<"请选择序号(1^4):";x=choice(4,1);if(!x)return;if(x==1||x==2){……输入要删除的编号或姓名for(i=0;i<M.size();i++)if(M[i].getnumber()==num||M[i].getname()==nam){m=1;M.erase(&M[i]); }for(i=0;i<T.size();i++)if(T[i].getnumber()==num||T[i].getname()==nam){m=1;T.erase(&T[i]); }for(i=0;i<S.size();i++)if(S[i].getnumber()==num||S[i].getname()==nam){m=1;S.erase(&S[i]); }for(i=0;i<L.size();i++)if(L[i].getnumber()==num||L[i].getname()==nam){m=1;L.erase(&L[i]); }} //删除该编号或姓名下的全部信息if(x==3){cout<<"请输入级别(1^4):";t=choice(4,1);if(!t)return;//0if(t==1){m=1;M.clear();}//if(t==2)if(t==3){m=1;S.clear();}//if(t==4){m=1;L.clear();}//若选择销售经理类,则删除一切经理类的信息}if(x==4)if(m==0)cout<<"该信息不存在!\n";elsecout<<"删除成功\n";cin.clear();if(juge())elete();//判断是否继续}统计功能模块7size()函数来获取人数,其中的男、女员工是经过sum来计数的。其伪代码如下:voicompany::Sum(){……定义数据类型cout<<"\n\n\t\t统计功能\n\n";cout<<"\t1、总数 2、男员工\n\n";cout<<"\t3、女员工 4、经理\n\n";cout<<"\t5、技术人员 6、销售人员cout<<"\t7、销售经理 \n\n";cout<<"请选择序号(1^7):";x=choice(7,1);if(!x) if(x==1)cout<<"\n总人数为:"<<M.size()+T.size()+S.size()+L.size()<<enl;elseif(x==2||x==3){for(i=0;i<M.size();i++)if(M[i].getsex()=="男") for(i=0;i<T.size();i++)if(T[i].getsex()=="男") sum++;for(i=0;i<S.size();i++)if(S[i].getsex()=="男") for(i=0;i<L.size();i++)if(L[i].getsex()=="男") sum++;if(x==2) cout<<"\n男员工人数为:elsecout<<"\n女员工人数为:"<<M.size()+T.size()+S.size()+L.size()-sum<<enl;}elseif(x==4) cout<<"\n经理人数为:"<<M.size()<<enl;elseif(x==5) cout<<"\n技术人员人数:"<<T.size()<<enl;elseif(x==6) cout<<"\n销售人员人数:"<<S.size()<<enl;else cout<<"\n销售经理人数:"<<L.size()<<enl;if(juge()) Sum();}第四章软件测试voi A();//添加功能用例:input:1input:1001input:tttinput:女input:财务部门input:4444用例:input:1input:1001是否继续(y/n):voiFin();//input:4input:1input:1input:1999voiPrint();//显示如图2.5所示

output:请输入雇员的信息:编号:output:姓名output:性别output:部门output:工资output:是否继续(y/n):output:请输入雇员的信息:编号:output:该编号已存在output:请输入你要查询的级别(1^4):output:……是否继续(y/n):output:请输入编号output:该编号不存在是否继续(y/n):voiRewrite(); //修改人员用例:input:1 output:请输入编号:input:1003 output:该编号步存是否继续(y/n):用例:input:1001 output:……请编辑姓名:input:tt output:所在部门:input:财务部门 output:级别:input:

温馨提示

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

评论

0/150

提交评论