当前位置:编程学习 > C/C++ >>

c++编程员工工资管理系统

用C++编译 员工工资管理系统。

员工有:姓名,工号,基本工资,奖金,缴税,实发工资。缴税=基本工资*5%. 实发工资=基本工资+奖金-缴税。

实现一个简单的工资管理系统,实现员工信息的添加,删除,查询(按照姓名,工号),打印信息列表。

界面如下:

欢迎使用中江工资管理系统

请选择您的功能操作:

0:增加新员工

1:删除员工

2:查询员工

3:打印员工信息

4:退出系统

 

0模块界面:

请输入员工信息[姓名 工号 基本工资 奖金]:      

 

最后提示,操作是否成功。如,成功增加一个员工信息 或  增加员工信息失败。

返回主界面。

 

1模块界面:

请输入待删除员工的工号:  

 

提示 员工不存在 或者   请确认是否删除该员工[列出员工基本信息] y/n? 

若输入y/Y,则 进行删除。最后提示,操作是否成功。如工号 XXX 的员工已被删除。

返回主界面。

 

2模块界面:

请输入待查找的员工的工号/姓名:

若查找到该员工,则提示该员工的基本信息。

否则 提示 该员工[输入的内容] 不存在。

返回主界面。

3模块界面:

所有员工信息列表:

姓名  工号   基本工资    奖金     缴税   实发工资

 

 

 

 

答案:// 源程序

///////////////////欢迎使用中江工资管理系统////////////////////////////

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

// *********************************************************************
// 雇员类定义
class employee
{
protected:
 char name[20];   // 姓名
 int id;    // 工号
 double bp,bo,ta,ap;  // 基本工资、资金、缴税、实发工资
public:
 employee ();   // 构造函数
 ~employee ();   // 析构函数
 
 void SetName (char* tname); // 设置姓名
 void SetId (int tid);  // 设置工号
 void SetBasicPay (double tbp); // 设置基本工资
 void SetBonus (double tbo); // 设置资金
 
 char* GetName ();  // 获取姓名
 int GetId ();   // 获取工号
 double GetBasicPay ();  // 获取基本工资
 double GetBonus ();  // 获取奖金
 double GetTax ();  // 获取缴税
 double GetAccumPay ();  // 获取实发工资
};

// -----------------------------------------------------------------------
// 雇员类的实现
employee::employee ()
{
 id = 0;
 bp = 0.0;
 bo = 0.0;
 ta = 0.0;
 ap = 0.0;
}

employee::~employee ()
{}

void employee::SetName (char* tname)
{ strcpy(name,tname); }

void employee::SetId (int tid)
{ id=tid; }

void employee::SetBasicPay (double tbp)
{ bp=tbp; }

void employee::SetBonus (double tbo)
{ bo=tbo; }

char* employee::GetName ()
{ return name; }

int employee::GetId ()
{ return id; }

double employee::GetBasicPay ()
{ return bp; }

double employee::GetBonus ()
{ return bo; }

double employee::GetTax ()  // 缴税为基本工资的5%
{ return bp*0.05; }

double employee::GetAccumPay ()  // 实发工资=基本工资+奖金-缴税
{ return bp+bo-ta; }

// ************************************************************************
// 管理界面类定义
class EMM
{
private:
 employee Array[100];
 int n;    // 员工人数
 
 void InfEmployee (int count); // 显示员工基本信息
public:
 EMM ();    // 构造函数
 ~EMM ();   // 析构函数
 void AddEmployee ();  // 增加新员工
 void DeleteEmployee ();  // 删除员工
 void IndexEmployee ();  // 查询员工
 void OutputEmployee ();  // 打印员工信息
};

// -------------------------------------------------------------------------
// 管理界面的实现
EMM::EMM ()
{ n=0; }

EMM::~EMM ()
{}

void EMM::AddEmployee ()  // 增加新员工
{
 char tname[20];
 int tid;
 double tbp,tbo;
 cin >> tname >> tid >> tbp >> tbo;
 if(n>=50)
  cout << "增加员工信息失败!\n";
 else
 {
  Array[n].SetName (tname);
  Array[n].SetId (tid);
  Array[n].SetBasicPay (tbp);
  Array[n].SetBonus (tbo);
 }
 ++n;
}

void EMM::DeleteEmployee ()  // 删除员工
{
 int tid;
 char ch;
 cout << "请输入待删除员工的工号: " << ends;
 cin >> tid;
 for (int j = 0; j < n; j++)
  if (tid == Array[j].GetId())
  {
   InfEmployee (j);
   cout << "请确认是否删除该员工 y/n ?  : ";
   cin >> ch;
   if (ch == 'Y' || ch == 'y')
   {
    --n;
    cout << "工号" << tid << "的员工已被删除!" << endl;
   }
   goto loop;
  }
  cout << "该员工" << tid << "不存在!" << endl;
loop:;
}

void EMM::IndexEmployee ()  // 查询员工
{
 int i, j, tid;
 char tname[20];
 cout << "请选择查询方式:1、工号 2、姓名 :";
 cin >> i;
 if (i == 1)
 {
  cout << "请输入待查找的员工的工号:"<<ends;
  cin >> tid;
  for (j = 0; j < n; j++)
   if (tid == Array[j].GetId())
   {
    InfEmployee (j);
    goto loop;
   }
 }
 if (i == 2)
 {
  cout << "请输入待查找的员工的姓名:"<<ends;
  cin >> tname;
  for( j = 0; j < n; j++)
   if (strcmp(tname,Array[j].GetName()) == 0)
   {
    InfEmployee (j);
    goto loop;
   }
 }
 cout << "该员工不存在!" << endl;
loop: ;
}

void EMM::OutputEmployee ()  // 打印员工信息
{
 cout << "所有员工信息列表:" <<endl;
 cout << "姓名\t工号\t基本工资\t奖金\t缴税\t实发工资" << endl;
 for (int i = 0; i < n; i++)
 { 
  cout << Array[i].GetName() << '\t' << Array[i].GetId() << '\t';
  cout << Array[i].GetBasicPay() << "\t\t" << Array[i].GetBonus() << '\t';
  cout << Array[i].GetTax() << '\t' << Array[i].GetAccumPay() <<endl;
 }
}

void EMM::InfEmployee (int count)

 cout << "姓名: " << Array[count].GetName() << endl;
 cout << "工号: " << Array[count].GetId() << endl;
 cout << "基本工资: " << Array[count].GetBasicPay() << endl;
 cout << "奖金: " << Array[count].GetBonus() <<endl;
 cout << "缴税: " << Array[count].GetTax() <<endl;
 cout << "实发工资: "<< Array[count].GetAccumPay() <<endl;
}

// *********************************************************************
// 界面信息
void Infor ()
{
 cout << "\n===欢迎使用中江工资管理系统===" << endl;
 cout << "\t0:增加新员工" << endl;
 cout << "\t1:删除员工" << endl;
 cout << "\t2:查询员工" << endl;
 cout << "\t3:打印员工信息 " << endl;
 cout << "\t4:退出系统" << endl;
 cout << "请选择您的功能操作:" << ends;
}

// ---------------------------------------------------------------------
int main()
{
 EMM a;
 int i=0, c=1;
 
 while (1)
 {
  Infor();
  cin >> i;
  system("cls");
  cout << endl;
  switch(i)
  {
  case 0:
   int count;
   cout << "请输入要添加新员工的人数n: ";
   cin >> count;
   cout << "序号 姓名 工号 基本工资 奖金" << endl;
   while (count--)
   {
    cout << "NO." << c <<ends;
    a.AddEmployee();
    ++c;
   }
   cout << "成功增加员工信息!\n";
   break;
  case 1:
   a.DeleteEmployee();
   break;
  

上一个:关于c++头文件的问题
下一个:C++小程序出错(结构体)

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,