某小型公司的工资管理系统实训报告.docx
某小型公司的工资管理系统实训报告题目:小型公司的工资管理系统>00X0指导老师:XXX班级:学号:时间:学生姓名:XXX计 YXXXXXXXXXXXXXXXXXX年X月X日目录一、实训内容与目的2二、设计分析3三、执行结果与结果分析23四、实训总结27实训内容:小型公司的工资管理设计任务编写一个小型公司的工资管理程序。该公司要紧有4类人员:经理、兼职技术人员、销售员与销售经理。其中月薪计算方法为:经理固定月薪8000元,兼职技术如愿100元/小时,销售员为当月销售额的4%,销售经理保底工资5000元另加所管部门销售额的5%。设计要求(1)职工编号自动产生(从IoOo起编号)。(2)将公司人员的编号、姓名与月薪等信息储存在文件中,然后从文件中读入这些信息并显示。假如访问文件失败,使用特殊处理机制解决。(3)设计输入,输出的界面。(成绩为优良,需使用MFC方式。若设计困难能够使用DOS方式)二、设计分析:(1)类的定义:1、“employee.il”#include<iostream.h>#iIIdUdeViOmanip.h>#include<stdio.h>#include<string.h>#include<fstream.h>#include<tchar.h>classemployee(public:employee();doublegerno();char*getname();char*gerpost();doublegetsalary();virtualdoublepay()=O;employee(doublen9charmingzi20,doubles)(number=n;strcpy(name,mingzi);iIicome=S;)-employee。;protected:doublenumber;charname20;charpost2l;doubleincome;);classTechnician:publicemployee(protected:doublehour;doubleper;public:doubleSet_hour();doublepay(););classSalemanzvirtualpublicemployee(protected:doubleSaIary;销售额public:voidsale();doublepay();classManager:virtualpublicemployee(protected:public:doublepay();classSalesmanagerzvirtualpublicManager9VirtualpublicSaleman(public:doublepay(););structperson(intgonghao;charXingming20;charzhiweif20;floatshouru;floatxiaoshi;);voidsaverenshu();intreadrenshu();voiddeletgon(intx);voiddeletname(intx);voidread(intx);voidxiugai-all(intx);voidsavetech(intx,char*y,char*z,floate,oatho);voidsave(intx,char*y,char*z,floate);(2) ,change.cppwncludeemployee.h',intk;voidsave(intx9char*y,char*z,floate)储存文件(structpersona;a.gonghao=x;strcpy(a.xingming,y);strcpy(a.zhiwei,z);a.shouru=e;cout<<*,工号:,<<a.gonghao<<n,<<n姓名:,'<<a.xingming<<,'<<''职位:,<<a.zhiwei<<,<<',IS:H«a.shouru«n,<<endl;fstreamcun;ClIn.open(''储存人员.txt”,ios:app|ios:oiit);if(!cun)(cout<<,cannotopenfile,<<endl;)cun<<a.gonghao<<endl;cun<<a.zhiwei<<endl;cun<<a.xingming<<endl;cun<<a.shouru<<endl;cun.close();)voidsavetech(intx,char*y,char*z,floate,floatho)专用于技术员的储存structpersona;a.gonghao=x;strcpy(a.xingming,y);strcpy(a.zhiwei9z);a.shouru=e;a.xiaoshi=ho;cout<<n工号:,<<a.gonghao<<n"<<,1姓名:,<<a.xingming<<,<<,'职位:,<<a.zhiwei<<,工作小时:,<<a.xiaoshi<<n,<<a,shouru<<,<<endl;fstreamcun;Clln.open("储存人员.txt'',ios=appios:OlIt);if(!cun)cout<<,cannotopenfile,<<endl;cun<<a.gonghao<<endl;cun<<a.zhiwei<<endl;cun<<a.xingming<<endl;cun<<a.xiaoshi<<endl;cun<<a.shouru<<endl;cun.close();)voidsaverenshu()储存在职总人数,以便读取数据(fstreamcun;Ciln.open(''个数.txt'',ios:trunc|ios:in);if(!cun)(cout<<cannotopenfile,<<endl;)cun<<k<<endl;cun.close();)intreadrenshu()读取在职总人数(fstreamcun;CIIlI.open(''个数.txt'ios:inios:Oilt);if(!cun)(cout<<,cannotopenfi)e,<<endl;)cun>>k;returnk;)voidread(intx)读取在职人员信息,参数X为总人数(jf(=O)(COUtVV”还没有任何人员的信息,请先添加人员的信息!”<vendl;)structpersona30;fstreamcun;inti=0;CIln.open("储存人员.txt”,ios:in|ios:OlIt);if(!cun)cout<<,cannotopenfile,<<endl;while(i<x)(cun>>ai.gonghao;cun>>afi.zhiwei;cun>>ai.xingming;1我§立5(2国.2加3d,"技术员'')=0)(cun>>ai.xiaoshi;cun>>ai.shouru;if(strcmp(ai.zhiwei,”技术员")=0)(CoIltVV”工号:,<<aij.gonghao<<,"v<”姓名:,<<ai.xingming<<,<<n职位:M«ai.zhiwei«H工作小时,<<ai.xiaoshi<<,<<n工资:"«ai.shouru«nt,<<endl;)else(COIltVV”工号:n<<ai.gonghao<<n"«aiJ.xingming«M,<<h职位:”<vai.zhiwei<v""<v"工资:n<<aiJ.shouru<<n<<endl;)i+;)cun.close();)voiddeletgon(intx)按工号删除函数,参数X为总人数(if(x=O)(Colltv<”没有任何员工的信息,请先增加员工的信息”<vendl;structpersonal301;structpersona2301;fstreamcun;inti=0;Ciln.open(''储存人员.txt'',ios:in|ios:out);if(!cun)(cout<<,cannotopenfile*'<<endl;)while(i<x)cun>>ali.gonghao;cun>>ali.zhiwei;cun>>ali.xingming;if(strcmp(alij.zhiwei,n技术员,)=0)(cun>>ali.xiaoshi;cun>>al11.shouru;£(§丘5(21国.2111、¥£入"技术员'')=0)(COiItVV”工号:H«aliJ.gonghao«H:,<<alij.xingming<<,'<<职位:,<<ali.zhiwei<<,工作小时,<<ali.xiaoshi<<,<<m工资:"«ali.shouru«n,<<endl;)else(COIltVV”工号:H«ali.gonghao«H,<<ali.xingming<<,<<职位:n<<aliJ.zhiwei<<,"<<,IS:,<<ali.shouru<<,<<endl;)i+;)cun.close();IiiiiiiiiiiiiiiiiiiiCOUtV<"请输入要删除人员的工号:"v<endl;intg;cin>>g;i=0;while(g!=alil.gonghao)(i+;)if(g!=ali.gonghao)(COUtVV"没找到!"<vendl;)else(g=i;for(i=0;i!=g;i+)(a2i.gonghao=ali.gonghao;strcpy(a2i.zhiwei,alizhiwei);strcpy(a2i.xingming9ali.xingming);if(strcmp(ali.zhiwei,“技术员”)=0)a2i.xiaoshi=ali.xiaoshi;a2i.shouru=ali.shouru;)for(i;i<x;i+)(a2il.gonghao=ali+l.gonghao;strcpy(a2i.zhiwei,ali+l.zhiwei);strcpy(a2i.xingming,a1i+1xingming);if(strcmp(ali+ILZhiWeiJ技术员")=0)(a2i.xiaoshi=ali+l.xiaoshi;)a2i.shouru=ali+l.s