<p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;"><strong>// 8、实现一个工资管理系统</strong></p><p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;">系统的主要功能是计算职工当月工资并要求存档案。</p><p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;">公司是一个不大不小公司,职工有种5类型,他们是技术人员,销售人员,文秘,技术经理,销售经理。世界从来就不是公平的,在公司内部也一样,不同职位工资不同。</p><p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;"> 技术人员工资是按小时算,薪酬为40元。销售人员工资是按销售提成,月工资为销售总额的5%。文秘为有4000元底薪,奖金要看当月的工作情况而定。技术经理和销售经理,均有每月5000元固定工资。技术经理工作业绩分为三个等级,每级有1000元奖金,销售经理资金由他管理团队销售业绩而定,为总经额的0.3%。</p>
#include<iostream>
#include<iomanip>
#include<fstream>
#include<string>
using namespace std;
struct worker1 //职工信息结构体定义
{
char name[10]; //职工姓名
int level; //业绩等级
int salary; //职工工资
};
struct worker1 Nl;
struct worker2
{
char name[10];
int profit; //总经额
int salary;
};
struct worker2 Nl;
struct worker3
{
char name[10];
int time; //工作时间
int salary;
};
struct worker3 N[3];
struct worker4
{
char name[10];
int sale; //销售总量
int salary;
};
struct worker4 N[3];
struct worker5
{
char name[10];
int sale; //奖金
int salary;
};
struct worker5 N[2];
int a=0,b=0,c=0; //存放实际输入的职工人数
void use(); //使用介绍
void input() ; //录入职工信息函数声明
void show(); //显示职工信息函数声明
void save(); //存档
void getsave(); //打开存档
void account(); //计算当月公司总工资
int main()
{
int select;
while(1)
{
system("cls");
cout<<"\t ******************欢迎使用******************\n";
cout<<"\t ****************工资管理系统****************\n";
cout<<"\t *------------------------------------------*\n";
cout<<"\t * 1——使用介绍 *\n";
cout<<"\t * 2——录入职工信息 *\n";
cout<<"\t * 3——显示职工信息 *\n";
cout<<"\t * 4——存档 *\n";
cout<<"\t * 5——打开存档 *\n";
cout<<"\t * 0——退出 *\n";
cout<<"\t *------------------------------------------*\n";
cout<<"\t 你要输入的编号是(0--5):";
cin>>select;
if(select==0) break;
switch(select){
case 1:
system("cls");
use(); //调用input函数录入数据
system("pause");
break;
case 2:
system("cls");
input(); //调用show函数显示职工信息
system("pause");
break;
case 3:
system("cls");
show(); //调用search函数查询职工信息
system("pause");
break;
case 4:
system("cls");
save(); //调用add函数添加职工信息
system("pause");
break;
case 5:
system("cls");
getsave(); // 调用del函数删除职工信息
system("pause");
break;
default:
system("cls");
cout<<"没有此选项,请重新选择!"<<endl;
}
}
return 0;
}
void input() //录入职工信息的函数
{
cout<<endl<<"\t技术经理姓名:";
cin>>Nl.name;
cout<<"\t业绩等级(1~10):";
cin>>Nl.level;
Nl.salary=5000+1000*Nl.level;
cout<<"\t当月工资(元):"<<Nl.salary<<endl;
cout<<endl<<"\t销售经理姓名:";
cin>>Nl.name;
cout<<"\t总经额(元):";
cin>>Nl.profit;
Nl.salary=5000+(Nl.profit*3)/1000;
cout<<"\t当月工资(元):"<<Nl.salary<<endl;
do
{
cout<<endl<<"\t技术人员姓名:";
cin>>N[a].name;
cout<<"\t工作时间(小时):";
cin>>N[a].time;
N[a].salary=40*N[a].time;
cout<<"\t当月工资(元):"<<N[a].salary<<endl;
a++;
}while(a<3);
do
{
cout<<endl<<"\t销售人员姓名:";
cin>>N[b].name;
cout<<"\t销售总量(元):";
cin>>N[b].sale;
N[b].salary=(5*N[b].sale)/100;
cout<<"\t当月工资(元):"<<N[b].salary<<endl;
b++;
}while(b<3);
do
{
cout<<endl<<"\t文秘姓名:";
cin>>wm[c].name;
cout<<"\t奖金(元):";
cin>>wm[c].sale;
N[c].salary=4000+N[c].sale;
cout<<"\t当月工资(元):"<<N[c].salary<<endl;
c++;
}while(c<2);
account();
}
void show() //显示所有职工信息函数
{
cout<<left;//设置输出左对齐
cout<<setw(20)<<"技术经理姓名"<<setw(20)<<"业绩等级"<<setw(12)<<"当月工资"<<endl;
cout<<setw(20)<<Nl.name<<setw(20)<<Nl.level<<setw(12)<<N.salary<<endl;
cout<<setw(20)<<"销售经理姓名"<<setw(20)<<"总经额"<<setw(12)<<"当月工资"<<endl;
cout<<setw(20)<<Nl.name<<setw(20)<<Nl.profit<<setw(12)<<Nl.salary<<endl;
cout<<setw(20)<<"技术人员姓名"<<setw(20)<<"工作时间"<<setw(12)<<"当月工资"<<endl;
for(int a=0;a<3;a++)
{
cout<<setw(20)<<N[a].name<<setw(20)<<N[a].time<<setw(12)<<N[a].salary<<endl;
}
cout<<endl;
cout<<setw(20)<<"销售人员姓名"<<setw(20)<<"销售总量"<<setw(12)<<"当月工资"<<endl;
for(int b=0;b<3;b++)
{
cout<<setw(20)<<N[b].name<<setw(20)<<N[b].sale<<setw(12)<<N[b].salary<<endl;
}
cout<<endl;
cout<<setw(20)<<"文秘姓名"<<setw(20)<<"奖金"<<setw(12)<<"当月工资"<<endl;
for(int c=0;c<2;c++)
{
cout<<setw(20)<<N[c].name<<setw(20)<<N[c].sale<<setw(12)<<N[c].salary<<endl;
}
cout<<endl;
account();
}
void use()
{
cout<<"本公司有技术经理1名、销售经理1名、技术人员3名、销售人员3名和文秘2名,共10名职工。录入职工信息时请逐一全部录入。录入相关业绩即可显示其当月工资。只有当存档以后才能打开存档。只要存档过,以后每次打开此系统都可以打开存档。"<<endl;
}
void save()
{
cout<<"自己完善添加函数"<<endl;
}
void getsave()
{
cout<<"自己完善删除函数"<<endl;
}
void account()
{
int acsalery=Nl.salary+Nl.salary+N[0].salary+N[1].salary+N[2].salary+N[0].salary+N[1].salary+N[2].salary+N[0].salary+N[1].salary;
cout<<endl<<"\t公司当月总工资(元):"<<acsalery<<endl;
}