21xrx.com
2024-11-22 09:34:43 Friday
登录
文章检索 我的文章 写文章
C++工资管理系统代码
2023-07-02 14:58:34 深夜i     --     --
C++ 工资管理系统 代码 薪资计算 数据管理

C++工资管理系统代码,是一款用于管理企事业单位员工工资信息的软件。其主要功能包括添加、修改、查询、删除员工信息、计算员工工资等。本文将详细介绍这款软件的代码实现。

一、添加员工信息

添加员工信息是该软件的基本功能之一。在代码实现中,可以使用结构体来表示一个员工的信息,如下:

struct Employee

  string name;   // 姓名

  string id;    // 工号

  float workDays;  // 工作天数

  float baseSalary; // 基本工资

  float otHours;  // 加班时数

;

其中,name表示员工姓名,id表示工号,workDays表示工作天数,baseSalary表示基本工资,otHours表示加班时数。在添加员工信息时,可以利用文件操作将员工信息写入文件中,代码如下:

void addEmployee() {

  cout << "请输入员工信息:" << endl;

  Employee emp;

  cout << "姓名:";

  cin >> emp.name;

  cout << "工号:";

  cin >> emp.id;

  cout << "工作天数:";

  cin >> emp.workDays;

  cout << "基本工资:";

  cin >> emp.baseSalary;

  cout << "加班时数:";

  cin >> emp.otHours;

  // 将员工信息写入文件中

  ofstream out("employee.txt", ios::app);

  out << emp.name << " " << emp.id << " " << emp.workDays << " " << emp.baseSalary << " " << emp.otHours << endl;

  out.close();

  cout << "员工信息添加成功!" << endl;

}

二、修改员工信息

修改员工信息是该软件另一个重要的功能。在代码实现中,可以使用文件操作读取员工信息,然后根据工号来进行修改。代码如下:

void modifyEmployee() {

  cout << "请输入要修改的员工工号:" << endl;

  string id;

  cin >> id;

  // 读取员工信息

  ifstream in("employee.txt");

  string line;

  bool found = false;

  while (getline(in, line)) {

    stringstream ss(line);

    string name;

    float workDays, baseSalary, otHours;

    ss >> name >> id >> workDays >> baseSalary >> otHours;

    // 根据工号修改员工信息

    if (id == id) {

      cout << "请输入修改后的信息:" << endl;

      cout << "姓名:";

      cin >> name;

      cout << "工作天数:";

      cin >> workDays;

      cout << "基本工资:";

      cin >> baseSalary;

      cout << "加班时数:";

      cin >> otHours;

      // 更新员工信息

      ofstream out("employee.txt");

      out << name << " " << id << " " << workDays << " " << baseSalary << " " << otHours << endl;

      out.close();

      cout << "员工信息修改成功!" << endl;

      found = true;

      break;

    }

  }

  in.close();

  // 判断员工工号是否存在

  if (!found)

    cout << "不存在该员工工号的信息!" << endl;

}

三、查询员工信息

查询员工信息是该软件的常用功能之一。在代码实现中,可以使用文件操作读取员工信息,然后根据员工姓名或工号来进行查找。代码如下:

void queryEmployee() {

  cout << "请选择查询方式:1、按姓名查询,2、按工号查询" << endl;

  int choice;

  cin >> choice;

  // 按姓名查询

  if (choice == 1) {

    cout << "请输入员工姓名:" << endl;

    string name;

    cin >> name;

    // 读取员工信息

    ifstream in("employee.txt");

    string line;

    bool found = false;

    while (getline(in, line)) {

      stringstream ss(line);

      string id;

      float workDays, baseSalary, otHours;

      ss >> name >> id >> workDays >> baseSalary >> otHours;

      // 判断员工姓名是否匹配

      if (name == name)

        cout << "姓名:" << name << endl;

        cout << "工号:" << id << endl;

        cout << "工作天数:" << workDays << endl;

        cout << "基本工资:" << baseSalary << endl;

        cout << "加班时数:" << otHours << endl;

        found = true;

        break;

    }

    in.close();

    // 判断员工姓名是否存在

    if (!found)

      cout << "不存在该员工姓名的信息!" << endl;

  }

  // 按工号查询

  else if (choice == 2) {

    cout << "请输入员工工号:" << endl;

    string id;

    cin >> id;

    // 读取员工信息

    ifstream in("employee.txt");

    string line;

    bool found = false;

    while (getline(in, line)) {

      stringstream ss(line);

      string name;

      float workDays, baseSalary, otHours;

      ss >> name >> id >> workDays >> baseSalary >> otHours;

      // 判断员工工号是否匹配

      if (id == id)

        cout << "姓名:" << name << endl;

        cout << "工号:" << id << endl;

        cout << "工作天数:" << workDays << endl;

        cout << "基本工资:" << baseSalary << endl;

        cout << "加班时数:" << otHours << endl;

        found = true;

        break;

    }

    in.close();

    // 判断员工工号是否存在

    if (!found)

      cout << "不存在该员工工号的信息!" << endl;

  }

  else

    cout << "输入错误!" << endl;

}

四、删除员工信息

删除员工信息是该软件的另一个重要功能之一。在代码实现中,可以使用文件操作读取员工信息,然后根据员工工号来进行删除。代码如下:

void deleteEmployee() {

  cout << "请输入要删除的员工工号:" << endl;

  string id;

  cin >> id;

  // 读取员工信息

  ifstream in("employee.txt");

  string line;

  bool found = false;

  vector lines; // 存储所有员工信息

  while (getline(in, line)) {

    stringstream ss(line);

    string name;

    float workDays, baseSalary, otHours;

    ss >> name >> id >> workDays >> baseSalary >> otHours;

    // 如果工号匹配,将该员工信息加入lines中

    if (id == id)

      found = true;

    else {

      lines.push_back(line);

    }

  }

  in.close();

  // 如果找到该员工信息,则更新文件内容

  if (found) {

    ofstream out("employee.txt");

    for (int i = 0; i < lines.size(); i++) {

      out << lines[i] << endl;

    }

    out.close();

    cout << "员工信息删除成功!" << endl;

  }

  // 如果找不到该员工信息

  else

    cout << "不存在该员工工号的信息!" << endl;

}

五、计算员工工资

计算员工工资是该软件的核心功能之一。在代码实现中,可以根据员工的工作天数、基本工资和加班时数来计算员工的工资。代码如下:

void calculateSalary() {

  cout << "请输入员工工号:" << endl;

  string id;

  cin >> id;

  // 读取员工信息

  ifstream in("employee.txt");

  string line;

  bool found = false;

  while (getline(in, line)) {

    stringstream ss(line);

    string name;

    float workDays, baseSalary, otHours;

    ss >> name >> id >> workDays >> baseSalary >> otHours;

    // 判断员工工号是否匹配

    if (id == id) {

      float salary = workDays * baseSalary + otHours * 50;

      cout << "员工工资为:" << salary << endl;

      found = true;

      break;

    }

  }

  in.close();

  // 判断员工工号是否存在

  if (!found)

    cout << "不存在该员工工号的信息!" << endl;

}

综上所述,C++工资管理系统代码实现了添加、修改、查询和删除员工信息,以及计算员工工资等主要功能。这些功能不仅可以帮助企业实现员工管理,而且可以帮助企业更好地控制成本和提高效益。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复