某小型公司的工资管理系统实训报告.docx

上传人:小飞机 文档编号:1797080 上传时间:2022-12-19 格式:DOCX 页数:29 大小:3.56MB
返回 下载 相关 举报
某小型公司的工资管理系统实训报告.docx_第1页
第1页 / 共29页
某小型公司的工资管理系统实训报告.docx_第2页
第2页 / 共29页
某小型公司的工资管理系统实训报告.docx_第3页
第3页 / 共29页
某小型公司的工资管理系统实训报告.docx_第4页
第4页 / 共29页
某小型公司的工资管理系统实训报告.docx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《某小型公司的工资管理系统实训报告.docx》由会员分享,可在线阅读,更多相关《某小型公司的工资管理系统实训报告.docx(29页珍藏版)》请在三一办公上搜索。

1、面向对象实训报告 -题目:小型公司的工资管理系统指导老师: xxx 学生姓名: xxx 班 级: 计Yxxx 学 号: xxxxxxxxxxx 时 间: xxxx年x月x日 目录一、实训内容与目的-2二、设计分析-3三、执行结果和结果分析-23四、实训总结- 27一、 实训内容: 小型公司的工资管理设计任务编写一个小型公司的工资管理程序。该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。其中月薪计算方法为:经理固定月薪8000元,兼职技术如愿100元/小时,销售员为当月销售额的4%,销售经理保底工资5000元另加所管部门销售额的5。设计要求(1) 职工编号自动产生(从1000起编号)

2、。(2) 将公司人员的编号、姓名和月薪等信息保存在文件中,然后从文件中读入这些信息并显示。如果访问文件失败,采用异常处理机制解决。(3) 设计输入,输出的界面。(成绩为优良,需采用MFC方式。若设计困难可以使用DOS方式)二、 设计分析:(1) 类的定义:1、 “employee.h”#include#include#include#include#include#includeclass employeepublic:employee();double gerno();char *getname();char *gerpost();double getsalary();virtualdoub

3、le pay()=0; employee(double n,char mingzi20,double s) number=n;strcpy(name,mingzi);income=s; employee();protected: double number; char name20; char post20; double income;class Technician: public employeeprotected: double hour; double per;public:double Set_hour();double pay(); ;class Saleman:virtual

4、public employeeprotected: double salary;/销售额public: void sale(); double pay(); ;class Manager:virtual public employee protected:public: double pay(); ;class Salesmanager:virtual public Manager,virtual public Salemanpublic: double pay();struct personint gonghao;char xingming20;char zhiwei20;float sho

5、uru;float xiaoshi;void saverenshu();int readrenshu();void deletgon(int x);void deletname(int x);void read(int x);void xiugai_all(int x);void savetech(int x,char *y,char *z,float e,float ho);void save(int x,char *y,char *z,float e);(2)”change.cpp”#includeemployee.hint k;void save(int x,char *y,char *

6、z,float e)/保存文件struct person a;a.gonghao=x;strcpy(a.xingming,y);strcpy(a.zhiwei,z);a.shouru=e;cout工号:a.gonghao 姓名:a.xingming 职位:a.zhiwei 工资:a.shouru endl;fstream cun;cun.open(保存人员.txt,ios:app|ios:out);if(!cun)cout cannot open fileendl;cuna.gonghaoendl;cuna.zhiweiendl;cuna.xingmingendl;cuna.shouruend

7、l;cun.close();void savetech(int x,char *y,char *z,float e,float ho)/专用于技术员的保存struct person a;a.gonghao=x;strcpy(a.xingming,y);strcpy(a.zhiwei,z);a.shouru=e;a.xiaoshi=ho;cout工号:a.gonghao 姓名:a.xingming 职位:a.zhiwei 工作小时:a.xiaoshi 工资:a.shouru endl;fstream cun;cun.open(保存人员.txt,ios:app|ios:out);if(!cun)c

8、out cannot open fileendl;cuna.gonghaoendl;cuna.zhiweiendl;cuna.xingmingendl;cuna.xiaoshiendl;cuna.shouruendl;cun.close();void saverenshu()/保存在职总人数,以便读取数据fstream cun;cun.open(个数.txt,ios:trunc|ios:in);if(!cun)cout cannot open fileendl;cunkendl;cun.close();int readrenshu()/读取在职总人数fstream cun;cun.open(个

9、数.txt,ios:in|ios:out);if(!cun)cout cannot open filek;return k;void read(int x)/读取在职人员信息,参数x为总人数if(x=0)cout还没有任何人员的信息,请先添加人员的信息!endl;struct person a30;fstream cun;int i=0;cun.open(保存人员.txt,ios:in|ios:out);if(!cun)cout cannot open fileendl;while(iai.gonghao;cunai.zhiwei;cunai.xingming;if(strcmp(ai.zhi

10、wei,技术员)=0)cunai.xiaoshi;cunai.shouru;if(strcmp(ai.zhiwei,技术员)=0)cout工号:ai.gonghao 姓名:ai.xingming 职位:ai.zhiwei 工作小时 ai.xiaoshi 工资:ai.shouru endl; elsecout工号:ai.gonghao 姓名:ai.xingming 职位:ai.zhiwei 工资:ai.shouru endl;i+;cun.close();void deletgon(int x)/按工号删除函数,参数x为总人数if(x=0)cout没有任何员工的信息,请先增加员工的信息endl;

11、struct person a130;struct person a230;fstream cun;int i=0;cun.open(保存人员.txt,ios:in|ios:out);if(!cun)cout cannot open fileendl;while(ia1i.gonghao;cuna1i.zhiwei;cuna1i.xingming;if(strcmp(a1i.zhiwei,技术员)=0)cuna1i.xiaoshi;cuna1i.shouru;if(strcmp(a1i.zhiwei,技术员)=0)cout工号:a1i.gonghao 姓名:a1i.xingming 职位:a1

12、i.zhiwei 工作小时 a1i.xiaoshi 工资:a1i.shouru endl; elsecout工号:a1i.gonghao 姓名:a1i.xingming 职位:a1i.zhiwei 工资:a1i.shouru endl;i+;cun.close();/cout请输入要删除人员的工号:g;i=0;while(g!=a1i.gonghao)i+;if(g!=a1i.gonghao)cout没找到!endl;elseg=i;for(i=0;i!=g;i+)a2i.gonghao=a1i.gonghao;strcpy(a2i.zhiwei,a1i.zhiwei);strcpy(a2i.

13、xingming,a1i.xingming);if(strcmp(a1i.zhiwei,技术员)=0)a2i.xiaoshi=a1i.xiaoshi;a2i.shouru=a1i.shouru;for(i;ix;i+)a2i.gonghao=a1i+1.gonghao;strcpy(a2i.zhiwei,a1i+1.zhiwei);strcpy(a2i.xingming,a1i+1.xingming);if(strcmp(a1i+1.zhiwei,技术员)=0)a2i.xiaoshi=a1i+1.xiaoshi;a2i.shouru=a1i+1.shouru;for(int l=0;l(x-1

14、);l+)if(strcmp(a2l.zhiwei,技术员)=0)cout工号:a2l.gonghao 姓名:a2l.xingming 职位:a2l.zhiwei 工作小时 a2l.xiaoshi 工资:a2l.shouru endl;elsecout工号:a2l.gonghao 姓名:a2l.xingming 职位:a2l.zhiwei 工资:a2l.shouru endl;fstream cun1;i=0;cun1.open(保存人员.txt,ios:trunc);if(!cun1)cout cannot open fileendl;while(i(x-1)cun1a2i.gonghaoe

15、ndl;cun1a2i.zhiweiendl;cun1a2i.xingmingendl;if(strcmp(a2i.zhiwei,技术员)=0)cun1a2i.xiaoshiendl;cun1a2i.shouruendl;i+;cun1.close();fstream cun2;cun2.open(个数.txt,ios:trunc|ios:in);if(!cun2)cout cannot open fileendl;cun2(x-1)endl;cout成功删除一个员工的数据endl;cun2.close();void deletname(int x)/按姓名删除函数,参数x为总人数if(x=0

16、)cout没有任何员工的信息,请先增加员工的信息endl;struct person a130;struct person a230;fstream cun;int i=0;cun.open(保存人员.txt,ios:in|ios:out);if(!cun)cout cannot open fileendl;while(ia1i.gonghao;cuna1i.zhiwei;cuna1i.xingming;if(strcmp(a1i.zhiwei,技术员)=0)cuna1i.xiaoshi;cuna1i.shouru;if(strcmp(a1i.zhiwei,技术员)=0)cout工号:a1i.

17、gonghao 姓名:a1i.xingming 职位:a1i.zhiwei 工作小时 a1i.xiaoshi 工资:a1i.shouru endl; elsecout工号:a1i.gonghao 姓名:a1i.xingming 职位:a1i.zhiwei 工资:a1i.shouru endl;i+;cun.close();/cout请输入要删除人员的姓名:xing;int g;i=0;while(strcmp(xing,a1i.xingming)i+;g=i;for(i=0;i!=g;i+)a2i.gonghao=a1i.gonghao;strcpy(a2i.zhiwei,a1i.zhiwei

18、);strcpy(a2i.xingming,a1i.xingming);if(strcmp(a1i.zhiwei,技术员)=0)a2i.xiaoshi=a1i.xiaoshi;a2i.shouru=a1i.shouru;for(i;ix;i+)a2i.gonghao=a1i+1.gonghao;strcpy(a2i.zhiwei,a1i+1.zhiwei);strcpy(a2i.xingming,a1i+1.xingming);if(strcmp(a1i+1.zhiwei,技术员)=0)a2i.xiaoshi=a1i+1.xiaoshi;a2i.shouru=a1i+1.shouru;for(

19、int l=0;l(x-1);l+)if(strcmp(a2l.zhiwei,技术员)=0)cout工号:a2l.gonghao 姓名:a2l.xingming 职位:a2l.zhiwei 工作小时 a2l.xiaoshi 工资:a2l.shouru endl;elsecout工号:a2l.gonghao 姓名:a2l.xingming 职位:a2l.zhiwei 工资:a2l.shouru endl;fstream cun1;i=0;cun1.open(保存人员.txt,ios:trunc);if(!cun1)cout cannot open fileendl;while(i(x-1)cun

20、1a2i.gonghaoendl;cun1a2i.zhiweiendl;cun1a2i.xingmingendl;if(strcmp(a2i.zhiwei,技术员)=0)cun1a2i.xiaoshiendl;cun1a2i.shouruendl;i+;cun1.close();fstream cun2;cun2.open(个数.txt,ios:trunc|ios:in);if(!cun2)cout cannot open fileendl;cun2(x-1)endl;cout成功删除一个员工的数据endl;cun2.close();void xiugai_all(int x)/修改一条记录的

21、内容,参数x为总人数struct person a130;struct person a230;fstream cun;int i=0;cun.open(保存人员.txt,ios:in|ios:out);if(!cun)cout cannot open fileendl;while(ia1i.gonghao;cuna1i.zhiwei;cuna1i.xingming;if(strcmp(a1i.zhiwei,技术员)=0)cuna1i.xiaoshi;cuna1i.shouru;if(strcmp(a1i.zhiwei,技术员)=0)cout工号:a1i.gonghao 姓名:a1i.xing

22、ming 职位:a1i.zhiwei 工作小时 a1i.xiaoshi 工资:a1i.shouru endl;elsecout工号:a1i.gonghao 姓名:a1i.xingming 职位:a1i.zhiwei 工资:a1i.shouru endl;i+;int g,gonghao1;char xingming120,zhiwei120;float shouru1,xiaoshi1;cout请输入要修改员工的工号:g;i=0;while(g!=a1i.gonghao)i+;g=i;for(i=0;i!=g;i+)a2i.gonghao=a1i.gonghao;strcpy(a2i.zhiw

23、ei,a1i.zhiwei);strcpy(a2i.xingming,a1i.xingming);if(strcmp(a1i.zhiwei,技术员)=0)a2i.xiaoshi=a1i.xiaoshi;a2i.shouru=a1i.shouru;cout请重新输入工号:gonghao1;a2i.gonghao=gonghao1;cout请重新输入姓名:xingming1;strcpy(a2i.xingming,xingming1);cout请重新输入职位:zhiwei1;strcpy(a2i.zhiwei,zhiwei1);if(strcmp(zhiwei1,技术员)=0)cout请重新输入工

24、作小时数:xiaoshi1;a2i.xiaoshi=xiaoshi1;cout请重新输入月收入:shouru1;a2i.shouru=shouru1;if(strcmp(a2i.zhiwei,技术员)=0)cout工号:a2i.gonghao 姓名:a2i.xingming 职位:a2i.zhiwei 工作小时: a2i.xiaoshi 工资:a2i.shouru endl;elsecout工号:a2i.gonghao 姓名:a2i.xingming 职位:a2i.zhiwei 工资:a2i.shouru endl;i=i+1;for(i;ix;i+)a2i.gonghao=a1i.gongh

25、ao;strcpy(a2i.zhiwei,a1i.zhiwei);strcpy(a2i.xingming,a1i.xingming);if(strcmp(a2i.zhiwei,技术员)=0)a2i.xiaoshi=a1i.xiaoshi;a2i.shouru=a1i.shouru;fstream cun1;i=0;cun1.open(保存人员.txt,ios:trunc);if(!cun1)cout cannot open fileendl;while(ix)cun1a2i.gonghaoendl;cun1a2i.xingmingendl;cun1a2i.zhiweiendl;if(strcm

26、p(a2i.zhiwei,技术员)=0)cun1a2i.xiaoshiendl;cun1a2i.shouruendl;i+;cun.close();(3) “employee.cpp”#includeemployee.h#include#include#include#include#include#includedouble employee:gerno()cout请输入工号number;return number;char *employee:getname()cout请输入姓名name;return name;char *employee:gerpost()cout请输入职位post;r

27、eturn post;/double Technician:pay()income=30*100*hour;return income;double Technician:Set_hour() couthour;return hour;/void Saleman:sale()/当月销售额cout请输入当月销售额salary;double Saleman:pay()income=salary*0.04;return income;/double Manager:pay() income=8000; return income;/double Salesmanager:pay()income=50

28、00+salary*0.05; return income;(3)” employee.cpp”#includeemployee.h#include#include#include#include#include#includedouble employee:gerno()cout请输入工号number;return number;char *employee:getname()cout请输入姓名name;return name;char *employee:gerpost()cout请输入职位post;return post;/double Technician:pay()income=30

29、*100*hour;return income;double Technician:Set_hour() couthour;return hour;/void Saleman:sale()/当月销售额cout请输入当月销售额salary;double Saleman:pay()income=salary*0.04;return income;/double Manager:pay() income=8000; return income;/double Salesmanager:pay()income=5000+salary*0.05; return income;(4)”gzgl.cpp”#

30、includeemployee.h#include#include#include#include#include#include #include int IntputMenu();void readmenu();int deletmenu();int xiugaimenu();int Showmenu();int ai;extern int k;void main()Showmenu();int Showmenu()int nu;nu=readrenshu();while(1) coutendl; cout 小型公司工资管理系统 endl;cout endl;cout 请选择您所需要的操作: endl;cout 数据录入: 1,并按回车键endl;cout 删除数据: 2,并按回车键endl;cout 修改数据: 3,并按回车键endl;cout 读入数据: 4,并按回车键endl;cout 退出系统: 5,并按回车键endl;cout endl;coutendlendlendl;coutai;switch(ai) case 1:IntputMenu();break;case 2:deletmenu();break;case 3:xiugaimenu();break;case 4:readmenu();break;case 5:retu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号