小型公司的工资管理系统实训报告样本_第1页
小型公司的工资管理系统实训报告样本_第2页
小型公司的工资管理系统实训报告样本_第3页
小型公司的工资管理系统实训报告样本_第4页
小型公司的工资管理系统实训报告样本_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象实训报告----题目:小型公司工资管理系统指引教师:xxx学生姓名:xxx班级:计Yxxx学号:xxxxxxxxxxx时间:xxxx年x月x日目录一、实训内容与目-------------------------------------------2二、设计分析----------------------------------------------------3三、执行成果和成果分析-------------------------------------23四、实训总结---------------------------------------------------27实训内容:小型公司工资管理设计任务编写一种小型公司工资管理程序。该公司重要有4类人员:经理、兼职技术人员、销售员和销售经理。其中月薪计算办法为:经理固定月薪8000元,兼职技术如愿100元/小时,销售员为当月销售额4%,销售经理保底工资5000元另加所管部门销售额5‰。设计规定职工编号自动产生(从1000起编号)。将公司人员编号、姓名和月薪等信息保存在文献中,然后从文献中读入这些信息并显示。如果访问文献失败,采用异常解决机制解决。设计输入,输出界面。(成绩为优良,需采用MFC方式。若设计困难可以使用DOS方式)设计分析:类定义:“employee.h”#include<iostream.h>#include<iomanip.h>#include<stdio.h>#include<string.h>#include<fstream.h>#include<tchar.h>classemployee{public: employee(){}; doublegerno(); char*getname(); char*gerpost(); doublegetsalary(); virtual doublepay()=0; employee(doublen,charmingzi[20],doubles) { number=n; strcpy(name,mingzi); income=s; } ~employee(){}; protected: doublenumber; charname[20]; charpost[20]; doubleincome;};classTechnician:publicemployee{protected:doublehour;doubleper;public: doubleSet_hour(); doublepay();};classSaleman:virtualpublicemployee{protected:doublesalary;//销售额public:voidsale(); doublepay();};classManager:virtualpublicemployee{ protected:public:doublepay();};classSalesmanager:virtualpublicManager,virtualpublicSaleman{public: doublepay();};structperson{ intgonghao; charxingming[20]; charzhiwei[20]; floatshouru; floatxiaoshi;};voidsaverenshu();intreadrenshu();voiddeletgon(intx);voiddeletname(intx);voidread(intx);voidxiugai_all(intx);voidsavetech(intx,char*y,char*z,floate,floatho);voidsave(intx,char*y,char*z,floate);(2)”change.cpp”#include"employee.h"intk;voidsave(intx,char*y,char*z,floate) //保存文献{ structpersona; a.gonghao=x; strcpy(a.xingming,y); strcpy(a.zhiwei,z); a.shouru=e; cout<<"工号:"<<a.gonghao<<""<<"姓名:"<<a.xingming<<""<<"职位:"<<a.zhiwei<<""<<"工资:"<<a.shouru<<""<<endl; fstreamcun; cun.open("保存人员.txt",ios::app|ios::out); 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.zhiwei,z); a.shouru=e; a.xiaoshi=ho; cout<<"工号:"<<a.gonghao<<""<<"姓名:"<<a.xingming<<""<<"职位:"<<a.zhiwei<<"工作小时:"<<a.xiaoshi<<""<<"工资:"<<a.shouru<<""<<endl; fstreamcun; cun.open("保存人员.txt",ios::app|ios::out); 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; cun.open("个数.txt",ios::trunc|ios::in); if(!cun) { cout<<"cannotopenfile"<<endl; } cun<<k<<endl; cun.close();}intreadrenshu() //读取在职总人数{ fstreamcun; cun.open("个数.txt",ios::in|ios::out); if(!cun) { cout<<"cannotopenfile"<<endl; } cun>>k; returnk;}voidread(intx) //读取在职人员信息,参数x为总人数{ if(x==0) { cout<<"还没有任何人员信息,请先添加人员信息!"<<endl; } structpersona[30]; fstreamcun; inti=0; cun.open("保存人员.txt",ios::in|ios::out); if(!cun) { cout<<"cannotopenfile"<<endl; } while(i<x) { cun>>a[i].gonghao; cun>>a[i].zhiwei; cun>>a[i].xingming; if(strcmp(a[i].zhiwei,"技术员")==0) { cun>>a[i].xiaoshi; } cun>>a[i].shouru; if(strcmp(a[i].zhiwei,"技术员")==0) { cout<<"工号:"<<a[i].gonghao<<""<<"姓名:"<<a[i].xingming<<""<<"职位:"<<a[i].zhiwei<<"工作小时"<<a[i].xiaoshi<<""<<"工资:"<<a[i].shouru<<""<<endl; } else { cout<<"工号:"<<a[i].gonghao<<""<<"姓名:"<<a[i].xingming<<""<<"职位:"<<a[i].zhiwei<<""<<"工资:"<<a[i].shouru<<""<<endl; } i++; } cun.close();}voiddeletgon(intx) //按工号删除函数,参数x为总人数{ if(x==0) { cout<<"没有任何员工信息,请先增长员工信息"<<endl; } structpersona1[30]; structpersona2[30]; fstreamcun; inti=0; cun.open("保存人员.txt",ios::in|ios::out); if(!cun) { cout<<"cannotopenfile"<<endl; } while(i<x) { cun>>a1[i].gonghao; cun>>a1[i].zhiwei; cun>>a1[i].xingming; if(strcmp(a1[i].zhiwei,"技术员")==0) { cun>>a1[i].xiaoshi; } cun>>a1[i].shouru; if(strcmp(a1[i].zhiwei,"技术员")==0) { cout<<"工号:"<<a1[i].gonghao<<""<<"姓名:"<<a1[i].xingming<<""<<"职位:"<<a1[i].zhiwei<<"工作小时"<<a1[i].xiaoshi<<""<<"工资:"<<a1[i].shouru<<""<<endl; } else { cout<<"工号:"<<a1[i].gonghao<<""<<"姓名:"<<a1[i].xingming<<""<<"职位:"<<a1[i].zhiwei<<""<<"工资:"<<a1[i].shouru<<""<<endl; } i++; } cun.close(); //////////////////// cout<<"请输入要删除人员工号:"<<endl; intg; cin>>g; i=0; while(g!=a1[i].gonghao) { i++; } if(g!=a1[i].gonghao) { cout<<"没找到!"<<endl; } else { g=i; for(i=0;i!=g;i++) { a2[i].gonghao=a1[i].gonghao; strcpy(a2[i].zhiwei,a1[i].zhiwei); strcpy(a2[i].xingming,a1[i].xingming); if(strcmp(a1[i].zhiwei,"技术员")==0) { a2[i].xiaoshi=a1[i].xiaoshi; } a2[i].shouru=a1[i].shouru; } for(i;i<x;i++) { a2[i].gonghao=a1[i+1].gonghao; strcpy(a2[i].zhiwei,a1[i+1].zhiwei); strcpy(a2[i].xingming,a1[i+1].xingming); if(strcmp(a1[i+1].zhiwei,"技术员")==0) { a2[i].xiaoshi=a1[i+1].xiaoshi; } a2[i].shouru=a1[i+1].shouru; } for(intl=0;l<(x-1);l++) { if(strcmp(a2[l].zhiwei,"技术员")==0) { cout<<"工号:"<<a2[l].gonghao<<""<<"姓名:"<<a2[l].xingming<<""<<"职位:"<<a2[l].zhiwei<<"工作小时"<<a2[l].xiaoshi<<""<<"工资:"<<a2[l].shouru<<""<<endl; } else { cout<<"工号:"<<a2[l].gonghao<<""<<"姓名:"<<a2[l].xingming<<""<<"职位:"<<a2[l].zhiwei<<""<<"工资:"<<a2[l].shouru<<""<<endl; } } fstreamcun1; i=0; cun1.open("保存人员.txt",ios::trunc); if(!cun1) { cout<<"cannotopenfile"<<endl; } while(i<(x-1)) { cun1<<a2[i].gonghao<<endl; cun1<<a2[i].zhiwei<<endl; cun1<<a2[i].xingming<<endl; if(strcmp(a2[i].zhiwei,"技术员")==0) { cun1<<a2[i].xiaoshi<<endl; } cun1<<a2[i].shouru<<endl; i++; } cun1.close(); fstreamcun2; cun2.open("个数.txt",ios::trunc|ios::in); if(!cun2) { cout<<"cannotopenfile"<<endl; } cun2<<(x-1)<<endl; cout<<"成功删除一种员工数据"<<endl; cun2.close(); }}voiddeletname(intx) //按姓名删除函数,参数x为总人数{ if(x==0) { cout<<"没有任何员工信息,请先增长员工信息"<<endl; } structpersona1[30]; structpersona2[30]; fstreamcun; inti=0; cun.open("保存人员.txt",ios::in|ios::out); if(!cun) { cout<<"cannotopenfile"<<endl; } while(i<x) { cun>>a1[i].gonghao; cun>>a1[i].zhiwei; cun>>a1[i].xingming; if(strcmp(a1[i].zhiwei,"技术员")==0) { cun>>a1[i].xiaoshi; } cun>>a1[i].shouru; if(strcmp(a1[i].zhiwei,"技术员")==0) { cout<<"工号:"<<a1[i].gonghao<<""<<"姓名:"<<a1[i].xingming<<""<<"职位:"<<a1[i].zhiwei<<"工作小时"<<a1[i].xiaoshi<<""<<"工资:"<<a1[i].shouru<<""<<endl; } else { cout<<"工号:"<<a1[i].gonghao<<""<<"姓名:"<<a1[i].xingming<<""<<"职位:"<<a1[i].zhiwei<<""<<"工资:"<<a1[i].shouru<<""<<endl; } i++; } cun.close(); //////////////////// cout<<"请输入要删除人员姓名:"<<endl; charxing[20]; cin>>xing; intg; i=0; while(strcmp(xing,a1[i].xingming)) { i++; } g=i; for(i=0;i!=g;i++) { a2[i].gonghao=a1[i].gonghao; strcpy(a2[i].zhiwei,a1[i].zhiwei); strcpy(a2[i].xingming,a1[i].xingming); if(strcmp(a1[i].zhiwei,"技术员")==0) { a2[i].xiaoshi=a1[i].xiaoshi; } a2[i].shouru=a1[i].shouru; } for(i;i<x;i++) { a2[i].gonghao=a1[i+1].gonghao; strcpy(a2[i].zhiwei,a1[i+1].zhiwei); strcpy(a2[i].xingming,a1[i+1].xingming); if(strcmp(a1[i+1].zhiwei,"技术员")==0) { a2[i].xiaoshi=a1[i+1].xiaoshi; } a2[i].shouru=a1[i+1].shouru; } for(intl=0;l<(x-1);l++) { if(strcmp(a2[l].zhiwei,"技术员")==0) { cout<<"工号:"<<a2[l].gonghao<<""<<"姓名:"<<a2[l].xingming<<""<<"职位:"<<a2[l].zhiwei<<"工作小时"<<a2[l].xiaoshi<<""<<"工资:"<<a2[l].shouru<<""<<endl; } else { cout<<"工号:"<<a2[l].gonghao<<""<<"姓名:"<<a2[l].xingming<<""<<"职位:"<<a2[l].zhiwei<<""<<"工资:"<<a2[l].shouru<<""<<endl; } } fstreamcun1; i=0; cun1.open("保存人员.txt",ios::trunc); if(!cun1) { cout<<"cannotopenfile"<<endl; } while(i<(x-1)) { cun1<<a2[i].gonghao<<endl; cun1<<a2[i].zhiwei<<endl; cun1<<a2[i].xingming<<endl; if(strcmp(a2[i].zhiwei,"技术员")==0) { cun1<<a2[i].xiaoshi<<endl; } cun1<<a2[i].shouru<<endl; i++; } cun1.close(); fstreamcun2; cun2.open("个数.txt",ios::trunc|ios::in); if(!cun2) { cout<<"cannotopenfile"<<endl; } cun2<<(x-1)<<endl; cout<<"成功删除一种员工数据"<<endl; cun2.close(); }voidxiugai_all(intx) //修改一条记录内容,参数x为总人数{ structpersona1[30]; structpersona2[30]; fstreamcun; inti=0; cun.open("保存人员.txt",ios::in|ios::out); if(!cun) { cout<<"cannotopenfile"<<endl; } while(i<x) { cun>>a1[i].gonghao; cun>>a1[i].zhiwei; cun>>a1[i].xingming; if(strcmp(a1[i].zhiwei,"技术员")==0) { cun>>a1[i].xiaoshi; } cun>>a1[i].shouru; if(strcmp(a1[i].zhiwei,"技术员")==0) { cout<<"工号:"<<a1[i].gonghao<<""<<"姓名:"<<a1[i].xingming<<""<<"职位:"<<a1[i].zhiwei<<"工作小时"<<a1[i].xiaoshi<<""<<"工资:"<<a1[i].shouru<<""<<endl; } else { cout<<"工号:"<<a1[i].gonghao<<""<<"姓名:"<<a1[i].xingming<<""<<"职位:"<<a1[i].zhiwei<<""<<"工资:"<<a1[i].shouru<<""<<endl; } i++; } intg,gonghao1; charxingming1[20],zhiwei1[20]; floatshouru1,xiaoshi1; cout<<"请输入要修改员工工号:"<<endl; cin>>g; i=0; while(g!=a1[i].gonghao) { i++; } g=i; for(i=0;i!=g;i++) { a2[i].gonghao=a1[i].gonghao; strcpy(a2[i].zhiwei,a1[i].zhiwei); strcpy(a2[i].xingming,a1[i].xingming); if(strcmp(a1[i].zhiwei,"技术员")==0) { a2[i].xiaoshi=a1[i].xiaoshi; } a2[i].shouru=a1[i].shouru; } cout<<"请重新输入工号:"<<endl; cin>>gonghao1; a2[i].gonghao=gonghao1; cout<<"请重新输入姓名:"<<endl; cin>>xingming1; strcpy(a2[i].xingming,xingming1); cout<<"请重新输入职位:"<<endl; cin>>zhiwei1; strcpy(a2[i].zhiwei,zhiwei1); if(strcmp(zhiwei1,"技术员")==0) { cout<<"请重新输入工作小时数:"<<endl; cin>>xiaoshi1; a2[i].xiaoshi=xiaoshi1; } cout<<"请重新输入月收入:"<<endl; cin>>shouru1; a2[i].shouru=shouru1; if(strcmp(a2[i].zhiwei,"技术员")==0) { cout<<"工号:"<<a2[i].gonghao<<""<<"姓名:"<<a2[i].xingming<<""<<"职位:"<<a2[i].zhiwei<<"工作小时:"<<a2[i].xiaoshi<<""<<"工资:"<<a2[i].shouru<<""<<endl; } else { cout<<"工号:"<<a2[i].gonghao<<""<<"姓名:"<<a2[i].xingming<<""<<"职位:"<<a2[i].zhiwei<<""<<"工资:"<<a2[i].shouru<<""<<endl; } i=i+1; for(i;i<x;i++) { a2[i].gonghao=a1[i].gonghao; strcpy(a2[i].zhiwei,a1[i].zhiwei); strcpy(a2[i].xingming,a1[i].xingming); if(strcmp(a2[i].zhiwei,"技术员")==0) { a2[i].xiaoshi=a1[i].xiaoshi; } a2[i].shouru=a1[i].shouru; } fstreamcun1; i=0; cun1.open("保存人员.txt",ios::trunc); if(!cun1) { cout<<"cannotopenfile"<<endl; } while(i<x) { cun1<<a2[i].gonghao<<endl; cun1<<a2[i].xingming<<endl; cun1<<a2[i].zhiwei<<endl; if(strcmp(a2[i].zhiwei,"技术员")==0) { cun1<<a2[i].xiaoshi<<endl; } cun1<<a2[i].shouru<<endl; i++; } cun.close();}(3)“employee.cpp”#include"employee.h"#include<iostream.h>#include<iomanip.h>#include<string.h>#include<stdio.h>#include<stdlib.h>#include<fstream.h>doubleemployee::gerno(){ cout<<"请输入工号"<<endl; cin>>number; returnnumber;}char*employee::getname(){ cout<<"请输入姓名"<<endl; cin>>name; returnname;}char*employee::gerpost(){ cout<<"请输入职位"<<endl; cin>>post; returnpost;}///////////////////////////////////doubleTechnician::pay(){ income=30*100*hour; returnincome;}doubleTechnician::Set_hour(){ cout<<"工作时间:"; cin>>hour; returnhour;}///////////////////////////////////voidSaleman::sale() //当月销售额{ cout<<"请输入当月销售额"<<endl; cin>>salary;}doubleSaleman::pay(){ income=salary*0.04; returnincome;}///////////////////////////////////doubleManager::pay(){ income=8000; returnincome;}///////////////////////////////////doubleSalesmanager::pay(){ income=5000+salary*0.05; returnincome;}(3)”employee.cpp”#include"employee.h"#include<iostream.h>#include<iomanip.h>#include<string.h>#include<stdio.h>#include<stdlib.h>#include<fstream.h>doubleemployee::gerno(){ cout<<"请输入工号"<<endl; cin>>number; returnnumber;}char*employee::getname(){ cout<<"请输入姓名"<<endl; cin>>name; returnname;}char*employee::gerpost(){ cout<<"请输入职位"<<endl; cin>>post; returnpost;}///////////////////////////////////doubleTechnician::pay(){ income=30*100*hour; returnincome; }doubleTechnician::Set_hour(){ cout<<"工作时间:"; cin>>hour; returnhour;}///////////////////////////////////voidSaleman::sale() //当月销售额{ cout<<"请输入当月销售额"<<endl; cin>>salary;}doubleSaleman::pay(){ income=salary*0.04; returnincome;}///////////////////////////////////doubleManager::pay(){ income=8000; returnincome;}///////////////////////////////////doubleSalesmanager::pay(){ income=5000+salary*0.05; returnincome;}(4)”gzgl.cpp”#include"employee.h"#include<string.h>#include<stdio.h>#include<stdlib.h>#include<fstream.h>#include<iomanip.h>#include<iostream.h>#include<fstream.h>intIntputMenu();voidreadmenu();intdeletmenu();intxiugaimenu();intShowmenu();intai;externintk;voidmain(){ Showmenu();}intShowmenu(){ intnu; nu=readrenshu(); while(1) { cout<<endl; cout<<"☆★小型公司工资管理系统★☆"<<endl; cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃请选取您所需要操作: ┃"<<endl; cout<<"┃数据录入: 1,并按回车键┃"<<endl; cout<<"┃删除数据:2,并按回车键┃"<<endl; cout<<"┃修改数据:3,并按回车键┃"<<endl; cout<<"┃读入数据: 4,并按回车键┃"<<endl; cout<<"┃退出系统: 5,并按回车键┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl; cout<<endl<<endl<<endl; cout<<"请选取一种操作:"; cin>>ai; switch(ai) { case1: IntputMenu();break; case2:deletmenu();break; case3:xiugaimenu();break; case4:readmenu();break; case5:return0;break; default:cout<<"你选取出错了!"<<"请重新输入吧!"<<endl; } }}intdeletmenu(){ while(1) { intr; r=readrenshu(); cout<<endl; cout<<"☆★小型公司工资管理系统★☆"<<endl; cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃请选取您所需要操作: ┃"<<endl; cout<<"┃按工号删除: 1,并按回车键┃"<<endl; cout<<"┃按姓名删除:2,并按回车键┃"<<endl; cout<<"┃返回上一层: 3,并按回车键┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl; cout<<endl<<endl<<endl; cout<<"请选取一种操作:"; cin>>ai; switch(ai) { case1: deletgon(r);break; case2:deletname(r);break; case3:return0;break; default:cout<<"你选取出错了!"<<"请重新输入吧!"<<endl; } }}voidreadmenu(){ intr; r=readrenshu(); read(r);}intxiugaimenu(){ while(1) { intr; r=readrenshu(); cout<<endl; cout<<"☆★小型公司工资管理系统★☆"<<endl; cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl; cout<<"┃请选取您所需要操作: ┃"<<endl; cout<<"┃修改工号: 1,并按回车键┃"<<endl; cout<<"┃修改姓名:2,并按回车键┃"<<endl; cout<<"┃修改职位:3,并按回车键┃"<<endl; cout<<"┃修改所有:4,并按回车键┃"<<endl; cout<<"┃返回上一层: 5,并按回车键┃"<<endl; cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl; cout<<endl<<endl<<endl; cout<<"请选取一种操作:"; cin>>ai; switch(ai) { //case1: deletgon(r);break; //case2:deletname(r);break; case4:xiugai_all(r);break; case5:return0;break; default:cout<<"你选取出错了!"<<"请重新输入吧!"<<endl; } }}intIntputMenu(){ cout<<"☆★小型公司工资管理系统★☆"<<endl;cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃请选取您所需要操作┃"<<endl;cout<<"┃经理数据输入:1,并按回车键┃"<<en

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论