课程综合设计

实现一个工资管理系统

系统的主要功能是计算职工当月工资并要求存档案。

公司是一个不大不小公司,职工有种5类型,他们是技术人员,销售人员,文秘,技术经理,销售经理。世界从来就不是公平的,在公司内部也一样,不同职位工资不同。

    技术人员工资是按小时算,薪酬为40元。销售人员工资是按销售提成,月工资为销售总额的5%。文秘为有4000元底薪,奖金要看当月的工作情况而定。技术经理和销售经理,均有每月5000元固定工资。技术经理工作业绩分为三个等级,每级有1000元奖金,销售经理资金由他管理团队销售业绩而定,为总经额的0.3%。

<pre name="code" class="cpp">#include<iostream>
#include<iomanip>
#include<fstream>
#include<string>

using namespace std;


struct job1     //职工信息结构体定义
{
	char name[10];      //职工姓名
	int level;          //业绩等级
	int salary;         //职工工资

};
struct job1 jsjl;    //定义一个全局变量jsjl,用来存放职工信息

struct job2     //职工信息结构体定义
{
	char name[10];      //职工姓名
	int profit;          //总经额
	int salary;         //职工工资

};
struct job2 xsjl;    //定义一个全局变量xsjl,用来存放职工信息

struct job3     //职工信息结构体定义
{
	char name[10];      //职工姓名
	int time;          //工作时间
	int salary;         //职工工资

};
struct job3 jsry[3];    //定义一个全局变量jsry,用来存放职工信息

struct job4     //职工信息结构体定义
{
	char name[10];      //职工姓名
	int sale;          //销售总量
	int salary;         //职工工资

};
struct job4 xsry[3];    //定义一个全局变量xsry,用来存放职工信息

struct job5     //职工信息结构体定义
{
	char name[10];      //职工姓名
	int sale;          //奖金
	int salary;         //职工工资

};
struct job5 wm[2];    //定义一个全局变量wm,用来存放职工信息


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>>jsjl.name;
	cout<<"\t业绩等级(1~10):";
	cin>>jsjl.level;
	jsjl.salary=5000+1000*jsjl.level;
	cout<<"\t当月工资(元):"<<jsjl.salary<<endl;
	cout<<"___________________________________________"<<endl;

	cout<<endl<<"\t销售经理姓名:";
	cin>>xsjl.name;
	cout<<"\t总经额(元):";
	cin>>xsjl.profit;
	xsjl.salary=5000+(xsjl.profit*3)/1000;
	cout<<"\t当月工资(元):"<<xsjl.salary<<endl;
	cout<<"___________________________________________"<<endl;

  do
  {	  
	  cout<<endl<<"\t技术人员姓名:";
	  cin>>jsry[a].name;
      cout<<"\t工作时间(小时):";
	  cin>>jsry[a].time;
	  jsry[a].salary=40*jsry[a].time;
	  cout<<"\t当月工资(元):"<<jsry[a].salary<<endl;
	  cout<<"___________________________________________"<<endl;
	  a++;
	
  }while(a<3); 

  do
  {	  
	  cout<<endl<<"\t销售人员姓名:";
	  cin>>xsry[b].name;
      cout<<"\t销售总量(元):";
	  cin>>xsry[b].sale;
	  xsry[b].salary=(5*xsry[b].sale)/100;
	  cout<<"\t当月工资(元):"<<xsry[b].salary<<endl;
	  cout<<"___________________________________________"<<endl;
	  b++;
	
  }while(b<3);

  do
  {	  
	  cout<<endl<<"\t文秘姓名:";
	  cin>>wm[c].name;
      cout<<"\t奖金(元):";
	  cin>>wm[c].sale;
	  wm[c].salary=4000+wm[c].sale;
	  cout<<"\t当月工资(元):"<<wm[c].salary<<endl;
	  cout<<"___________________________________________"<<endl;
	  c++;
	
  }while(c<2);
  account();
  
}

void show()    //显示所有职工信息函数
{
	cout<<left;//设置输出左对齐
	cout<<setw(20)<<"技术经理姓名"<<setw(20)<<"业绩等级"<<setw(20)<<"当月工资"<<endl;
	cout<<setw(20)<<jsjl.name<<setw(20)<<jsjl.level<<setw(20)<<jsjl.salary<<endl<<"________________________________________________";

	cout<<endl<<setw(20)<<"销售经理姓名"<<setw(20)<<"总经额"<<setw(20)<<"当月工资"<<endl;
	cout<<setw(20)<<xsjl.name<<setw(20)<<xsjl.profit<<setw(20)<<xsjl.salary<<endl<<"________________________________________________"<<endl;

	cout<<setw(20)<<"技术人员姓名"<<setw(20)<<"工作时间(小时)"<<setw(20)<<"当月工资"<<endl;
	for(int a=0;a<3;a++)
	{
		cout<<setw(20)<<jsry[a].name<<setw(20)<<jsry[a].time<<setw(20)<<jsry[a].salary<<endl;
	}
	cout<<"________________________________________________"<<endl;
   
	cout<<setw(20)<<"销售人员姓名"<<setw(20)<<"销售总量"<<setw(20)<<"当月工资"<<endl;
	for(int b=0;b<3;b++)
	{
		cout<<setw(20)<<xsry[b].name<<setw(20)<<xsry[b].sale<<setw(20)<<xsry[b].salary<<endl;
	}
	cout<<"________________________________________________"<<endl;

	cout<<setw(20)<<"文秘姓名"<<setw(20)<<"奖金"<<setw(20)<<"当月工资"<<endl;
	for(int c=0;c<2;c++)
	{
		cout<<setw(20)<<wm[c].name<<setw(20)<<wm[c].sale<<setw(20)<<wm[c].salary<<endl;
	}
	cout<<"________________________________________________"<<endl;
	account();

}


void use()
{
   cout<<"该公司有技术经理1名、销售经理1名、技术人员3名、销售人员3名和文秘2名,共10名职工。录入职工信息时要逐一全部录入。录入相关业绩即可显示其当月工资。只有当存档以后才能打开存档。只要存档过,以后每次打开此系统都可以打开存档。"<<endl;
}

void save()
{
   ofstream os;
    os.open("存档.txt");
	os<<setw(20)<<"技术经理姓名"<<setw(20)<<"业绩等级"<<setw(20)<<"当月工资"<<endl;
	os<<setw(20)<<jsjl.name<<setw(20)<<jsjl.level<<setw(20)<<jsjl.salary<<endl<<"____________________________________________________________";
    os<<endl<<setw(20)<<"销售经理姓名"<<setw(20)<<"总经额"<<setw(20)<<"当月工资"<<endl;
	os<<setw(20)<<xsjl.name<<setw(20)<<xsjl.profit<<setw(20)<<xsjl.salary<<endl<<"____________________________________________________________";
	os<<endl<<setw(20)<<"技术人员姓名"<<setw(20)<<"工作时间(小时)"<<setw(20)<<"当月工资"<<endl<<endl;
	for(int a=0;a<3;a++)
	{
		os<<setw(20)<<jsry[a].name<<setw(20)<<jsry[a].time<<setw(20)<<jsry[a].salary<<endl;
	}
	os<<"____________________________________________________________"<<endl;
   
	os<<setw(20)<<"销售人员姓名"<<setw(20)<<"销售总量"<<setw(20)<<"当月工资"<<endl;
	for(int b=0;b<3;b++)
	{
		os<<setw(20)<<xsry[b].name<<setw(20)<<xsry[b].sale<<setw(20)<<xsry[b].salary<<endl;
	}
	os<<"____________________________________________________________"<<endl;

	os<<setw(20)<<"文秘姓名"<<setw(20)<<"奖金"<<setw(20)<<"当月工资"<<endl;
	for(int c=0;c<2;c++)
	{
		os<<setw(20)<<wm[c].name<<setw(20)<<wm[c].sale<<setw(20)<<wm[c].salary<<endl;
	}
	os.close();
	cout<<"存档成功!";
}

void getsave()
{
   ifstream in("存档.txt");  
    string filename;  
    string line;  
  
    if(in) // 有该文件  
    {  
        while (getline (in, line)) // line中不包括每行的换行符  
        {   
            cout << line << endl;  
        }  
    }  
    else // 没有该文件  
    {  
        cout <<"no such file" << endl;  
    }  
}

void account()
{
	int acsalery=jsjl.salary+xsjl.salary+jsry[0].salary+jsry[1].salary+jsry[2].salary+xsry[0].salary+xsry[1].salary+xsry[2].salary+wm[0].salary+wm[1].salary;
  cout<<endl<<"\t公司当月总工资(元):"<<acsalery<<endl;
}

操作如下:

选择1,使用介绍。


回到首页选择2,录入员工信息并计算当月工资。


3,显示录入的员工信息和当月工资。


4,将录入的信息存档。


存档信息保存在与程序同一文件夹的"存档.txt"文本中。


打开文本可以看到。


5,打开存档。




                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值