实现一个工资管理系统
2014-06-21 16:19
465 查看
一、内容
1.题目《小型公司工资管理系统》设计
2.设计说明与要求
(1) 公司主要有5类人员:文秘、技术经理、技术员、销售员、销售经理。要求存储这些人的职工号、姓名、月工资、年龄、性别等信息。
人的职工号、姓名、月工资、年龄、性别等信息。
(2) 工资的计算方法
A、技术经理:固定月薪为5000元,业绩分三个等级,每级1000元奖金。
B、技术员:工作时间*小时工资(40/小时);
C、销售员:销售额*5%提成;
D、销售经理:底薪(5000元)+所辖部门销售总额*0.3%
E、文秘:固定工资4000元,奖金视当月的工作情况而定。
(3) 输入员工数据,要求每类人员不能少于4人,员工信息输出格式参考运行效果。
二、存档
(1) 实现功能
① 数据录入:输入各种数据;
② 数据统计:统计各销售经理下属销售员的销售额之和;销售经理按工
资进行的冒泡排序;
③ 数据打印:打印各类员工的数据信息;
④ 数据备份:把各类员工的数据信息写入文件中保存;
⑤ 退出:推出本系统;
(2) 菜单说明
⑴数据录入指通过键盘输入各类员工的各项数据;
⑵数据统计指统计各销售经理下身书销售员的销售额及销售额之和;销售按工资进行冒泡排序;
⑶数据打印指按照表格的格式在屏幕上输出各员工的信息;
⑷数据备份指将所有员工的信息保存到文件;
⑸退出:结束程序的运行。
三、设计思路
从运行效果可以看出主函数是一个选择结构,可以确定主函数的内容;再根据类的层次结构合理的定义类及其对象,在类中声明成员函数来完成对保护数据成员的调用,输出数据。
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; }
相关文章推荐
- (C语言) 怎么用代码实现一个学生成绩管理系统
- Visual Studio 连接 Mysql 实现一个选课管理系统--->提取数据的几种方法
- 歌厅歌曲管理系统(转)用c语言实现的一个课程设计
- php--实现一个简单的学生管理系统
- 用vba实现一个简单的工资系统
- 用SBT实现一个学生健康管理系统...
- C实现的一个简单的学生成绩管理系统
- C语言实现的工资管理系统
- 很好用的一个通用权限管理系统的实现算法
- 亚宇工资管理系统---早年制作的一个很小的商业软件[源码和软件截图]
- 一个简单的本地化资源管理系统--具体实现
- 一个工人工资管理系统
- 一个简单仓库管理系统的设计与实现--需求篇
- 用C语言实现一个类似学籍管理系统的 e协 管理系统beta ( 正在完善中...)
- c语言实现的简单的员工工资管理系统
- 一个资源管理系统的设计--解析linux的cgroup实现
- 一个学生成绩管理系统的设计与实现:2
- 用一个系统去控制管理多个现有系统, 实现核心集中的统一管理控制系统
- 通用权限管理系统组件 中后一个登录的把前一个登录的踢掉功能的实现
- C语言实现一个学生信息管理系统