docs

a slatepencil documentail site

View on GitHub

GAME: Employee Management System

Approach of the Game

// C++ program for the above approach
#include <bits/stdc++.h>

#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 Entries can be "
		<< max << "\n";

	cout << "Enter the number of "
		<< "Entries required";
	cin >> num;

	if (num > 20) {
		cout << "Maximum number of "
			<< "Entries 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 << "Available 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 basis 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;
}