《C++小型企业工资管理系统3768.docx》由会员分享,可在线阅读,更多相关《C++小型企业工资管理系统3768.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、需求分析1. 从要求上来来看是要对对各个员工工的各种情情况(名字字、年龄、性性别、职位位、工资状状况)进行行输入。然然后可以输输出.2. 可以对于员员工数据进进行修改,可以查询询.3. 对于员工的的各种情况况系统还可可以进行统统计排名.二、概要要设计首先,创建建了一个eemplooyee类类.然后派派生出四个个类: manaager、ttechnniciaan、saalesmman、ssaless manaager.在派生类类中定义了了三个构造造函数,分分别是:数数据输入函函数(Innput),表格输输出函数(Prinnt),排排序函数(Pay).其次,在总总体结构上上,建立以以各根菜单单
2、,用于选选择各种功功能.1. Inputt(数据输输入):输输入员工的的各种数据据.2. Totall(数据统统计):将将员工的总总数据进行行对比排序序,然后输输出.3. Outpuut(数据据显示):显示输入入的各种数数据.4. Save(数据保存存):对输输入的数据据进行保存存备份.5. Eixt(退出程序序):执行行退出程序序命令.三、详细设设计1. Inputt(数据输输入): 定义了各各个岗位的的人员的类类,并把每每个类的人人员的属性性设为类中中的保护成成员,其中中技术工的的工作时间间和每小时时的所得为为私有成员员,而销售售员的销售售额、经理理的工资和和销售经理理的所辖部部门的销售售
3、额和其底底薪设为公公有成员,再再依次录入入。2. Totall(数据统统计): 根据所有有类的工资资算法在其其所属类中中定义一个个函数vooid ppay()来根据各各个职位的的具体情况况来计算工工资,并且且算出的工工资经过冒冒泡法排序序.voidd priinttootal()couutenndl;couutTotaal seetw(110)totaal eendl;couutenndl;3. Outpuut(数据据显示): 通过ddo-whhile循循环以及制制表格和ssetw的的使用将输输入的数据据和统计并并排序的数数据以表格格的形式打打印出来,销销售额合计计一栏宽度度要大些。void
4、saleeprinnt()couttssetw(10)no11ssetw(10)namme1ssetw(10)salle1eendl;couttenddl;couttssetw(10)no22ssetw(10)namme2ssetw(10)salle2eendl;couttenddl;couttssetw(10)no33ssetw(10)namme3ssetw(10)salle3eendl;couttenddl;couttssetw(10)no44ssetw(10)namme4ssetw(10)salle4eendl;voidd priint()couttenddl;couttssetw(10
5、)nossetw(10)nammessetw(10)sexxssetw(10)ageessetw(10)sallaryeendl;4. Save(数据保存存): 通过函数数savee()来将将输入的数数据和统计计并排序的的数据进行行保存.例例如:void savee()fstrream outtfilee;outffile.openn(f:flsddfj.ttxt,ios:appp);if(!outffile)couutf caant openn.n;aboort();outffileSaales manggerenddl;outffileIDDnnoNAMEEnnameSEEXsexAGGE
6、ageSAALARYYssalarryeendl; 5. Eixt(退出):利用exxit来完完成退出系系统功能。四、设计和和调试分析析程序清单:#incllude#incllude#incllude#incllude#inclludeclasss empployeeepubliic:emplloyeee()sallary=0;voidd payy()voidd priint()voidd inpput()couutnoo;couutnaame;couutseex;couutagge;proteectedd:int no;charr namme8;floaat saalaryy;charr s
7、exx;int age;classs mannagerr:virrtuall pubblic emplloyeeeproteectedd:floaat moonthllypayy,salle;publiic:manaager()moonthllypayy=80000; vvoid inpuut()couttMMangeer;eemplooyee:inpput();voidd savve()fstrream outtfilee;outffile.openn(f:flsddfj.ttxt,ios:appp);if(!outffile)couutf caant openn.n;aboort();ou
8、tffileMaangerreendl;outffileIDDnnoNAMEEnnameSEEXsexAGGEageSAALARYYssalarryeendl;voidd payy()ssalarry=moonthllypayy;voidd priint()couutenndl;couutssetw(10)nossetw(10)nammessetw(10)sexxssetw(10)ageessetw(10)sallaryeendl;classs tecchniccian:virttual publlic eemplooyeeprivaate:floaat hoourlyyratee;int w
9、orkkhourrs;publiic:techhniciian()houurlyrrate=100;voidd payy()couutnnamewoorkhoours;sallary=hourrlyraate*wworkhhourss;voidd inpput()couutTECHHNICIIANenddl;emmployyee:inpuut();voidd savve()fstrream outtfilee;outffile.openn(f:flsddfj.ttxt,ios:appp);if(!outffile)couutf caant openn.n;aboort();outffileTE
10、ECHNIICIANNeendl;outffileIDDnnoNAMEEnnameSEEXsexAGGEageSAALARYYssalarryeendl;voidd priint()couutenndl;couutssetw(10)nossetw(10)nammessetw(10)sexxssetw(10)ageessetw(10)sallaryeendl;classs sallesmaan:viirtuaal puublicc empployeeeproteectedd:floaat coommraate;floaat saales;publiic:saleesmann()ccommrrat
11、e=0.044; vvoid inpuut()couttSSALEMMAN;emplloyeee:innput();voidd savve()fstrream outtfilee;outffile.openn(f:flsddfj.ttxt,ios:appp);if(!outffile)couutf caant openn.n;aboort();outffileTEECHNIICIANNeendl;outffileIDDnnoNAMEEnnameSEEXsexAGGEageSAALARYYssalarryeendl;voidd payy()couutnnamesalles; salaary=ss
12、aless*commmratte;voidd priint()couutenndl;couutssetw(10)nossetw(10)nammessetw(10)sexssetw(10)ageessetw(10)sallaryeendl;classs sallesmaanageer:viirtuaal puublicc mannagerr,virrtuall pubblic saleesmannprivaate:floaat tootal;int no1,no2,no3,no4;charr namme188,naame28,nname338,namee48;floaat saale1,sale
13、e2,saale3,salee4;publiic:voidd sallemannagerr()monnthlyypay=50000;commmratte=0.005;voidd inpput()couutSalees maangerr;emmployyee:inpuut();voidd savve()fstrream outtfilee;outffile.openn(f:flsddfj.ttxt,ios:appp);if(!outffile)couutf caant openn.n;aboort();outffileSaales manggerenddl;outffileIDDnnoNAMEE
14、nnameSEEXsexAGGEageSAALARYYssalarryeendl;voidd savvesalle()fstrream outtfilee;outffile.openn(f:flsddfj.ttxt,ios:appp);if(!outffile)couutf caant openn.n;aboort();outffileThhe saalaryy of saleeman of ssaless mannger and themmselvvesenddl;outffileIDDnno1NAMMEnamee1SALAARYsalle1endll;outffileIDDnno2NAMM
15、Enamee2SALAARYsalle2endll;outffileIDDnno3NAMMEnamee3SALAARYsalle3endll;outffileIDDnno4NAMMEnamee4SALAARYsalle4endll;voidd payy()couutnnameThhe saales voluume oof evveryddeparrtmennt:;sallary=montthlyppay+ccommrrate*totaal;floaat tootalssale()tootal=salee1+saale2+salee3+saale4;retuurn ttotall;voidd p
16、riinttootal()couutenndl;couutTotaal seetw(110)totaal eendl;couutenndl;voidd sorrt(saalesmmanagger pp)int tmp,i,j;for(j=0;j2;j+)forr(i=00;i22;i+)iff(tottalpp.sallary)ttmp=ssalarry;ttotall=p.ssalarry;pp.sallary=tmp;ttmp=nno;nno=p.no;pp.no=tmp;voidd saller()couutnoo1;couutnaame1;couutsaale1;couutnoo2;c
17、ouutnaame2;couutsaale2;couutnoo3;couutnaame3;couutsaale3;couutnoo4;couutnaame4;couutsaale4;voidd sallepriint()couttssetw(10)no11ssetw(10)namme1ssetw(10)salle1eendl;couttenddl;couttssetw(10)no22ssetw(10)namme2ssetw(10)salle2eendl;couttenddl;couttssetw(10)no33ssetw(10)namme3ssetw(10)salle3eendl;coutte
18、nddl;couttssetw(10)no44ssetw(10)namme4ssetw(10)salle4eendl;voidd priint()couttenddl;couttssetw(10)nossetw(10)nammessetw(10)sexxssetw(10)ageessetw(10)sallaryeendl;void mainn()manaager m4;techhniciian tt4; ssalessman s4;saleesmannagerr sm4;t1.savve();int flagg=1,ooperaate; do ccout # The systtem oof s
19、aalaryy mannger #n; ccout n; ccout Chosse yoour aactioons n; ccout Innput:1,Ennter n; ccout Tootal:2,Ennter n; ccout Ouutputt:3,EEnterr n; ccout Saave:44,Entter n; ccout Exxit:55,Entter n; ccout n; ccoutopeeratee;swittch(ooperaate)casee 1:couutWaitting for a miinutee!endll;foor(innt i=0;i4;i+)mmi.in
20、puut();foor(innt j=0;j4;j+)ttj.inpuut();foor(innt k=0;k4;k+)ssk.inpuut();foor(innt l=0;l4;l+)ssml.inpput();foor(innt i=0;i4;i+)mmi.pay();foor(innt j=0;j4;j+)ttj.pay();foor(innt k=0;k4;k+)ssk.pay();foor(innt l=0;l4;l+)smll.paay();smll.saaler();breaak;casse 2:cooutWaiitingg forr a mminutte!enddl; foor
21、(innt l=0;l4;l+)smll.tootalssale();foor(innt i=0;i4;i+)for(int j=0;j2;j+)smjj.soort(ssmj+1);couutThe saleeman of tthe ffirstt salles mmangeerendll;couutenndl;couutID NAAME SSALARRY eendl;sm0.ssalepprintt();sm0.pprintttotaal();couut Thhe orrder is ccomplleteenndl;couutListt nammes oof evvery salees m
22、aangerreendl;couutenndl;couutID NAAME SEXX AGEE SALLARY eendl;foor(innt k=0;k4;k+)ssmk.priint();couutenndl;bbreakk;casse 3:couutWaitting for a miinutee!endll;couut Thhe bllank of tthe :eendl;couutenndl;couutID NAAME SEXX AGEE SALLARY eendl;forr(intt i=00;i44;i+)mi.pprintt();couutenndl;couutenndl;cou
23、utenndl;couutenndl;couutID NAAME SEXX AGEE SALLARY eendl;forr(intt k=00;k44;k+)sk.pprintt();couutenndl;couutenndl;couutenndl;breaak;casse 4:couutWaitting for a miinutee!endll;forr(intt i=00;i44;i+)mi.ssave();foor(innt j=0;j4;j+)ttj.savee();foor(innt k=0;k4;k+)ssk.savee();foor(innt l=0;l4;l+)ssml.sav
24、ve();coutt Infoormattion savee! eendl;breaak; ccase 5:exxit(00);brreak; ddefauult:ccoutErrror!Repeeat aagainn!endll;whiile(fflag=1);五、用户手手册1) 运行程序.会出现如如下画面,按照提示示进行选择择.2) 首先选择11,然后按按Enteer键.按按照提示对对员工个人人情况进行行输入.如如图:3) 然后选择44,然后按按Enteer键.对对刚才输入入的数据进进行保存.4) 选择2, 然后按EEnterr键.对数数据进行统统计.如图图:六、测试结结果对各个部分分功能
25、进行行测试后,各部分功功能都很好好.但是此此程序也有有的它的缺缺点在.那那就是它不不能按照个个人的意愿愿,职能按按照固定的的人数对数数据进行输输入,既不不能多也不不能少.很很麻烦.一一但格式输输入的不正正确会立即即进入死循循环.不理理想. 本本程序综合合性非常强强,由于我我们对使用用C+设设计程序的的能力还不不是很熟练练,所以在在设计时非非常吃力。在在整个程序序中,我们们通过使用用whille循环,sswitcch语句,冒冒泡排序法法,表格设设计中的ssetw()以及类类的定义及及使用来完完成程序设设计,使我我提高了对对C+中中语句的使使用能力和和组合能力力,进一步步加强了我我对使用CC+编程程的能力。通过此次程程序设计实实习,我发发现自己在在学习C+方面还还有很多不不足,在此此程序中可可能还有一一些不足和和错误,我我们将在以以后的学习习过程中不不断努力并并强化对CC+的练练习七、参考文文献1 苏金明,周周建斌.用用VB.NNET和VVC#.NNET开发发交互式CCAD系统统M. 北京:电子工业业出版社,220042 普悠玛.VVB.NEET程序设设计示例导导学M. 北京京:科海电电子出版社社,20003第 24 页 共 24 页