人事管理系统说明书12856.docx
*实践教学学*兰州理工工大学计算机与与通信学学院20122年春季学期期算法与数数据结构构课程设设计题目:人人事管理理专业班级级: 软软件工程程基地班班 姓名:学号: 102250一一三9 指导教师师: 王王旭阳 成绩:_目 录录摘 要要11.采用用类c语语言定义义相关的的数据类类型22.各模模块的伪伪码算法法23.函数数的调用用关系图图164.调试试分析1165.测试试结果1176.源程程序(带带注释)22总 结结44参考文献献45致 谢谢46附件任任务一源源程序代码码47摘 要要在Intternnet飞飞速发展展的今天天,互联联网成为为人们快快速获取取、发布布和传递递信息的的重要渠渠道,它它在人们们政治、经济、生生活等各各个方面面发挥着着重要的的作用。人事管管理系统统已成为为企事业业单位信信息化管管理中的的重要组组成部分分,从而而倍受人人们的重重视。为为了提高高企事业业单位的的办公效效率,并并为了对对自己这这两年来来学习成成果的检检验。我我这次选选择了基基于VCC+和和算法与与数据结结构的人人事管理理系统,讲讲述了人人事管理理系统的的设计、结构组组成和适适用范围围。它的的应用实实现了人人事管理理的规范范化,数数据的准准确量化化,以及及该系统统的查询询过程等。该系统是是一个具具有开放放性、可可查询性性和可维维护处理理性的管管理系统统。系统统功能齐齐全、操操作简单单、界面面清晰直直观、扩扩充方便便。关键词人事管理理系统 ;VCC+;人事管管理。641. 采用类cc语言定定义相关关的数据据类型publlic:intt Noo;intt IDD;strringg Naame;strringg Seex;intt Biirthhdayy;strringg Adddreess;intt Phhonee;voiid iinpuut()2. 各模块的的伪码算算法1、 录入模块块voidd innserrt()/录录入数据据int n; whiile(1) couut<<<"请输输入部门门的代码码: 11-人事事部 2-维维修部 3销售部部"<<<enddl; cinn>>nn;if(n=1|n=2|n=3) iff(n=1) ddo SStafff<PPerssonnnel>> *pp;pp=neew SStafff<PPerssonnnel>>pp->bbumeen.sshoww();pp->iinpuut();pp->bbumeen.iinpuut();iint q;ddo foor(iint i=00;i<<N;ii+) q=00;if(Pii=NULLL) brreakk; elsse iif(PPi->NNo=p->>No)coout<<<"此此工作号号已存在在!请修修改!"<<<enddl; pp->iinpuut(); pp->bbumeen.iinpuut(); qq+; bbreaak; whiile(q!=0);ffor(intt j=0;jj<N;j+) if(Pjj=NULLL) Pjj=pp;couut<<<"输入入成功!"<<<enddl; breeak; ccoutt<<""你还要要继续执执行其操操作吗?是'11', 否'00':""ciin>>>n; whiile(n=1);ellse if(n=2) do SStafff<MMainntaiin> *a;aa=neew SStafff<MMainntaiin>aa->bbumeen.sshoww(); aa->iinpuut();aa->bbumeen.iinpuut();iint q;ddoffor(intt i=0;ii<N;i+) q=00;if(Mii=NULLL) brreakk; eelsee iff(Mi->Noo=aa->NNo)coout<<<"此此工作号号已存在在!请修修改!"<<<enddl; a->innputt(); a->buumenn.innputt(); q+; brreakk; whiile(q!=0);ffor(intt j=0;jj<N;j+) iff(Mj=NUULL) MMj=a; coout<<<"输输入成功功!"<<<enndl; brreakk; ccoutt<<""你还要要继续执执行其操操作吗?是'22', 否'00':""ciin>>>n; whhilee(n=2);ellse if(n=3) do SStafff<SSelll> *s;ss=neew SStafff<SSelll>ss->bbumeen.sshoww(); ss->iinpuut();ss->bbumeen.iinpuut();iint q;ddoffor(intt i=0;ii<N;i+) q=00;if(Sii=NULLL) brreakk; eelsee iff(Si->Noo=ss->NNo)coout<<<"此此工作号号已存在在!请修修改!"<<<enddl; s->innputt(); s->buumenn.innputt(); q+; brreakk; whiile(q!=0);ffor(intt j=0;jj<N;j+) iff(Sj=NUULL) SSj=s; ccoutt<<""输入成成功!""<<eendll; bbreaak; ccoutt<<""你还要要继续执执行其操操作吗?是'33', 否'00':""ciin>>>n; whhilee(n=3);breeak;2、显示示模块voidd shhow()/显示数数据 innt nn; whhilee(1) couut<<<"请输输入部门门的代码码: 11-人事事部 2-维维修部 3销售部部 ""<<eendll; cinn>>nn; if(n=1|n=2|n=3) if(n=1) Staaff<<Perrsonnnell> *p;couut<<<outt<<eendll;forr(innt jj=0;j<NN;j+)if(Pjj!=NULLL)p=PPj;p->>outtputt();p->>bummen.outtputt();breeak;elsse iif(nn=22)Staaff<<Maiintaain>> *aa;couut<<<outt<<eendll;forr(innt ii=0;i<NN;i+) iff(Mi!=NUULL) a=Mii; a->>outtputt();a->>bummen.outtputt(); breeak;elsse iif(nn=33)Staaff<<Selll> *s;couut<<<outt<<eendll;forr(innt ii=0;i<NN;i+) iff(Si!=NUULL) s=Sii; s->>outtputt();s->>bummen.outtputt(); breeak; elsse iif(nn=0) brreakk; 3、查找找模块voidd fiind()/查找数数据 sstriing n; ccoutt<<""输入你你要查找找姓名""<<eendll; ccin>>>n; ffor(intt j=0;jj<N;j+) iff(Pj!=NUULL&&&(PPj->NNamee)=n) PPj->bbumeen.sshoww(); ccoutt<<oout<<<enndl; Pjj->>outtputt();Pjj->>bummen.outtputt();bbreaak; ffor(j=00;j<<N;jj+) iif(MMj!=NNULLL&&(Mjj->>Namme)=n) Mjj->>bummen.shoow(); couut<<<outt<<eendll; Mjj->>outtputt();Mjj->>bummen.outtputt(); breeak; ffor(j=00;j<<N;jj+) iif(SSj!=NNULLL&&(Sjj->>Namme)=n) Sjj->>bummen.shoow();ccoutt<<oout<<<enndl; Sjj->>outtputt();Sjj->>bummen.outtputt(); breeak; 4、删除除模块voidd Deelette()/删删除数据据 sstriing n;iint m; ccoutt<<""输入你你要查找找姓名""<<eendll; ccin>>>n; couut<<<"请输输入该员员工所在在的部门门的代码码: 11-人事事部 2-维维修部 3销售部部"<<<enddl; cinn>>mm;if(m=1) foor(iint j=00;j<<N;jj+) iff(Pj!=NUULL&&&(PPj->NNamee)=n)couut<<<outt<<eendll;Pjj->>outtputt();Pjj->>bummen.outtputt(); Pjj=NNULLL;ccoutt<<""该员工工已被删删除!""<<eendll;bbreaak; if(m=2) ffor(intt j=0;jj<N;j+) iif(MMj!=NNULLL&&(Mjj->>Namme)=n)couut<<<outt<<eendll;Mjj->>outtputt();Mjj->>bummen.outtputt(); Mjj=NNULLL; couut<<<"该员员工已被被删除!"<<<enddl; breeak; if(m=3) ffor(intt j=0;jj<N;j+) iff(Sj!=NUULL&&&(SSj->NNamee)=n)couut<<<outt<<eendll;Sjj->>outtputt();Sjj->>bummen.outtputt(); Sjj=NNULLL; couut<<<"该员员工已被被删除!"<<<enddl; breeak; 5、修改改模块voidd reevisse()/修修改数据据 sstriing n;iint m; ccoutt<<""输入你你要查找找姓名""<<eendll; ccin>>>n; couut<<<"请输输入该员员工所在在的部门门的代码码: 11-人事事部 2-维维修部 3销售部部"<<<enddl; cinn>>mm; iif(mm=11) foor(iint j=00;j<<N;jj+) iff(Pj!=NUULL&&&(PPj->NNamee)=n)couut<<<outt<<eendll; Pjj->>outtputt();Pjj->>bummen.outtputt();PPj->iinpuut();Pj->buumenn.innputt();ccoutt<<""该员工工修改成成功!""bbreaak; iif(mm=22) foor(iint j=00;j<<N;jj+) iff(Mj!=NUULL&&&(MMj->NNamee)=n)ccoutt<<oout<<<enndl; Mjj->>outtputt();Mjj->>bummen.outtputt(); Mjj->>inpput();MMj->bbumeen.iinpuut(); couut<<<"该员员工修改改成功!" breeak; iif(mm=33) foor(iint j=00;j<<N;jj+) iff(Sj!=NUULL&&&(SSj->NNamee)=n)couut<<<outt<<eendll; Sjj->>outtputt();Sjj->>bummen.outtputt(); Sjj->>inpput();SSj->bbumeen.iinpuut(); couut<<<"该员员工修改改成功!" breeak; 6清空模模块voidd cllearr()/清空空数据 innt nn,a=1; doo couut<<<"请输输入密码码"<<<" '0''返回界界面"<<<enndl;cinn>>nn; iif(nn=aa) forr(innt ii=0;i<NN;i+) PPi=NUULL; MMi=NUULL; SSi=NUULL; couut<<<"所有有员工的的资料已已被删除除!"<<<enndl;breeak; eelsee coout<<<"输输入密码码失败!"<<<enddl; whhilee(n!=0);7、保存存模块voidd saave()/保存数数据ofsttreaam ooutpput_fille;ofsttreaam ooutpput_fille1;ofsttreaam ooutpput_fille2;ofsttreaam ooutpput_fille3;coutt<<""正在保保存中."<<<enndl;outpput_fille.oopenn("PPerssonnnel.txtt"); if(!ouutpuut_ffilee) coout<<<"保保存Peersoonneel文件件失败!"<<<enddl; ffor(intt i=0;ii<N;i+) iif(PPi!=NNULLL) ouutpuut_ffilee<<PPi->NNo<<<" ""<<PPi->SSex<<<" "<<<Pii->>Namme<<<" ""<<PPi->IID<<<" ""<<PPi->BBirtthdaay<<<" ""<<PPi->AAddrresss<<"" "<<<Pi->Phhonee<<"" "<<<Pi->buumenn.Joob<<<" ""<<PPi->bbumeen.PPay<<<enndl; b11+; outpput_fille2.opeen(""Maiintaain.txtt");if(!outtputt_fiile22) coout<<<"保保存Maainttainn文件失失败!""<<eendll; ffor( i=0;ii<N;i+) iif(MMi!=NNULLL) outtputt_fiile22<<MMi->NNo<<<" ""<<MMi->SSex<<<" "<<<Mii->>Namme<<<" ""<<MMi->IID<<<" ""<<MMi->BBirtthdaay<<<" ""<<MMi->AAddrresss<<"" "<<<Mi->Phhonee<<"" "<<<Mi->buumenn.Joob<<<" ""<<MMi->bbumeen.PPay<<<enndl; b22+; outpput_fille3.opeen(""Selll.ttxt"");if(!outtputt_fiile33) coout<<<"保保存Seell文文件失败败!"<<<enndl; ffor( i=0;ii<N;i+) iif(SSi!=NNULLL) outtputt_fiile33<<SSi->NNo<<<" ""<<SSi->SSex<<<" "<<<Sii->>Namme<<<" ""<<SSi->IID<<<" ""<<SSi->BBirtthdaay<<<" ""<<SSi->AAddrresss<<"" "<<<Si->Phhonee<<"" "<<<Si->buumenn.Joob<<<" ""<<SSi->bbumeen.PPay<<<enndl; bb3+; outpput_fille1.opeen(""konngzhhi.ttxt"");outpput_fille1<<<b11<<"" "<<<b22<<"" "<<<b33<<eendll;/保存数数据条数数outpput_fille1.cloose();outpput_fille.cclosse();outpput_fille2.cloose();outpput_fille3.cloose();coutt<<""保存完完毕!""<<eendll;、3. 函数的调调用关系系图人事管理系统删删除员工信息查查找员工信息显显示员工信息录录入员工信息退退出系统保保存员工信息清清空员工信息修修改员工信息4.调试试分析a、 调试中遇遇到的问问题及对对问题的的解决方方法.cpppc:ddocuumennts andd seettiingssaddminnisttrattor桌面人事管管理系统统1.cppp(277) : errrorr C220一八八: uunknnownn chharaacteer ''0xaa1'c:ddocuumennts andd seettiingssaddminnisttrattor桌面人事管管理系统统1.cppp(277) : errrorr C220一八八: uunknnownn chharaacteer ''0xaa2'c:ddocuumennts andd seettiingssaddminnisttrattor桌面人事管管理系统统1.cppp(277) : errrorr C220一八八: uunknnownn chharaacteer ''0xaa1'c:ddocuumennts andd seettiingssaddminnisttrattor桌面人事管管理系统统1.cppp(277) : errrorr C220一八八: uunknnownn chharaacteer ''0xaa2'执行 ccl.eexe 时出错错经反复检检查确认认,检查查程序第第27行行中的代代码中多多余输入入了某些些标点符符号,经经改正后后程序编编译显示示没有错错误。b、算法法的时间间复杂度度和空间间复杂度度 该算算法的时时间复杂杂度为:O(nn) 该算算法的空空间复杂杂度为:6088KB5.测试试结果人事管理理系统(1)、人事管管理系统统界面(2)、员工信信息的录录入(3)、员工信信息的显显示(4)、员工信信息的查查找(5)、员工信信息的删删除(6)、员工信信息的修修改(7)、员工信信息的清清空(8)、员工信信息的保保存(9) 、系统的的退出6.源程程序(带带注释)/baasicc.h#inccludde"sstriing""#inccludde"iiosttreaam"#inccludde ""iommaniip"usinng nnameespaace stdd;classs BBaseepubllic:intt Noo;intt IDD;strringg Naame;strringg Seex;intt Biirthhdayy;strringg Adddreess;intt Phhonee;voiid iinpuut()couut<<<"输入入员工的的工作号号:"<<<enndl;cinn>>NNo;couut<<<"输入入员工的的姓名:"<<<enddl;cinn>>NNamee;couut<<<"输入入员工的的性别:"<<<enddl;cinn>>SSex;couut<<<"输入入员工的的身分证证:"<<<enndl;cinn>>IID;couut<<<"输入入员工的的生日:"<<<enddl;cinn>>BBirtthdaay;couut<<<"输入入员工的的家庭住住址:""<<eendll;cinn>>AAddrresss;couut<<<"输入入员工的的家庭电电话号码码:"<<<enndl;cinn>>PPhonne;voiid ooutpput()coout<<<seetioosfllagss(ioos:lefft)<<<seetw(8)<<<Noo<<<seetw(8)<<<Naame<<<seetw(6)<<<Seex<<<settw(88)<<<ID<<<seetw(10)<<BBirtthdaay <<<seetw(8)<<<Adddreess<<<seetw(10)<<PPhonne;/brrancch.hh#inccludde"iiosttreaam"#inccludde"sstriing""#inccludde ""iommaniip"usinng nnameespaace stdd; classs PPerssonnnel /人事事部pubblicc:virrtuaal vvoidd shhow()coout<<<"人人事部""<<eendll;strringg Joob;intt Paay;voiid iinpuut() coout<<<"请请输入该该员工的的职务""<<eendll; ciin>>>Jobb; coout<<<"请请输入该该员工的的薪水""<<eendll; ciin>>>Payy; vooid outtputt() ccoutt<<ssetiiosfflaggs(iios:leeft)<<""职务:"<<<settw(66)<<<Jobb <<""薪水:"<<<settw(66)<<<Payy<<eendll;classs MMainntaiin:ppubllic Perrsonnnell /维维修部pubblicc:viirtuual voiid sshoww()coout<<<"维维修部""<<eendll;classs SSelll:puubliic Perrsonnnell /销售部部pubblicc:virrtuaal vvoidd shhow()coout<<<"销销售部""<<eendll;tempplatte <<claass Typpe>classs BBrannch publlic:Typee buumenn;/sttafff.h#inccludde"iiosttreaam"usinng nnameespaace stdd;tempplatte <<claass Typpe>classs SStafff : puubliic BBasee, ppubllic Braanchh<Tyype>> ;/头文文件#inccludde"sstriing""#inccludde<sstriing>>#inccludde"ccstddio""#inccludde"cconiio.hh"#inccludde"ffstrreamm"#inccludde"iiosttreaam"#inccludde"sstdllib.h"#deffinee N 1000usinng nnameespaace stdd;Stafff<PPerssonnnel>> *PPN; Staaff<<Maiintaain>> *MMN;Stafff<SSelll> *SSN;consst iint SIZZE_CCHARR = 5; consst ccharr CCCH = "abbcdeefghhijkklmnnopqqrsttuvwwxyzzABCCDEFFGHIIJKLLMNOOPQRRSTUUVWXXYZ""int b1=0,bb2=00,b33=0;/导导入数据据条数striing m()/随随机生字字母 chhar chSIZZE_CCHARR + 1 = 0; forr (iint i = 0; i < SSIZEE_CHHAR; +i) innt xx = rannd() % (siizeoof(CCCH) - 1); chhi = CCHHx; retturnn chh;ostrreamm& oout(osttreaam& strreamm)/操纵符符retuurn strreamm <<<settiossflaags(ioss:lleftt)<<ssetww(8)<<""工作号号"<<<settw(88)<<<"姓名名"<<ssetww(6)<<""性别""<<ssetww(8)<<""身分证证"<<<settw(112)<<<"生生日"<<<seetw(8)<<<"地地址" <<<seetw(10)<<""电话""<<"" 部门门 "voidd innserrt()/录录入数据据int n; whiile(1) couut<<<"请输输入部门门的代码码: 11-人事事部 2-维维修部 3销售部部"<<<enddl; cinn>>nn;if(n=1|n=2|n=3) iff(n=1) ddo SStafff<PPerssonnnel>> *pp;pp=neew SStafff<PPerssonnnel>>pp->bbumeen.sshoww();pp->iinpuut();pp->bbumeen.iinpuut();iint q;ddo foor(iint i=00;i<<N;ii+) q=00;if(Pii=NULLL) brreakk; elsse iif(PPi->NNo=p->>No)coout<<<"此此工作号号已存在在!请修修改!"<<<enddl; pp->iinpuut(); pp->bbumeen.iinpuut(); qq+; bbreaak; whiile(q!=0);ffor(intt j=0;jj<N;j+) if(Pjj=NULLL) Pjj=pp;couut<<<"输入入成功!"<<<enddl; breeak; ccoutt<<""你还要要继续执执行其操操作吗?是'11'