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

下载本文档

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

文档简介

重庆科技学院《面向对象程序设计》课程设计报告学院:电气与信息工程学院 专业班级:计科1103学生姓名:兰倩口号:201144200100000000 计算机自主学习中心设计题目:公司员工信息管理系统设计完成日期:2013年1月18日指导教师评语:成绩0五级记分制0指导教师0签字0重庆科技学院课程设计任务书设计题目:公司员工信息管理系统设计学生姓名兰倩Ei面向对象程序设计 专业班级计科1103地 点I304/I306 起止时间2013年1月700^^1月18日设计内容及要求1□□□□□某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。设计一程序能够对公司人员进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入 /输出等内容。2□□□□□(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空! ”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。(6)统计功能:能根据多种参数进行人员的统计。例如,统计四类人员数量以及总数,或者统计男、女员工的数量等信息。3□□□□□□□□根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)0000;(8)完成系统总结报告。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写□□设计报告。 设(1)系统分析、设计正确。计(2)结果以图表方式显示。参数(3)界面简洁、美观。(4)报告格式规范。进周一:明确设计任务,学习相关基础知识度要周二:熟悉各知识点,进行基础练习求周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:程序测试参[1]RiChardJohnsonbaugh.MartinKalin.《面向对象程序设计— C++语言描述》.考资机械工业出版社 .2009年J_[2]钱能.《口++语言程序设计教程》 .清华大学出版社 .2005年其它说0.本表应在每次实施前一周由负责教师填写二份, 院系审批后交院系办备案,一份明由负责教师留用。口 .若填写内容较多可口纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军 /伍建全 /焦晓军 /陈应祖2013年1月1日摘要本程序是能够对公司人员进行管理,而公司需要存储的是雇员的编号、姓名、性别、所在部门、级别,并进行对工资的计算。其中,雇员分为经理、技术人员、销售人员和销售经理。而日常生活中的人员管理有添加、查询、显示、编辑、删除和统计等基本功能。该程序也同样拥有这些功能。在程序运行开始,系统将首先进行的是从文件中读取数据,而只要管理人员正确的结束程序时,系统将自动保存所修改的数据。在系统运行中,必须按照提示进行操作,否则系统报错,而往往操作人员只有6次机会,若连续6次操作失败,该界面将自动退出,若该页面为主页面,则退出该系统。关键字:公司管理雇员数据目录\o"CurrentDocument"摘要 3\o"CurrentDocument"第一章 软件需求分析说明书 5\o"CurrentDocument"第二章 系统分析与设计 6\o"CurrentDocument"软件界面设计 6\o"CurrentDocument"软件的数据(结构)设计 10基类的私有成员 10公司对各派生类的管理中的私有成员 10主要函数 10\o"CurrentDocument"软件的算法设计 11\o"CurrentDocument"第三章 软件的实现 15\o"CurrentDocument"添加功能模块 15\o"CurrentDocument"查询功能模块 16\o"CurrentDocument"编辑功能模块 16\o"CurrentDocument"删除功能模块 17\o"CurrentDocument"统计功能模块 19\o"CurrentDocument"第四章 软件测试 21voidAdd();〃添加功能 21voidFind();//查询人员 21voidPrint();//显示 21voidRewrite();//修改人员 22voidDelete();//删除人员 22voidSum();//统计 22\o"CurrentDocument"第五章软件使用说明书 23\o"CurrentDocument"致谢 25\o"CurrentDocument"参考文献 26第一章软件需求分析说明书本产品共包含七大功能:添加功能、查询功能、显示功能、编辑功能、删除功能、统计功能和退出系统。“添加”中有经理、技术人员、销售人员和销售经理四个类别可供用户选择,而其判定是否可供添加的依据是编号,在添加的人员类别中要求员工的编号要唯一。若输入的编号已存在,系统将给予提示并提示是否继续;而当用户成功添加时,系统也会给予是否继续的提示,若继续,则重复上次操作,否则再按任意键返回主界面。在用户操作过程中,若用户输入错误,系统报错并给予是否继续的提示。“查询”中有编号、姓名、性别、级别四个判断依据。其中级别有四个判断依据,1指经理,2指技术人员,3指销售人员,4指销售经理,当用户选择要查询的类别时,系统会显示相关的全部信息,若系统中不存在此信息,系统将会提示记录为空。在查询完成后,系统会给予是否继续的提示,若继续则重复操作,否则回到主界面。“显示”是显示当前系统中所有记录,每条记录占一行。若系统中不存在任何记录,系统将显示记录为空,并按任意键回到主界面。“编辑”中有编号和姓名两个判断依据,用户可任意选择进行编辑,其中编号和性别是固定不变的,不能更改。在正确编辑或系统不存在用户所要编辑的信息时,系统会给予是否继续的提示,若继续则重复操作,否则按任意键回到主界面。“删除”中有编号、姓名、级别和所有记录四个判定依据,用户选择任意选项将自动删除所选删除的记录,若该系统数据为空,系统将显示记录为空,并按任意键回到主界面。“统计”中有总数、男员工、女员工、经理、技术人员、销售人员和销售经理七个选项可供用户选择,而用户选择任意选项,系统将显示该类员工的人数,并提示是否继续,若继续则重复操作,否则按任意键回到主界面。“退出系统”是系统结束的标志,而当用户选择该选项时,系统将保存所修改的数据。第二章系统分析与设计2.1软件界面设计运行程序则出现按任意键到主菜单欢迎进入公司员工信息管理系统制作人:2011442001兰倩计科1103请按任意做EH在主菜单中输入相报错并要求重新输入,而公司员工信息管理系统1.添加功能2、查询功能3、显示功能士编辑功能5、删除功能I统计功能应的界面^户只要S次非主菜单中的序号,系统会在图2.2中输入1,则添加功能卜经理2、技术人员k销售人员4、销售经理息y4信?>:›:的在ZnF员工存S<1雇00已续择入:1口系选物系否请需编该是添加功能L经理2、技术人员3、销售人员4、销售经理玛r≡置物『告别S-员24信

:JTT

>√±ΣL自.j∣2j-∣■图2.3添加功能添加功能的依据有经理、技术人员、销售人员和销售经理。在输入1后,则添加的类别属于经理类,若输入2则添加的类别属于技术人员类,若输入3则添加的类别属于销售人员类,若输入4则添加的类别属于销售经理类,否则系统报错,而用户只要6次机会,若6次都失败,则退出该界面,按任意键回到主菜单。在添加过程中,必须满足编号的唯一性,若输入的编号存在,系统给出提示,若不存在,则继续输入操作。在完成操作后,系统会给出是否继续的的提示,若输入y或Y,则重复操作,若输入n或N,则再按任意键回到主菜单,如图2.3所示。在图2.2中输入2,则查询功能k编号2、姓名>::!在Znλ4号存口U<1编不续4S择人口扉

恺选■否3.请请该是查询功能h编号a.姓名4,级别3,性别4情选择《广外:工情输入编号"则1001now男是否继续市场营销4444查询功能图编号2,姓名4查询功能输入2,系统所有男员工的择,其中1指工级别信息择若输):3输入H经理择:指显所有统将显示相应显示是否继续1001st息now查询。。而若完成宣销部门,life4000统将4444示选系并重司性别的器统男1复操作,否则按任意键回到这菜单,如图2.4所示。在图2.2中输入3,则显示功能当前所有记录;L3 ttt trw! hi sti2 st16 steL0Θ1 not!L0ΘΞ make青按任意键继续□UUUUΠ⅛HJ7JΓ71JlΓ71JlΓ71JlΓ71JlJ7J-τqJ7Jg口±J口±J口±J口±J口±J口韦U-司隹易销罩销营昔聿营1111124440β040004000400040004000444435ββ女女√WR寅篇显示功能是显示当前记录的所有信息,若系统中不存在任何记录,则系统会显示记录为空。在显示功能中按任意键则回到主菜单。如图2.5所示。在图2.2中输入4,则编辑功能1.编号2、姓名请选择序号(1/2):1请输入编号:iæs该编号不存在!是否继续(y∕n):y号,编辑功能中

若该编号不编辑功能1.编号2、姓名请选择序号(1/2):1请输入编号il∞2100Ξmake女 营销部门 4 3500请编辑:姓名:smile所在部门:财务部门级别:1工资:日。。。有编号和姓MB霞壬系统会给B要编辑的编编号,则系统会显示编号下的所有信息,并提示编辑,当编辑完成,系统会提示是否继续。若输入2,系统会要求输入需要编辑的姓名,其相关规定同编号选项类似。如图2.6所示。在图2.2中输入5,则删除功能,编号 人姓名3、级别 如所有记录请选择序号(T4):l请输入要删除的编号:1001删除成功!是否继续Wn):y删除功能,编号 人姓名队级别 如所有记录删除功能有编号、入要删除的编号,并提MMlnʃlɪ.^[L.W卬爨ES续≡否;,输入1,则系统会提示输输入要删除的姓名,这指入级别,而级别有4个部分组成,分别是1经理,2技术人员,3销售人员,4销售经理,输入其代表的数字,便可删除相应的类别;若输入4,则系统将删除所有记录。如图2.7所示。在图2.2中输入6,则统计功能男员工女员工5%经理*技术人员销售人员销售经理情选择序号(Tt)"总人数为:7是否维续(y∕n):y统计功能男员工女员工经理统计功能中有总数

判定依据。输入1,系

工的人数并显示是否继在图2.2中输入0,5%技术人员销售经理请选择序号(IP:3销售人员售人员、销售经理7个入2,系统将显示男员。女员工人数为:5是否继续(y∕n):n请按任意键继续...系统已退出,谢谢使用,欢迎再次光临!Pressanykeytocontinue图2.9退出系统当进入退出系统时,代表该程序结束,并且在之前的操作过程中对系统数据的修改也会自动保存在文件中,如图2.9所示。软件的数据(结构)设计基类的私有成员①String类型的number表示编号②String类型的name表示姓名③String类型的SeX表示性别④string类型的department表示所在部门⑤int类型的sort表示级别⑥double类型的wages工资公司对各派生类的管理中的私有成员VeCtor<manage>M;〃经理VeCtor<technology>T;〃技术人员VeCtor<seller>S;〃销售人员VeCtor<leader>L;〃销售经理主要函数VoidAdd(); //增加人员VoidFind();//查询人员intFindid(Stringnum);〃查找编号intFindname(Stringnam_e);〃查找姓名intFindsex(stringse);〃查找性别intFindsort(int&sor);〃查找级别voidPrint();//显示VoidRewrite();//修改人员voidDelete(); //删除人员voidSum();//统计voidRead();//读文件voidWrite();//写文件软件的算法设计图2.10主菜单流程图添加功能图2.11添加功能流程图图2.12查询功能流程图图2.13编辑功能图2.13删除功能图2.14统计功能第三章软件的实现添加功能模块添加功能模块中有经理、技术人员、销售人员和销售经理4个选项。选择选项后要判断要添加的信息中的编号是否存在,若输入的编号存在,提示该编号已存在,若不存在,则执行下步操作。在添加时,要对类别进行判定,并将添加的信息压入该类别的向量的末尾。完成操作后,将判断是否继续,若继续则执行递归。其伪代码如下:voidcompany::Add(){……//定义数据类型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(stdin);cin>>num;cin.clear();……//判断编号是否存在……//在输入的编号不存在的情况下编辑信息if(Sor==x){……//判断添加的信息的类别并加入该类别的向量中}cin.clear();if(judge())//判定是否继续Add();〃继续则重复操作}查询功能模块查询功能模块中有编号、姓名、性别和级别4个选项,其中首先调用的是ChOiCe(inta,intb),它的作用是判断输入的必须是数字,且大于等于b,小于等于a的,在下步操作中再判定输入的值并调用相关函数,以达到查询的目的。其伪代码如下:vOidCOmpany::Find(){……//定义数据类型cout<<"∖n∖n∖t∖t查询功能\n\n";cout<<"∖t1、编号 2、姓名∖n∖n”;cout<<"∖t3、性别 4、级别∖n∖n";cout<<"请选择(1^4):";X=ChOiCe(4,1);//判定输入的X必须是1^4中的数字if(x==1){if(Findid(num))Find();〃查找编号,若Findid(num)返回值为1,则继续查找,否则结束查找。elsereturn;}if(X==2){if(Findname(nam))Find();elsereturn;}//查找姓名,若Findname(nam)返回值为1,则继续查找,否则结束查找。if(X==3){if(FindseX(se))Find();elsereturn;;}//查找性别,若FindSeX(Se)返回值为1,则继续查找,否则结束查找。if(X==4){if(FindSort(Sor))Find();elSereturn;;}}〃查找级别,若FindSOrt(SOr)返回值为1,则继续查找,否则结束查找。编辑功能模块编辑功能模块包含有编号和姓名2个选择,它的函数制作的思路是判定该编号或姓名是否存在,在存在的情况下判定它存在的类别,找到所处的类别并把它的编号和性别记录下来,并删除该编号或姓名下的相关信息,然后添加除编号和性别以外的信息,根据添加的信息判定添加的类别,然后将添加的信息压入该类别的向量中,从而达到编辑的目的。其伪代码如下:voidcompany::Rewrite(){……//定义数据类型cout<<"∖n∖n∖t∖t编辑功能\n\n";cout<<"∖t1、编号2、姓名∖n∖n";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(judge()) Rewrite();//判断是否继续}删除功能模块删除功能模块中首先判断的是记录是否为空,若为空则停止操作,否则继续下步操作。选择要删除的类别的序号则可删除对应的记录,若删除成功,系统会有所提示;若删除的信息不存在,系统会显示该信息不存在。其伪代码如下:voidcompany::Delete(){……定义数据类型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、所有记录∖n∖n";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;〃若为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;LClear();}//若选择销售经理类,则删除所有经理类的信息}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();//判断是否继续}统计功能模块统计功能模块中包含总数、男员工、女员工、经理、技术人员、销售人员和销售经理7个选择,主要运用了函数自带的size()函数来获取人数,其中的男、女员工是通过Sum来计数的。其伪代码如下:voidcompany::Sum(){……定义数据类型cout<<"∖n∖n∖t∖t统计功能\n\n";cout<<"∖t1、总数cout<<"\t3、女员工cout<<"∖t5、技术人员cout<<"∖t7、销售经理2、男员工∖n∖n”;4、经理∖n∖n";6、销售人员∖n∖n”;∖n∖n";cout<<”请选择序号(1^7):";x=choice(7,1);if(!x)return;if(x==1)cout<<"∖n总人数为:"<<M.size()+T.size()+S.size()+L.size()<<endl;elSeif(x==2||x==3){for(i=0;i<M.Size();i++)if(M[i].getsex()=="男")sum++;for(i=0;i<T.Size();i++)if(T[i].getsex()=="男")sum++;for(i=0;i<S.size();i++)if(S[i].getsex()=="男")sum++;for(i=0;i<L.size();i++)if(L[i].getsex()=="男")sum++;if(x==2)cout<<"\n男员工人数为:"<<sum<<endl;elsecout<<"\n女员工人数为:"<<M.size()+T.size()+S.size()+L.size()-sum<<endl;}elseif(x==4)cout<<"\n经理人数为:"<<M.size()<<endl;elseif(x==5)cout<<"\n技术人员人数:"<<T.size()<<endl;elseif(x==6)cout<<"\n销售人员人数:"<<S.size()<<endl;elsecout<<"\n销售经理人数:"<<L.size()<<endl;if(judge())Sum();}第四章软件测试voidAdd();〃添加功能用例:input:1input:1001input:tttinput:女input:财务部门input:4444用例:input:linput:1001是否继续(y/n):voidFind();//查询人员用例:input:4input:1用例:input:linput:1999VoidPrint();//显示如图2.5所示output:请输入雇员的信息:编号:output:姓名output:性别output:部门output:工资output:是否继续(y/n):OUtPUt:请输入雇员的信息:编号:output:该编号已存在OUtPUt:请输入你要查询的级别(1^4):output: 是否继续(y/n):OUtPUt:请输入编号output:该编号不存在是否继续(y/n):voidRewrite();//修改人员用例:input:linput:1003用例:input:1001input:tt

input:财务部门input:3

input:5555voidDelete();用例:input:2

input:aaa用例:input:3

input:3voidSum();//统计用例:input:1//删除人员output:请输入编号:output:该编号步存在是否继续(y/n):output: 请编辑:姓名:output:所在部门:output:级别:OUtPUt:工资OUtPUt:是否继续(y/n):OUtPUt:请输入要删除的姓名:output:该信息不存在是否继续(y/n):OUtPUt:请输入要删除的级

温馨提示

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

评论

0/150

提交评论