一、内容

1.题目《小型公司工资管理系统》设计

2.设计说明与要求

(1) 公司主要有5类人员:文秘、技术经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。

人的职工号、姓名、月工资、年龄、性别等信息。

(2) 工资的计算方法

A、技术经理:固定月薪为5000元,业绩分三个等级,每级1000元奖金。

B、技术员:工作时间*小时工资(40/小时);

C、销售员:销售额*5%提成;

D、销售经理:底薪(5000元)+所辖部门销售总额*0.3%

E、文秘:固定工资4000元,奖金视当月的工作情况而定。

(3) 输入员工数据,要求每类人员不能少于4人,员工信息输出格式参考运行效果。

二、存档

(1) 实现功能

① 数据录入:输入各种数据;

② 数据统计:统计各销售经理下属销售员的销售额之和;销售经理按工

资进行的冒泡排序;

③ 数据打印:打印各类员工的数据信息;

④ 数据备份:把各类员工的数据信息写入文件中保存;

⑤ 退出:推出本系统;

(2) 菜单说明

⑴数据录入指通过键盘输入各类员工的各项数据;

⑵数据统计指统计各销售经理下身书销售员的销售额及销售额之和;销售按工资进行冒泡排序;

⑶数据打印指按照表格的格式在屏幕上输出各员工的信息;

⑷数据备份指将所有员工的信息保存到文件;

⑸退出:结束程序的运行。

三、设计思路

从运行效果可以看出主函数是一个选择结构,可以确定主函数的内容;再根据类的层次结构合理的定义类及其对象,在类中声明成员函数来完成对保护数据成员的调用,输出数据。

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;const A=2;
const B=4;
int a,b,c,d,s;/*--------------------------------------------------*/
/*-----------------------类-------------------------*/
/*--------------------------------------------------*/
class employee //员工(基类)
{
protected:string name;int num;int age;char sex;double pay;
public:employee(){ name="\0";num=0;age=0;sex='\0';pay=0;}void set(){cout<<"其姓名:"; cin>>name;cout<<"性别(M/W):"; cin>>sex;cout<<"年龄:";cin>>age;}int get1(){return num;}string get2(){return name;}char get3(){return sex;}int get4(){return age;}double payment(){return pay;}
};/*--------------------------------------------------*/
/*-----------------------类-------------------------*/
/*--------------------------------------------------*/
class technician:public employee//技术员
{
protected:int workhour;
public:void set(){cout<<"技术员的编号:"; cin>>num;employee::set();cout<<"工作时间:"; cin>>workhour;cout<<endl;pay=40*workhour; }
};technician te[A];
/*--------------------------------------------------*/
/*-----------------------类-------------------------*/
/*--------------------------------------------------*/class manager:public employee //技术经理
{
public:void set(){cout<<"技术经理的编号:";cin>>num;employee::set();cout<<endl;}int get(){return 5000;}
};manager mana[A];
/*--------------------------------------------------*/
/*-----------------------类-------------------------*/
/*--------------------------------------------------*/class secretary:public employee //文秘
{public:void set(){cout<<"文秘的编号:";cin>>num;employee::set();cout<<endl;}int get(){return 4000;}
};secretary secr[A];
/*--------------------------------------------------*/
/*-----------------------类-------------------------*/
/*--------------------------------------------------*/
class seller:public employee//销售员
{
protected:double sell;int managernum;
public:void set(){cout<<"销售员的编号:"; cin>>num;employee::set();cout<<"销售额:";cin>>sell;cout<<"所属销售经理的编号:"; cin>>managernum;pay=sell*0.05;cout<<endl;}int get5(){return managernum;}double get6(){return sell;}void tongji(){cout<<"│"<<setw(12)<<num<<"│"<<setw(12)<<name<<"│"<<setw(12)<<sell<<"│"<<endl;}
};seller se[B];/*--------------------------------------------------*/
/*-----------------------类-------------------------*/
/*--------------------------------------------------*/
class sellmanager:public employee //销售经理
{
protected:int sumsale;
public:void set(){cout<<"销售经理的编号:"; cin>>num; employee::set();cout<<endl;for (int i=0;i<B;i++)if (num==se[i].get5()){ sumsale=sumsale+se[i].get6();}pay=5000+sumsale*0.003;}void tongji(){cout<<"职工号为 "<<num<<" 销售经理 "<<name<<" 下属销售员的业绩为:"<<endl;cout<<"┌──────┬──────┬──────┐"<<endl;cout<<"│"<<setw(12)<<"职工号"<<"│"<<setw(12)<<"姓名"<<"│"<<setw(12)<<"销售额 "<<"│"<<endl;}
};sellmanager semana[A];/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
/*&&&&&&&&&&&&&&&&&&&&&&&&&&以下为函数&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
/*&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
void line()
{
}//画线/****************************************************/
/*************************输入***********************/
/****************************************************/
void shuru1()
{
for(a=0;a<A;a++)
te[a].set();
line();
cout<<"-------------------------------------"<<endl<<endl;
}
void shuru2() {
for(a=0;a<A;a++) mana[a].set(); line();
}void shuru3() {
for(b=0;b<B;b++) se[b].set(); line();
}void shuru4() {
for(a=0;a<A;a++) semana[a].set(); line();
}
void shuru5() {
for(a=0;a<A;a++) secr[a].set(); line();
}/****************************************************/
/*************************目录***********************/
/****************************************************/
void mulu()
{cout<<" ★★小型公司工资管理系统★★ "<<endl; cout<<"┌───────────────┐"<<endl;cout<<"│ 请选择您所需的操作           │"<<endl;cout<<"│ 数据输入:     1,并按回车键 │"<<endl;cout<<"│ 数据统计:     2,并按回车键 │"<<endl; cout<<"│ 数据打印:    3,并按回车键 │"<<endl; cout<<"│ 数据备份:    4,并按回车键 │"<<endl; cout<<"│ 退出系统:    5,并按回车键 │"<<endl; cout<<"└───────────────┘"<<endl;cin>>c;cout<<endl;
}
void cijimulu()
{cout<<" ★★小型公司工资管理系统★★ "<<endl;
cout<<"请选择一个操作:";
cout<<endl;
cout<<"┌────────────────┐"<<endl;
cout<<"│ 请选择您所需的操作             │"<<endl;
cout<<"│技术员数据输入:  1,并按回车键 │"<<endl;
cout<<"│技术经理数据输入:2,并按回车键 │"<<endl;
cout<<"│销售员数据输入:  3,并按回车键 │"<<endl;
cout<<"│销售经理数据输入:4,并按回车键 │"<<endl;
cout<<"│文秘数据输入:    5,并按回车键 │"<<endl;
cout<<"│返回上一级:      6,并按回车键 │"<<endl;
cout<<"└────────────────┘"<<endl;
cout<<"请选择一个操作:";
cin>>d;
cout<<endl;
}/****************************************************/
/*************************标题***********************/
/****************************************************/
void biaotou()
{
cout<<"┌──────┬──────┬──────┬──────┬──────┐"<<endl;
cout<<"│"<<setw(12)<<"职工号"
<<"│"<<setw(12)<<"姓名"
<<"│"<<setw(12)<<"性别"
<<"│"<<setw(12)<<"年龄"
<<"│"<<setw(12)<<"工资"
<<"│"<<endl;
}
void biaozhong()
{
cout<<"├──────┼──────┼──────┼──────┼──────┤"<<endl;
}
void biaowei()
{
cout<<"└──────┴──────┴──────┴──────┴──────┘"<<endl;
}/****************************************************/
/*************************统计***********************/
/****************************************************/
void tongji()
{int a,b,s;for(a=0;a<A;a++){s=0;semana[a].tongji();for(b=0;b<B;b++){if(se[b].get5()==semana[a].get1()){cout<<"├──────┼──────┼──────┤"<<endl; se[b].tongji();s=s+se[b].get6();}   }cout<<"├──────┼──────┴──────┤"<<endl;cout<<"│"<<setw(8)<<"销售额总计: "<<"│ "<<setw(21)<<s<<" "<<endl;cout<<"└──────┴─────────────┘"<<endl; }cout<<"销售经理按工资排序为:"<<endl;biaotou();for(int i=0;i<A-1;i++) {for(int j=i+1;j<A;j++)if(semana[i].payment()<semana[j].payment()){sellmanager g;g=semana[i];semana[i]=semana[j];semana[j]=g;}}for (int k=0;k<A;k++){biaozhong();cout<<"│"<<setw(12)<<semana[k].get1()<<"│"<<setw(12)<<semana[k].get3()<<"│"<<setw(12)<<semana[k].get2()<<"│"<<setw(12)<<semana[k].get4()<<"│"<<setw(12)<<semana[k].payment()<<"│"<<endl;}biaowei();
}/****************************************************/
/*************************显示***********************/
/****************************************************/
void daying()
{int k;cout<<"请等待......."<<endl<<endl;cout<<"职工基本情况一览表如下"<<endl<<endl;cout<<"技术员"<<endl<<endl;biaotou();for(k=0;k<A;k++){biaozhong();cout<<"│"<<setw(12)<<te[k].get1()<<"│"<<setw(12)<<te[k].get2()<<"│"<<setw(12)<<te[k].get3()<<"│"<<setw(12)<<te[k].get4()<<"│"<<setw(12)<<te[k].payment()<<"│"<<endl;}biaowei();line();cout<<"技术经理"<<endl<<endl;biaotou();for(k=0;k<A;k++){biaozhong(); cout<<"│"<<setw(12)<<mana[k].get1()<<"│"<<setw(12)<<mana[k].get2()<<"│"<<setw(12)<<mana[k].get3()<<"│"<<setw(12)<<mana[k].get4()<<"│"<<setw(12)<<mana[k].get()<<"│"<<endl;}biaowei();line();cout<<"销售经理"<<endl<<endl;biaotou();for(k=0;k<A;k++){ biaozhong();  cout<<"│"<<setw(12)<<semana[k].get1()<<"│"<<setw(12)<<semana[k].get3()<<"│"<<setw(12)<<semana[k].get2()<<"│"<<setw(12)<<semana[k].get4()<<"│"<<setw(12)<<semana[k].payment()<<"│"<<endl;}biaowei();line();cout<<"销售员"<<endl<<endl;cout<<"┌────┬────┬────┬────┬────┬──────────┐"<<endl;cout<<"│"<<setw(8)<<"职工号"<<"│"<<setw(8)<<"姓名"<<"│"<<setw(8)<<"性别"<<"│"<<setw(8)<<"年龄"<<"│"<<setw(8)<<"工资"<<"│"<<setw(20)<<"所属部门经理"<<"│"<<endl;for(k=0;k<B;k++){cout<<"├────┼────┼────┼────┼────┼──────────┤"<<endl;cout<<"│"<<setw(8)<<se[k].get1()<<"│"<<setw(8)<<se[k].get2()<<"│"<<setw(8)<<se[k].get3()<<"│"<<setw(8)<<se[k].get4()<<"│"<<setw(8)<<se[k].payment()<<"│"<<setw(20)<<se[k].get5()<<"│"<<endl; }cout<<"└────┴────┴────┴────┴────┴──────────┘"<<endl<<endl;cout<<"------------------------------------------------"<<endl<<endl;
cout<<"文秘"<<endl<<endl;biaotou();for(k=0;k<A;k++){biaozhong(); cout<<"│"<<setw(12)<<secr[k].get1()<<"│"<<setw(12)<<secr[k].get2()<<"│"<<setw(12)<<secr[k].get3()<<"│"<<setw(12)<<secr[k].get4()<<"│"<<setw(12)<<secr[k].get()<<"│"<<endl;}biaowei();line();
}
/****************************************************/
/*************************备份***********************/
/****************************************************/
void beifen()
{ofstream myfile("qt.txt");int k;cout<<"请等待......."<<endl<<endl;myfile<<"职工基本情况一览表如下"<<endl<<endl; myfile<<"技术员"<<endl<<endl; myfile<<"┌──────┬──────┬──────┬──────┬──────┐"<<endl;myfile<<"│"<<setw(12)<<"职工号"<<"│"<<setw(12)<<"姓名"<<"│"<<setw(12)<<"性别"<<"│"<<setw(12)<<"年龄"<<"│"<<setw(12)<<"工资"<<"│"<<endl;for(k=0;k<A;k++) {myfile  <<"├──────┼──────┼──────┼──────┼──────┤"<<endl;myfile  <<"│"<<setw(12)<<te[k].get1()<<"│"<<setw(12)<<te[k].get2()<<"│"<<setw(12)<<te[k].get4()<<"│"<<setw(12)<<te[k].get3()<<"│"<<setw(12)<<te[k].payment()<<"│"<<endl;}myfile<<"└──────┴──────┴──────┴──────┴──────┘"<<endl;myfile<<"技术经理"<<endl<<endl;myfile<<"┌──────┬──────┬──────┬──────┬──────┐"<<endl;myfile<<"│"<<setw(12)<<"职工号"<<"│"<<setw(12)<<"姓名"<<"│"<<setw(12)<<"性别"<<"│"<<setw(12)<<"年龄"<<"│"<<setw(12)<<"工资"<<"│"<<endl;for(k=0;k<A;k++) {myfile<<"├──────┼──────┼──────┼──────┼──────┤"<<endl;myfile<<"│"<<setw(12)<<mana[k].get1()<<"│"<<setw(12)<<mana[k].get3()<<"│"<<setw(12)<<mana[k].get2()<<"│"<<setw(12)<<mana[k].get4()<<"│"<<setw(12)<<mana[k].get()<<"│"<<endl; }myfile<<"└──────┴──────┴──────┴──────┴──────┘"<<endl;myfile<<"销售经理"<<endl<<endl;myfile<<"┌──────┬──────┬──────┬──────┬──────┐"<<endl;myfile<<"│"<<setw(12)<<"职工号"<<"│"<<setw(12)<<"姓名"<<"│"<<setw(12)<<"性别"<<"│"<<setw(12)<<"年龄"<<"│"<<setw(12)<<"工资"<<"│"<<endl;for(k=0;k<A;k++) { myfile<<"├──────┼──────┼──────┼──────┼──────┤"<<endl;myfile<<"│"<<setw(12)<<semana[k].get1()<<"│"<<setw(12)<<semana[k].get3()<<"│"<<setw(12)<<semana[k].get2()<<"│"<<setw(12)<<semana[k].get4()<<"│"<<setw(12)<<semana[k].payment()<<"│"<<endl;}myfile<<"└──────┴──────┴──────┴──────┴──────┘"<<endl;myfile<<"销售员"<<endl<<endl;myfile<<"┌────┬────┬────┬────┬────┬──────────┐"<<endl;myfile<<"│"<<setw(8)<<"职工号"<<"│"<<setw(8)<<"姓名"<<"│"<<setw(8)<<"性别"<<"│"<<setw(8)<<"年龄"<<"│"<<setw(8)<<"工资"<<"│"<<setw(20)<<"所属部门经理"<<"│"<<endl;for(k=0;k<B;k++){myfile<<"├────┼────┼────┼────┼────┼──────────┤"<<endl;myfile<<"│"<<setw(8)<<se[k].get1()<<"│"<<setw(8)<<se[k].get2()<<"│"<<setw(8)<<se[k].get3()<<"│"<<setw(8)<<se[k].get4()<<"│"<<setw(8)<<se[k].payment()<<"│"<<setw(20)<<se[k].get5()<<"│"<<endl; }myfile<<"└────┴────┴────┴────┴────┴──────────┘"<<endl<<endl;myfile<<"文秘"<<endl<<endl;myfile<<"┌──────┬──────┬──────┬──────┬──────┐"<<endl;myfile<<"│"<<setw(12)<<"职工号"<<"│"<<setw(12)<<"姓名"<<"│"<<setw(12)<<"性别"<<"│"<<setw(12)<<"年龄"<<"│"<<setw(12)<<"工资"<<"│"<<endl;for(k=0;k<A;k++) {myfile<<"├──────┼──────┼──────┼──────┼──────┤"<<endl;myfile<<"│"<<setw(12)<<secr[k].get1()<<"│"<<setw(12)<<secr[k].get3()<<"│"<<setw(12)<<secr[k].get2()<<"│"<<setw(12)<<secr[k].get4()<<"│"<<setw(12)<<secr[k].get()<<"│"<<endl; }myfile<<"└──────┴──────┴──────┴──────┴──────┘"<<endl;}/*****************************主循环**************************/
int main()
{while (c!=5){mulu();d=0;         //保证可以正常进入次级目录line();switch(c){case 1:while (d!=6){cijimulu();line();switch(d){case 1:shuru1();continue; case 2: shuru2(); continue;case 3: shuru3(); continue;case 4:shuru4(); continue;case 5:shuru5();continue;}}continue; case 2:tongji(); continue; case 3:daying();continue;case 4: beifen(); continue;}}
return 0;}

实现一个工资管理系统相关推荐

  1. C++上机实验,做一个工资管理系统

    目标:熟悉输入与输出流的定义及操作方式. 上机任务: A.P268  第1题,第2题,第3题,第4题,第5题,第6题. B.设计一个工资管理系统,计算某高校教师.行政员工.临时工.双肩挑员工的工资数额 ...

  2. java企业工资管理系统_基于B/S模式下的JAVA工资管理系统

    今日思考,完成一个工资管理系统项目,需要实现哪些功能? 此类项目常见描述如下: 随着经济的发展,企业正向着大型化.规模化发展,而对于大中型企业,员工.职称等跟工资管理有关的信息随之急剧增加.在这种情况 ...

  3. 基于Access数据库利用ASP平台开发的简单工资管理系统

    上学期学习了数据库这门课程,老师就布置了一个学期的课程设计,有很多题目可以选择,我选择的是工资管理系统.由于大四时间比较紧张,我做了一个很简易的工资管理系统,它包括对数据库最基本的集中操作,inser ...

  4. 用python写:完成一个员工管理系统 要求存储员工的工号、姓名、年龄、性别、工资 1、员工录入 2、查询员工信息 3、修改员工信息 4、删除 5、根据工号查看 6、退出

    完成一个员工管理系统    要求存储员工的工号.姓名.年龄.性别.工资    1.员工录入    2.查询员工信息    3.修改员工信息    4.删除    5.根据工号查看    6.退出 Em ...

  5. c语言 建立一个企业人事工资系统并能够实现工资的信息管理系统,工资管理系统的设计与实现...

    摘要: 传统的工资管理系统通常采用固定的工资计算公式和固定的工资项目,难于适应市场经济条件下工资政策和工资制度的变化.现有的柔性工资结构的工资管理系统虽然可以自定义帐套,工资项目和计算公式等,但往往操 ...

  6. 一个工人工资管理系统

    /* 有10个职工,每个职工的数据包括职工编号.姓名.职称.工龄及基准工资,从键盘输入每个职工的数据, 具体要求: (1) 通过键盘接收数据: (2) 计算并输出每个职工应发的工资(工资计算原则是:基 ...

  7. 计算机会计学ufo报表,计算机会计实践部分工资管理系统.ppt

    <计算机会计实践部分工资管理系统.ppt>由会员分享,可在线阅读,更多相关<计算机会计实践部分工资管理系统.ppt(22页珍藏版)>请在人人文库网上搜索. 1.计算机会计学,主 ...

  8. python工资管理系统课程设计_高校教师绩效工资管理系统设计开发,源码下载

    大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个高校教师绩效工资管理系统(高校教师绩效工 ...

  9. C语言编写工资管理系统类似学生管理系统

    C语言编写工资管理系统类似学生管理系统 开始界面和菜单界面B void start() //开始界面 {system("cls");//清屏 system("color ...

最新文章

  1. c语言一个偶数用两个素数表示,用java怎样编写一个偶数总能表示为两个素数之和的程序...
  2. 【VS开发】【DSP开发】WinDriver简介(或介绍)
  3. 20181029NOIP模拟赛T2
  4. 20大新兴物联网趋势
  5. 【练习题】构造方法 编写Java程序,模拟简单的计算器。
  6. Java各进制之间的转换
  7. Java Web学习总结(10)学习总结-EL表达式
  8. 更新Docker中的Jenkins版本
  9. (转)openlayers实现在线编辑
  10. 中国基座污水泵市场趋势报告、技术动态创新及市场预测
  11. 金九银十!2021阿里+头条+腾讯等大厂Java笔试题分享
  12. 电脑上查看端口是否被占用
  13. When Startup Disk is Full
  14. MacBook Pro下载工具
  15. C++ primer 5th 读完的一点心得体会
  16. 【结合文献】——Affymatrix芯片数据预处理
  17. 计算机桌面有阴影,电脑桌面图标有阴影怎么去掉
  18. Win7电脑如何关闭智能卡服务功能--win10专业版
  19. python里的非_python中或与非
  20. Elo Rating System 简介及其在游戏中的运用

热门文章

  1. the irrationals-a story of the numbers you can't count on
  2. 华为认证含金量高吗?
  3. 京东app优惠券python抓取_教大家用fd来抓取京东app的领券链接
  4. Git入门:边玩边学
  5. 事无巨细,时钟芯片DS1302
  6. Visual Studio 2017 RC 下载 最新版本的发行说明
  7. UE5引擎 PC端的Landscape渲染浅分析
  8. 河北省高级职称计算机考试试题,河北省职称计算机考试真题.doc
  9. 双谐振特斯拉线圈工作原理的疑问
  10. 你愿意为了一个更整洁的收件箱付款99美元吗?