📜  员工管理系统程序

📅  最后修改于: 2021-05-17 03:27:00             🧑  作者: Mango

员工管理系统(EMS)是为处理公司的主要客房清洁功能而构建的软件。 EMS帮助公司跟踪所有员工及其记录。它用于通过计算机系统管理公司。

员工管理系统的目标:

  • 建立员工表。
  • 插入新条目。
  • 删除条目。
  • 搜索记录。

员工资料:

  • 名称
  • 员工ID
  • 指定
  • 经验
  • 年龄

方法:

  1. 为了存储雇员的数据,创建一个用户定义数据类型,该数据类型将存储有关雇员的信息。以下是数据类型的声明:
    struct employee {
      string name;
      long int code;
      string designation;
      int exp;
      int age;
    };
    
  2. 建立Employee表:建立雇员表的想法是使用上述struct数据类型的数组,该数组将用于存储有关雇员的信息。为了将信息存储在索引i中,数据存储为:
    struct employee emp[10];
    emp[i].name = "GeeksforGeeks"
    emp[i].code = "12345"
    emp[i].designation = "Organisation"
    emp[i].exp = 10
    emp[i].age = 10
    
  3. 删除记录:由于我们使用数组来存储数据,因此要删除任何索引处的数据,请将该索引处的所有数据都移位1,并通过将数组的大小减小1来删除数组的最后一个数据。
  4. 在记录中搜索:为了基于任何参数在记录中搜索,其想法是遍历数据,如果值参数在任何索引处与存储的记录匹配,则打印该员工的所有信息。

以下是C语言中的员工管理系统的实现:

C++
// C++ program for the above approach
#include 
  
#define max 20
using namespace std;
  
// Structure of Employee
struct employee {
    string name;
    long int code;
    string designation;
    int exp;
    int age;
};
  
int num;
void showMenu();
  
// Array of Employees to store the
// data in the form of the Structure
// of the Array
employee emp[max], tempemp[max],
    sortemp[max], sortemp1[max];
  
// Function to build the given datatype
void build()
{
    cout << "Build The Table\n";
    cout << "Maximum Enteries can be "
         << max << "\n";
  
    cout << "Enter the number of "
         << "Enteries required";
    cin >> num;
  
    if (num > 20) {
        cout << "Maximum number of "
             << "Enteries are 20\n";
        num = 20;
    }
    cout << "Enter the following data:\n";
  
    for (int i = 0; i < num; i++) {
        cout << "Name ";
        cin >> emp[i].name;
  
        cout << "Employee ID ";
        cin >> emp[i].code;
  
        cout << "Designation ";
        cin >> emp[i].designation;
  
        cout << "Experience ";
        cin >> emp[i].exp;
  
        cout << "Age ";
        cin >> emp[i].age;
    }
  
    showMenu();
}
  
// Function to insert the data into
// given data type
void insert()
{
    if (num < max) {
        int i = num;
        num++;
  
        cout << "Enter the information "
             << "of the Employee\n";
        cout << "Name ";
        cin >> emp[i].name;
  
        cout << "Employee ID ";
        cin >> emp[i].code;
  
        cout << "Designation ";
        cin >> emp[i].designation;
  
        cout << "Experience ";
        cin >> emp[i].exp;
  
        cout << "Age ";
        cin >> emp[i].age;
    }
    else {
        cout << "Employee Table Full\n";
    }
  
    showMenu();
}
  
// Function to delete record at index i
void deleteIndex(int i)
{
    for (int j = i; j < num - 1; j++) {
        emp[j].name = emp[j + 1].name;
        emp[j].code = emp[j + 1].code;
        emp[j].designation
            = emp[j + 1].designation;
        emp[j].exp = emp[j + 1].exp;
        emp[j].age = emp[j + 1].age;
    }
    return;
}
  
// Function to delete record
void deleteRecord()
{
    cout << "Enter the Employee ID "
         << "to Delete Record";
  
    int code;
  
    cin >> code;
    for (int i = 0; i < num; i++) {
        if (emp[i].code == code) {
            deleteIndex(i);
            num--;
            break;
        }
    }
    showMenu();
}
  
void searchRecord()
{
    cout << "Enter the Employee"
         << " ID to Search Record";
  
    int code;
    cin >> code;
  
    for (int i = 0; i < num; i++) {
  
        // If the data is found
        if (emp[i].code == code) {
            cout << "Name "
                 << emp[i].name << "\n";
  
            cout << "Employee ID "
                 << emp[i].code << "\n";
  
            cout << "Designation "
                 << emp[i].designation << "\n";
  
            cout << "Experience "
                 << emp[i].exp << "\n";
  
            cout << "Age "
                 << emp[i].age << "\n";
            break;
        }
    }
  
    showMenu();
}
  
// Function to show menu
void showMenu()
{
  
    cout << "-------------------------"
         << "GeeksforGeeks Employee"
         << " Management System"
         << "-------------------------\n\n";
  
    cout << "Availiable Options:\n\n";
    cout << "Build Table         (1)\n";
    cout << "Insert New Entry    (2)\n";
    cout << "Delete Entry        (3)\n";
    cout << "Search a Record     (4)\n";
    cout << "Exit                (5)\n";
  
    int option;
  
    // Input Options
    cin >> option;
  
    // Call function on the bases of the
    // above option
    if (option == 1) {
        build();
    }
    else if (option == 2) {
        insert();
    }
    else if (option == 3) {
        deleteRecord();
    }
    else if (option == 4) {
        searchRecord();
    }
    else if (option == 5) {
        return;
    }
    else {
        cout << "Expected Options"
             << " are 1/2/3/4/5";
        showMenu();
    }
}
  
// Driver Code
int main()
{
  
    showMenu();
    return 0;
}


输出:
以下是上述程序的输出: