Employee Management System Using C++

Employ management system using C++ is menu driven program which allows us to add, update, delete and search record of an employee working in an organization. The program employee management system store employee ID, name, post, department and salary of employee. Initially, it has no data. Thus, we have to add employee records choosing appropriate option in this program (i.e. selecting option #1). Employee Management system using C++ program uses EmpID as unique identifier (i.e. primary key) to recognize employee. So, we can’t add two employees having same ID. After successful entry of records of some employee, we can search record on the basic of ID or department. We can search particular employee from ID choosing option #2 and if we want to see all employee working in a department, we have to choose another option (i.e. option#3 in menu). We can list all employee records also using option #4 in menu. Again, we can update and delete existing record. Thus, this project is useful to mange employee records in an organization.

Code:

#include<iostrem.h>
#include<conio.h>
#include<fstream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<string.h>
#include<stdio.h>
const char* fileName=”Employee.txt”;

Class Employee
{
private;
int EmpID;
char EmpName[50],Post[50],Department[10];
float Salary;
public;
void ReadData();
int GetID();
void DisplayRecord();
char* GetDepartment();
};

void Employee::ReadData()
{
cout<<endl<<“Employee ID:”;
cin>>EmpID;
cout<<“Employee Name:”;
cin>>EmpName;
cout<<“Employee’s Post:”;
cin>>Post;
cout<<“Employee’s Department:”;
cin>>Department;
cout<<“Salary:”;
cin>>Salary;
}

void Employee::DisplayRecord()
{
cout<<endl<<“_______________________________”;
cout<<endl<<setw(5)<<EmpID<<setw(15)<<EmpName<<setw(15)<<Post<<setw(15)<<Department<<setw(8)<<Salary;
}

int Employee::GetID()
{
return EmpID;
}

char* Employee::GetDepartment()
{
return Department;
}

void main()
{
Employee emp,e;
char option,ch,Dept[50];
int ID,isFound;
clrscr();
fstream file;
file.open(fileName,ios::ate|ios::in|ios::out|ios::binary);
do
{
cout<<********Menu********;
cout<<endl<<“Enter your option”;
cout<<endl<<“1 => Add a new record”;
cout<<endl<<“2 => Search record from employee id”;
cout<<endl<<“3 => List Employee of particular department”;
cout<<endl<<“4 => Display all employee”;
cout<<endl<<“5 => Update record of an employee”;
cout<<endl<<“6 => Delete record of particular employee”;
cout<<endl<<“7 => Exit from the program”<<endl;
cout<<“********************”<<endl;
cin>>option;
switch(option)
{
case ‘1’:
emp.ReadData();
file.seekg(0,ios::beg);
isFound=0;
file.read((char*)&e,sizeof(e));
while(!file.eof())
{
if(e.GetID()==emp.GetID())
{
cout<<“This ID already exist…Try for another ID”;
isFound=1;
break;
}
file.read((char*)&e,sizeof(e));
}
if(isFound==1)
break;
file.clear();
file.seekp(0,ios::end);
file.write((char*)&emp, sizeof(emp));
cout<<endl<<“New record has been added successfully…”;
break;

case ‘2’:
isFound=0;
cout<<endl<<“Enter ID of an employee to be searched:”;
cin>>ID;
file.seekg(0,ios::beg);
file.read((char*)&e,sizeof(e));
while(!file.eof())
{
if(e.GetID()==ID)
{
cout<<endl<<“The record found….”<<endl;
cout<<endl<<setw(5)<<“ID”<<setw(15)<<“Name”<<setw(15)<<“Post”<<setw(15)<<“Department”<<setw(8)<<“Salary”;
e.DisplayRecord();
isFound=1;
break;
}
file.read((char*)&e,sizeof(e));
}
file.clear();
if(isFound==0)
cout<<endl<<“Data not found for employee ID#”<<ID;
break;
case ‘3’:
isFound=0;
cout<<“Enter department name to list employee within it:”;
cin>>Dept;
file.seekg(0,ios::beg);
file.read((char*)&e,sizeof(e));
while(!file.eof())
{
if(strcmp(e.GetDepartment(),Dept)==0)
{
cout<<endl<<“The record found for this department”<<endl;

cout<<endl<<setw(5)<<“ID”<<setw(15)<<“Name”<<setw(15)<<“Post”<<setw(15)<<“Department”<<setw(8)<<“Salary”;
e.DisplayRecord();
isFound=1;
break;
}
file.read((char*)&e,sizeof(e));
}
file.clear();
if(isFound==0)
cout<<endl<<“Data not found for department”<<Dept;
break;

case ‘4’:
cout<<endl<<“Record for employee”;
file.clear();
file.seekg(0,ios::beg);
int counter=0;
file.read((char*)&e,sizeof(e));
while(!file.eof())
{
counter++;
if(counter==1)
{
cout<<endl<<setw(5)<<“ID”<<setw(15)<<“Name”<<setw(15)<<“Post”<<setw(15)<<“Department”<<setw(8)<<“Salary”;
}
e.DisplayRecord();
file.read((char*)&e,sizeof(e));
}
cout<<endl<<counter<<“records found……”;
file.clear();
break;

case ‘5’:
int recordNo=0;
cout<<endl<<“File is being modified….”;
cout<<endl<<“Enter employee ID to be updated:”;
cin>>ID;
isFound=0;
file.seekg(0,ios::beg);
file.read((char*)&e,sizeof(e));
while(!file.eof())
{
recordNo++;
if(e.GetID()==ID)
{
cout<<“The old record of employee having ID”<<ID<< “is:”;
e.DisplayRecord();
isFound=1;
break;
}
file.read((char*)&e,sizeof());
}

if(idFound==0)
{
cout<<endl<<“Data not found for employee ID#”<<ID;
break;
}
file.clear();
int location=(recordNo-1)*sizeof(e);
file.seekp(location,ios::beg);
cout<<endl<<“Enter new record for employee having ID”<<ID;
e.ReadData();
file.write((char*)&e, sizeof(e));
break;

case ‘6’:
recordNo=0;
cout<<endl<<“Enter employment ID to be deleted:”;
cin>>ID;
isFound=0;
file.seekg(0,ios::beg);
file.read((char*)&e,sizeof(e));
while(!file.eof())
{
recordNo++;
if(e.GetID()==ID)
{
cout<<” The old record of employee having ID “<<ID<< ” is: “;
e.DisplayRecord();
isFound=1;
break;
}
file.read((char*)&e,sizeof(e));
}
char tempFile[]=”temp.txt”;
fstream temp(tempFile,ios::out|ios::binary);
if(isFound==0)
{
cout<<endl<<“Data not found for employee ID#”<<ID;
break;
}
else
{
file.clear();
file.seekg(0,ios::beg);
file.read((char*)&e,sizeof(e));
while(!file.eof())
{
if(eGetID()!=ID)
temp.write((char*)&e,sizeof(e));
file.read((char*)&e,sizeof(e));
}
file.close();
temp.close();
temp.open(tempFile,ios::in|ios::binary);
file.open(fileName,ios::out|ios::binary);
temp.read((char*)&e,sizeof(e));
while(!temp.eof())
{
file.write((char*)&e,sizeof(e));
temp.read((char*)&e,sizeof(e));
}
}
temp.close();
file.close();
remove(tempFile);
file.open(fileName,ios::ate|ios::in|ios::out|ios::binary);
break;

case ‘7’:
exit(0);
break;

default:
cout<<“Invalid Options”;
}
cout<<“\nDo you want to continue…..?y/n”;
cin>>ch;
}while(ch!=’n’);
}

 

  • max

    The above given source code is only working in turbo c++ why not working in Dev-c.

  • Aminu Bello

    Websites like this are really good, because they help other people who need help or are weak in programming . Keep up the good work. God bless

  • how to run the program

  • Bilal

    sir please tell me how i can run this program in dev C++.
    please answer my question urgently.