




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象实训报告 -题目:小型公司的工资管理系统指导老师: xxx 学生姓名: xxx 班 级: 计Yxxx 学 号: xxxxxxxxxxx 时 间: xxxx年x月x日 目录一、实训内容与目的-2二、设计分析-3三、执行结果和结果分析-23四、实训总结- 27一、 实训内容: 小型公司的工资管理设计任务编写一个小型公司的工资管理程序。该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。其中月薪计算方法为:经理固定月薪8000元,兼职技术如愿100元/小时,销售员为当月销售额的4%,销售经理保底工资5000元另加所管部门销售额的5。设计要求(1) 职工编号自动产生(从1000起编号)。(2) 将公司人员的编号、姓名和月薪等信息保存在文件中,然后从文件中读入这些信息并显示。如果访问文件失败,采用异常处理机制解决。(3) 设计输入,输出的界面。(成绩为优良,需采用MFC方式。若设计困难可以使用DOS方式)二、 设计分析:(1) 类的定义:1、 “employee.h”#include#include#include#include#include#includeclass employeepublic:employee();double gerno();char *getname();char *gerpost();double getsalary();virtualdouble 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 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 shouru;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 *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.shouruendl;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)cout 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(个数.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.zhiwei,技术员)=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;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 职位:a1i.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.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);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.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 deletname(int x)/按姓名删除函数,参数x为总人数if(x=0)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.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);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(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)cun1a2i.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)/修改一条记录的内容,参数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.xingming 职位: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.zhiwei,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请重新输入工作小时数: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.gonghao;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(strcmp(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;return 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=5000+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*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”#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:return 0;break;default:cout你的选择出错了!请重新输入吧!endl;int deletmenu()while(1)int r;r=readrenshu();coutendl; cout 小型公司工资管理系统 endl;cout endl;cout 请选择您所需要的操作: endl;cout 按工号删除: 1,并按回车键endl;cout 按姓名删除: 2,并按回车键endl;cout 返回上一层: 3,并按回车键endl;cout endl;coutendlendlendl;coutai;switch(ai) case 1:deletgon(r);break;case 2:deletname(r);break;case 3:return 0;break;default:cout你的选择出错了!请重新输入吧!endl;void readmenu()int r;r=readrenshu();read(r);int xiugaimenu() while(1)int r;r=readrenshu();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:deletgon(r);break;/case 2:deletname(r);break;case 4:xiugai_all(r);break;case 5:return 0;break;default:cout你的选择出错了!请重新输入吧!endl;int IntputMenu() cout 小型公司工资管理系统endl; cout endl; cout 请选择您所需要的操作 endl; cout 经理数据输入 : 1,并按回车键 endl; cout 技术员数据输入 : 2,并按回车键 endl; cout 销售员
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中英语学术词汇教学与口语表达能力提升策略论文
- 节约用蒸汽管理制度
- 茶餐厅消防管理制度
- 财务管理学及财务知识课后分析答案(一)
- 管理心理学案例分析-摩托罗拉公司的内部激励
- 自动化仪表与监测在工业中变革与创新
- 财税实务企业并购重组的企业所得税与土地增值税政策比较分析
- 2025年重庆一中中考数学三模试卷
- 设备综合管理制度范本大全
- 财务会计实训个人心得体会10篇
- 质量管理体系变更管理制度
- 硫化氢中毒现场处置方案
- 系统集成方案及实施步骤
- 2025年陇南村文书考试题及答案
- 2025年中科院心理咨询师培训考试复习题库-上(单选题)
- 危化三级安全教育
- 马克思主义基本原理与科技创新的结合心得体会
- 美发店投资入股协议书8篇
- 第四单元 课题3 物质组成的表示教学设计-2024-2025学年九年级化学人教版(2024)上册
- DeepSeek零基础到精通手册(保姆级教程)
- 2024年中国软件行业基准数据 (CSBMK-202410)
评论
0/150
提交评论