645 lines
11 KiB
C++
645 lines
11 KiB
C++
|
Project - Employees Management System
|
||
|
|
||
|
#include<iostream.h>
|
||
|
#include<string.h>
|
||
|
#include<iomanip.h>
|
||
|
#include<dos.h>
|
||
|
#include<conio.h>
|
||
|
#include<stdio.h>
|
||
|
#define max 20
|
||
|
struct employee
|
||
|
{
|
||
|
char name[20];
|
||
|
long int code;
|
||
|
char designation[20];
|
||
|
int exp;
|
||
|
int age;
|
||
|
};
|
||
|
int num;
|
||
|
employee emp[max],tempemp[max],sortemp[max],sortemp1[max];
|
||
|
void main()
|
||
|
{
|
||
|
clrscr();
|
||
|
void build();
|
||
|
void list();
|
||
|
void insert();
|
||
|
void deletes();
|
||
|
void edit();
|
||
|
void search();
|
||
|
void sort();
|
||
|
char option;
|
||
|
void menu();
|
||
|
menu();
|
||
|
while((option=cin.get())!='q')
|
||
|
{
|
||
|
switch(option)
|
||
|
{
|
||
|
case 'b':
|
||
|
build();
|
||
|
break;
|
||
|
case 'l':
|
||
|
list();
|
||
|
break;
|
||
|
case 'i':
|
||
|
insert();
|
||
|
break;
|
||
|
case 'd':
|
||
|
deletes();
|
||
|
break;
|
||
|
case 'e':
|
||
|
edit();
|
||
|
break;
|
||
|
case 's':
|
||
|
search();
|
||
|
break;
|
||
|
case 'n':
|
||
|
sort();
|
||
|
break;
|
||
|
}
|
||
|
menu();
|
||
|
}
|
||
|
}
|
||
|
void menu()
|
||
|
{
|
||
|
clrscr();
|
||
|
highvideo();
|
||
|
cout<<" ";
|
||
|
cprintf("*****WelCome To Employee Data Centre*****
|
||
|
");
|
||
|
normvideo();
|
||
|
cout<<endl;
|
||
|
cout<<" ";
|
||
|
cout<<"Press b---->Built The Employee Table
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Press l---->List The Employee Table
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Press i---->Insert New Entry
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Press d---->Delete An Entry
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Press e---->Edit An Entry
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Press s---->Search Arecord
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Press n---->Sort The Table
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Press q---------->QUIT
|
||
|
";
|
||
|
cout<<" ";
|
||
|
cout<<"Option Please ----->";
|
||
|
}
|
||
|
|
||
|
void build()
|
||
|
{
|
||
|
|
||
|
clrscr();
|
||
|
highvideo();
|
||
|
cprintf("Build The Table
|
||
|
");
|
||
|
cout<<endl;
|
||
|
normvideo();
|
||
|
cout<<"maximum number of entries ----- > 20"<<endl;
|
||
|
cout<<"how many do you want ----->";
|
||
|
cin>>num;
|
||
|
cout<<"Enter The Following Items
|
||
|
";
|
||
|
for(int i=0;i<=num-1;i++)
|
||
|
{
|
||
|
cout<<" Name ";
|
||
|
cin>>emp[i].name;
|
||
|
cout<<"Code ";
|
||
|
cin>>emp[i].code;
|
||
|
cout<<"Designation ";
|
||
|
cin>>emp[i].designation;
|
||
|
cout<<"Years of Experience ";
|
||
|
cin>>emp[i].exp;
|
||
|
cout<<"Age ";
|
||
|
cin>>emp[i].age;
|
||
|
}
|
||
|
cout<<"going to main menu";
|
||
|
delay(500);
|
||
|
}
|
||
|
|
||
|
void list()
|
||
|
{
|
||
|
clrscr();
|
||
|
highvideo();
|
||
|
cprintf(" ********List The Table********");
|
||
|
cout<<endl;
|
||
|
normvideo();
|
||
|
cout<<" Name Code Designation Years(EXP) Age
|
||
|
";
|
||
|
cout<<" ------------------------------------------------------
|
||
|
";
|
||
|
for(int i=0;i<=num-1;i++)
|
||
|
{
|
||
|
cout<<setw(13)<<emp[i].name;
|
||
|
cout<<setw(6)<<emp[i].code;
|
||
|
cout<<setw(15)<<emp[i].designation;
|
||
|
cout<<setw(10)<<emp[i].exp;
|
||
|
cout<<setw(15)<<emp[i].age;
|
||
|
cout<<endl;
|
||
|
}
|
||
|
cout<<"going to main menu";
|
||
|
getch();
|
||
|
}
|
||
|
void insert()
|
||
|
{
|
||
|
clrscr();
|
||
|
int i=num;
|
||
|
num+=1;
|
||
|
highvideo();
|
||
|
cprintf("Insert New Record
|
||
|
");
|
||
|
cout<<endl;
|
||
|
normvideo();
|
||
|
cout<<"Enter The Following Items
|
||
|
";
|
||
|
cout<<"Name ";
|
||
|
cin>>emp[i].name;
|
||
|
cout<<"Code ";
|
||
|
cin>>emp[i].code;
|
||
|
cout<<"Designation ";
|
||
|
cin>>emp[i].designation;
|
||
|
cout<<"Years of Experience ";
|
||
|
cin>>emp[i].exp;
|
||
|
cout<<"Age ";
|
||
|
cin>>emp[i].age;
|
||
|
cout<<endl<<endl;
|
||
|
cout<<"going to main menu";
|
||
|
delay(500);
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
void deletes()
|
||
|
{
|
||
|
clrscr();
|
||
|
highvideo();
|
||
|
int code;
|
||
|
int check;
|
||
|
cprintf("Delete An Entry
|
||
|
");
|
||
|
normvideo();
|
||
|
cout<<endl;
|
||
|
cout<<"Enter An JobCode To Delete That Entry ";
|
||
|
cin>>code;
|
||
|
int i;
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
if(emp[i].code==code)
|
||
|
{
|
||
|
check=i;
|
||
|
}
|
||
|
}
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
if(i==check)
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if(i>check)
|
||
|
{
|
||
|
tempemp[i-1]=emp[i];
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
tempemp[i]=emp[i];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
num--;
|
||
|
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
emp[i]=tempemp[i];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void edit()
|
||
|
{
|
||
|
clrscr();
|
||
|
int jobcode;
|
||
|
highvideo();
|
||
|
cprintf(" Edit An Entry ");
|
||
|
cout<<endl;
|
||
|
cout<<endl;
|
||
|
int i;
|
||
|
void editmenu();
|
||
|
void editname(int);
|
||
|
void editcode(int);
|
||
|
void editdes(int);
|
||
|
void editexp(int);
|
||
|
void editage(int);
|
||
|
char option;
|
||
|
normvideo();
|
||
|
cout<<"Enter An jobcode To Edit An Entry---- ";
|
||
|
cin>>jobcode;
|
||
|
editmenu();
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
if(emp[i].code==jobcode)
|
||
|
{
|
||
|
|
||
|
while((option=cin.get())!='q')
|
||
|
{
|
||
|
switch(option)
|
||
|
{
|
||
|
case 'n':
|
||
|
editname(i);
|
||
|
break;
|
||
|
case 'c':
|
||
|
editcode(i);
|
||
|
break;
|
||
|
case 'd':
|
||
|
editdes(i);
|
||
|
break;
|
||
|
case 'e':
|
||
|
editexp(i);
|
||
|
break;
|
||
|
case 'a':
|
||
|
editage(i);
|
||
|
break;
|
||
|
}
|
||
|
editmenu();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
void editmenu()
|
||
|
{
|
||
|
clrscr();
|
||
|
cout<<" What Do You Want To edit
|
||
|
";
|
||
|
cout<<" n--------->Name
|
||
|
";
|
||
|
cout<<" c--------->Code
|
||
|
";
|
||
|
cout<<" d--------->Designation
|
||
|
";
|
||
|
cout<<" e--------->Experience
|
||
|
";
|
||
|
cout<<" a--------->Age
|
||
|
";
|
||
|
cout<<" q----->QUIT
|
||
|
";
|
||
|
cout<<" Options Please ---->>> ";
|
||
|
}
|
||
|
void editname(int i)
|
||
|
{
|
||
|
cout<<"Enter New Name-----> ";
|
||
|
cin>>emp[i].name;
|
||
|
}
|
||
|
void editcode(int i)
|
||
|
{
|
||
|
cout<<"Enter New Job Code-----> ";
|
||
|
cin>>emp[i].code;
|
||
|
}
|
||
|
void editdes(int i)
|
||
|
{
|
||
|
cout<<"enter new designation-----> ";
|
||
|
cin>>emp[i].designation;
|
||
|
}
|
||
|
void editexp(int i)
|
||
|
{
|
||
|
cout<<"Enter new Years of Experience
|
||
|
";
|
||
|
cin>>emp[i].exp;
|
||
|
}
|
||
|
void editage(int i)
|
||
|
{
|
||
|
cout<<"Enter new Age
|
||
|
";
|
||
|
cin>>emp[i].age;
|
||
|
}
|
||
|
|
||
|
void search()
|
||
|
{
|
||
|
clrscr();
|
||
|
highvideo();
|
||
|
cprintf("Welcome To Search Of Employee Database
|
||
|
");
|
||
|
normvideo();
|
||
|
cout<<endl;
|
||
|
cout<<endl;
|
||
|
int jobcode;
|
||
|
cout<<"You Can Search Only By Jobcode Of An Employee
|
||
|
";
|
||
|
cout<<"Enter Code Of An Employee
|
||
|
";
|
||
|
cin>>jobcode;
|
||
|
for(int i=0;i<=num-1;i++)
|
||
|
{
|
||
|
if(emp[i].code==jobcode)
|
||
|
{
|
||
|
|
||
|
cout<<" Name Code Designation Years(EXP) Age
|
||
|
";
|
||
|
cout<<" ------------------------------------------------------
|
||
|
";
|
||
|
cout<<setw(13)<<emp[i].name;
|
||
|
cout<<setw(6)<<emp[i].code;
|
||
|
cout<<setw(15)<<emp[i].designation;
|
||
|
cout<<setw(10)<<emp[i].exp;
|
||
|
cout<<setw(15)<<emp[i].age;
|
||
|
cout<<endl;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
cout<<"going to main menu";
|
||
|
getch();
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
void sort()
|
||
|
{
|
||
|
clrscr();
|
||
|
highvideo();
|
||
|
cprintf("Sort The Databse By JobCode
|
||
|
");
|
||
|
normvideo();
|
||
|
void sortmenu();
|
||
|
void sortname();
|
||
|
void sortcode();
|
||
|
void sortdes();
|
||
|
void sortexp();
|
||
|
char option;
|
||
|
void sortage();
|
||
|
|
||
|
cout<<endl;
|
||
|
cout<<endl;
|
||
|
sortmenu();
|
||
|
while((option=cin.get())!='q')
|
||
|
{
|
||
|
switch(option)
|
||
|
{
|
||
|
case 'n':
|
||
|
sortname();
|
||
|
break;
|
||
|
case 'c':
|
||
|
sortcode();
|
||
|
break;
|
||
|
case 'd':
|
||
|
sortdes();
|
||
|
break;
|
||
|
case 'e':
|
||
|
sortexp();
|
||
|
break;
|
||
|
case 'a':
|
||
|
sortage();
|
||
|
break;
|
||
|
}
|
||
|
sortmenu();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
void sortmenu()
|
||
|
{
|
||
|
clrscr();
|
||
|
cout<<" What Do You Want To edit
|
||
|
";
|
||
|
cout<<" n--------->Name
|
||
|
";
|
||
|
cout<<" c--------->Code
|
||
|
";
|
||
|
cout<<" d--------->Designation
|
||
|
";
|
||
|
cout<<" e--------->Experience
|
||
|
";
|
||
|
cout<<" a--------->Age
|
||
|
";
|
||
|
cout<<" q----->QUIT
|
||
|
";
|
||
|
cout<<" Options Please ---->>> ";
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
void sortname()
|
||
|
{
|
||
|
clrscr();
|
||
|
int i,j;
|
||
|
struct employee temp[max];
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
sortemp1[i]=emp[i];
|
||
|
}
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
for(j=0;j<=num-1;j++)
|
||
|
{
|
||
|
if(strcmp(sortemp1[i].name,sortemp1[j].name)<=0)
|
||
|
{
|
||
|
temp[i]=sortemp1[i];
|
||
|
sortemp1[i]=sortemp1[j];
|
||
|
sortemp1[j]=temp[i];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
|
||
|
cout<<" Name Code Designation Years(EXP) Age
|
||
|
";
|
||
|
cout<<" ------------------------------------------------------
|
||
|
";
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
cout<<setw(13)<<sortemp1[i].name;
|
||
|
cout<<setw(6)<<sortemp1[i].code;
|
||
|
cout<<setw(15)<<sortemp1[i].designation;
|
||
|
cout<<setw(10)<<sortemp1[i].exp;
|
||
|
cout<<setw(15)<<sortemp1[i].age;
|
||
|
cout<<endl;
|
||
|
}
|
||
|
cout<<"Press Any Key To Go Back";
|
||
|
getch();
|
||
|
|
||
|
} }
|
||
|
|
||
|
void sortcode()
|
||
|
{
|
||
|
clrscr();
|
||
|
int i,j;
|
||
|
struct employee temp[max];
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
sortemp1[i]=emp[i];
|
||
|
}
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
for(j=0;j<=num-1;j++)
|
||
|
{
|
||
|
if(sortemp1[i].code<sortemp1[j].code)
|
||
|
{
|
||
|
temp[i]=sortemp1[i];
|
||
|
sortemp1[i]=sortemp1[j];
|
||
|
sortemp1[j]=temp[i];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
|
||
|
cout<<" Name Code Designation Years(EXP) Age
|
||
|
";
|
||
|
cout<<" ------------------------------------------------------
|
||
|
";
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
cout<<setw(13)<<sortemp1[i].name;
|
||
|
cout<<setw(6)<<sortemp1[i].code;
|
||
|
cout<<setw(15)<<sortemp1[i].designation;
|
||
|
cout<<setw(10)<<sortemp1[i].exp;
|
||
|
cout<<setw(15)<<sortemp1[i].age;
|
||
|
cout<<endl;
|
||
|
}
|
||
|
cout<<"Press Any Key To Go Back";
|
||
|
getch();
|
||
|
|
||
|
} }
|
||
|
|
||
|
|
||
|
void sortdes()
|
||
|
{
|
||
|
clrscr();
|
||
|
int i,j;
|
||
|
struct employee temp[max];
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
sortemp1[i]=emp[i];
|
||
|
}
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
for(j=0;j<=num-1;j++)
|
||
|
{
|
||
|
if(strcmp(sortemp1[i].designation,sortemp1[j].designation)<=0)
|
||
|
{
|
||
|
temp[i]=sortemp1[i];
|
||
|
sortemp1[i]=sortemp1[j];
|
||
|
sortemp1[j]=temp[i];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
|
||
|
cout<<" Name Code Designation Years(EXP) Age
|
||
|
";
|
||
|
cout<<" ------------------------------------------------------
|
||
|
";
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
cout<<setw(13)<<sortemp1[i].name;
|
||
|
cout<<setw(6)<<sortemp1[i].code;
|
||
|
cout<<setw(15)<<sortemp1[i].designation;
|
||
|
cout<<setw(10)<<sortemp1[i].exp;
|
||
|
cout<<setw(15)<<sortemp1[i].age;
|
||
|
cout<<endl;
|
||
|
}
|
||
|
cout<<"Press Any Key To Go Back";
|
||
|
getch();
|
||
|
|
||
|
} }
|
||
|
|
||
|
void sortage()
|
||
|
{
|
||
|
clrscr();
|
||
|
int i,j;
|
||
|
struct employee temp[max];
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
sortemp1[i]=emp[i];
|
||
|
}
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
for(j=0;j<=num-1;j++)
|
||
|
{
|
||
|
if(sortemp1[i].age<sortemp1[j].age)
|
||
|
{
|
||
|
temp[i]=sortemp1[i];
|
||
|
sortemp1[i]=sortemp1[j];
|
||
|
sortemp1[j]=temp[i];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
|
||
|
cout<<" Name Code Designation Years(EXP) Age
|
||
|
";
|
||
|
cout<<" ------------------------------------------------------
|
||
|
";
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
cout<<setw(13)<<sortemp1[i].name;
|
||
|
cout<<setw(6)<<sortemp1[i].code;
|
||
|
cout<<setw(15)<<sortemp1[i].designation;
|
||
|
cout<<setw(10)<<sortemp1[i].exp;
|
||
|
cout<<setw(15)<<sortemp1[i].age;
|
||
|
cout<<endl;
|
||
|
}
|
||
|
cout<<"Press Any Key To Go Back";
|
||
|
getch();
|
||
|
|
||
|
} }
|
||
|
|
||
|
|
||
|
void sortexp()
|
||
|
{
|
||
|
clrscr();
|
||
|
int i,j;
|
||
|
struct employee temp[max];
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
sortemp1[i]=emp[i];
|
||
|
}
|
||
|
for(i=0;i<=num-1;i++)
|
||
|
{
|
||
|
for(j=0;j<=num-1;j++)
|
||
|
{
|
||
|
if(sortemp1[i].exp<sortemp1[j].exp)
|
||
|
{
|
||
|
temp[i]=sortemp1[i];
|
||
|
sortemp1[i]=sortemp1[j];
|
||
|
sortemp1[j]=temp[i];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
|
||
|
cout<<" Name Code Designation Years(EXP) Age
|
||
|
";
|
||
|
cout<<" ------------------------------------------------------
|
||
|
";
|
||
|
for( i=0;i<=num-1;i++)
|
||
|
{
|
||
|
cout<<setw(13)<<sortemp1[i].name;
|
||
|
cout<<setw(6)<<sortemp1[i].code;
|
||
|
cout<<setw(15)<<sortemp1[i].designation;
|
||
|
cout<<setw(10)<<sortemp1[i].exp;
|
||
|
cout<<setw(15)<<sortemp1[i].age;
|
||
|
cout<<endl;
|
||
|
}
|
||
|
cout<<"Press Any Key To Go Back";
|
||
|
getch();
|
||
|
|
||
|
} }
|