You are on page 1of 16

http://www.docstoc.

com/docs/73847433/Payroll-Management-System-Ppt
#include<iostream .h>
#include<conio .h>
#include<iomanip .h>
#include<graphics .h> //graphics functions
#include<string .h>
#include<dos .h>
#include<fstream .h> //for file handling
#include<stdio .h>
struct date_rec //record to get data
{
int dd;
int mm;
int yyyy;
}current_date;
//this class defines data related to monthly pay file
class payfile //base class
{
private:
int emp_num;
char emp_name[25];
char emp_designation[20];
int days_worked,dw;
float basic_pay;
float DA;
float HRA;
float CCA;
float con_veyance;
float gross_pay;
float PF;
float income_tax;
float other_deductions;
float net_pay;
public:
payfile() //no arguments constructor
{
days_worked=0;
basic_pay=DA=HRA=CCA=con_veyance=gross_pay=0.0;
PF=income_tax=other_deductions=net_pay=0.0;
}
void get_pay(); //this function reads the private members of payfile
void update_pay_file();/*this function calls get_pay() and generates
monthly pay file on disk*/
void reports(); /*this function reads the monthly pay file
from disk and generates salary statements*/
/*when a new employee is registered,this function writes its record using
payfile()constructor on disk to make a entry in monthly payfile*/
void add_pay_object(int code,char name[25],char desig[10],float basic);
/*when an employee leaves the company,this function deletes
the entry from monthly pay file*/
void del_pay_object(int code);
/*this function modifies designation of an employee in monthly pay file*/
void modify_pay_object(int code,char desig[20]);
/*this function modifies the basic in pay file*/
void modify_basic(int code,float basic);
}pay;
void payfile::modify_basic(int code,float basic)
{
fstream file;
file.open("payfile.dat",ios::in|ios::out);//opening file
file.seekg(0,ios::beg);//set pointer to the begining
file.read((char*)&pay,sizeof(pay));//read first record
int n=file.tellg();
while(!file.eof())
{
if(code==pay.emp_num)
{
pay.basic_pay=basic;
pay.gross_pay=pay.basic_pay+pay.DA+pay.HRA+pay.CCA+pay.con_veyance;
pay.net_pay=pay.gross_pay-(pay.PF+pay.income_tax+pay.other_deductions);
file.seekg(n-sizeof(pay));
file.write((char*)&pay,sizeof(pay));
file.flush();
file.seekg(0,ios::end);
}
file.read((char*)&pay,sizeof(pay));
n=file.tellg();
}
file.close();
}
void payfile::add_pay_object(int code,char name[25],char desig[20],
float basic)
{
fstream outfile;
pay.emp_num=code;
pay.basic_pay=basic;
strcpy(pay.emp_name,name);
strcpy(pay.emp_designation,desig);
outfile.open("payfile.dat",ios::app);//open fees file in append mode
outfile.write((char*)&pay,sizeof(pay));//make entry in fees file
outfile.flush();
outfile.close();//close fees file
}
void payfile::del_pay_object(int code)
{
fstream outfile,infile;
outfile.open("tempfile.dat",ios::app); //open temporary file
infile.open("payfile.dat",ios::in);//open pay file for reading
infile.seekg(0,ios::beg);//set file pointer to the begining of the file
infile.read((char*)&pay,sizeof(pay));//read the first record
while(!infile.eof())
{
if(pay.emp_num!=code)//if this record is not to be deleted
//write in the temporary
outfile.write((char*)&pay,sizeof(pay));
infile.read((char*)&pay,sizeof(pay));//read next record
}
infile.close();//close pay file
outfile.close();//close temporary file
remove("payfile.dat");//delete old monthly pay file
rename("tempfile.dat","payfile.dat");//temporary file becomes new pay file
}
void payfile::modify_pay_object(int code,char desig[20])
{
fstream file;
file.open("payfile.dat",ios::in|ios::out);//open file for reading/writing
file.seekg(0,ios::beg);//set file pointer to the begining of the file
file.read((char*)&pay,sizeof(pay));//read first record
int n=file.tellg();//tell where we are
while(!file.eof())
{
if(code==pay.emp_num) //record found
{
strcpy(pay.emp_designation,desig);
file.seekg(n-sizeof(pay)); //set fili pointer to the record to be changed
file.write((char*)&pay,sizeof(pay)); //update record
file.flush();
file.seekg(0,ios::end);/*if record found set file pointer to end
of file to stop further searching*/
}
file.read((char*)&pay,sizeof(pay)); //if record not found read next record
n=file.tellg();//tell where we are
}
file.close();
}
void payfile::get_pay()//this function reads the private members of payfile
{
char ch,month[9];
int mon;
cout< <"\n ENTER MONTH ( 1 to 12 ) --------->";
cin>>mon;
switch(mon)
{ //get month name
case 1 : strcpy(month,"JANUARY");
break;
case 2 : strcpy(month,"FEBRUARY");
break;
case 3 : strcpy(month,"MARCH");
break;
case 4 : strcpy(month,"APRIL");
break;
case 5 : strcpy(month,"MAY");
break;
case 6 : strcpy(month,"JUNE");
break;
case 7 : strcpy(month,"JULY");
break;
case 8 : strcpy(month,"AUGUST");
break;
case 9 : strcpy(month,"SEPTEMBER");
break;
case 10 :strcpy(month,"OCTOBER");
break;
case 11 :strcpy(month,"NOVEMBER");
break;
case 12 :strcpy(month,"DECEMBER");
break;
}
int n;
if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)
{
n=31;
}
else if(mon==2)
{
n=28;
}
else
{
n=30;
}
cout< <"\n ENTER THE NO.OF DAYS WORKED----------->";
cin>>days_worked;
if(days_worked&lt;23)
{
dw=23-days_worked;
days_worked=n-dw;
}
else
{
days_worked=n;
dw=0;
}
cout< <"\n=============================================";
cout<<"\n In the month of "<<month;
cout<<"\n There are "<<dw<<" day / days with out pay ";
cout<<"\nTHE BASIC PAY FOR THE MONTH IS "<<(basic_pay/n)*days_worked;
cout<<"\n THE DEARNESS ALLOWENCE IS (35% of basic) --------->";
DA=(0.35*(basic_pay/n))*days_worked;
cout< <setiosflags(ios::fixed)<<setprecision(2)<<DA;
cout<<"\n THE HOUSE RENT ALLOWENCE IS (@ Rs.600/-pm)------->";
HRA=600;
cout< <HRA;
cout<<"\n THE CCA IS (2% of basic) ------------------------>";
CCA=(0.02*(basic_pay/n))*days_worked;
cout< <CCA;
cout<<"\n THE CONVEYENCE ALLOWENCE IS (1% of basic)-------->";
con_veyance=(0.01*(basic_pay/n))*days_worked;
cout< <con_veyance;
gross_pay=((basic_pay/n)*days_worked)+DA+HRA+CCA+con_veyance;
cout<<"\n PF AMOUNT------------------------------>";
PF=gross_pay*0.08;
cout< <PF;
if(gross_pay>8000)
{
cout< <"\n THE INCOME TAX------------------>";
income_tax=(gross_pay-PF)*.1;
cout< <income_tax;
}
else
{
income_tax=0;
cout<<income_tax;
}
cout<<"\n OTHER DEDUCTIONS---------------->";
cin>>other_deductions;
net_pay=gross_pay-(PF+income_tax+other_deductions);
gotoxy(22,24);
cout< <"PRESS ANY KEY TO CONTINUE";
getch();
clrscr();
}
void payfile::update_pay_file()
{
fstream file;
file.open("payfile.dat",ios::in|ios::out);//open pay file in I/O mode
file.seekg(0,ios::beg);//set file pointer to the begining of the file
file.read((char*)&pay,sizeof(pay)); //read the first record
int n=file.tellg(); //find where file pointer is
while(!file.eof())
{
clrscr();
cout<<"\n ENTER DATA FOR EMPLOYEE NO.--------->"< <pay.emp_num;
pay.get_pay(); //get pay data
file.seekg(n-sizeof(pay)); //set file pointer to the correct position
file.write((char*)&pay,sizeof(pay));//write pay data in the file
file.flush();
file.seekg(n);//set file pointer to next record
file.read((char*)&pay,sizeof(pay));//read next record
n=file.tellg();//find position of file pointer
}
file.close();//close monthly pay file
}
//this class defines the data and member functionsrelated to employee file
class employee:public payfile //derived class
{
private:
int employee_num;
char employee_name[25];
char employee_address[35];
date_rec date_joining;
date_rec date_birth;
char desig_nation[20];
float basic_salary;
public:
char ch;
int get_rec_no();//this function generates record no.automatically
void get_data(); //this function get a record from the operator
void show_data();//this function displays data
void add_object();//this function writes a record on the disk
void show_object();//this function reads a record
//from the disk and calls show_data()
void del_object();/*this function deletes a record from the employee
file and calls a member function of base class to
update entries in monthly pay file*/
void modify_object();//this function changes information on disk
void search_object();//this function searches information on
//the basis of a given field
}emp; //object list
//this function generates record no. automatically
int employee::get_rec_no()
{
int found=0;
int recno,temp_recno;
struct node //structure to make an index of the record nos
{
int rec_no;
node *link;//pointer to next node
};
node *start,*ptr,*ptr1,*ptr2;//pointers to node
fstream infile;
infile.open("employee.dat",ios::in);//open file in input mode
infile.seekg(0,ios::end);//set file pointer to the begining of the file
int n=infile.tellg();//get no. of bytes in the file
infile.close();//close file
if(n==0)//if file is empty
recno=1;
else
{//get all record nos. in a linked list
infile.open("employee.dat",ios::in);//open file for reading
start=ptr=new node;//get new node from operating system
infile.seekg(0,ios::beg);//set file pointer to the begining of the file
infile.read((char*)&emp,sizeof(emp));//read first record
while(!infile.eof())
{
ptr->rec_no=employee_num;//save record no.in the index
ptr->link=new node;//get new node for next record
ptr=ptr->link;
infile.read((char*)&emp,sizeof(emp));//read next record
}
ptr->link=NULL;//end of list
//sort record nos.
ptr1=start;//set pointer to the start of the index
while(ptr1->link!=NULL)
{
ptr2=ptr1->link;//set second pointer
while(ptr2!=NULL)
{
if(ptr2->rec_no<ptr1 ->rec_no)
{
temp_recno=ptr2->rec_no;//exchange values
ptr2->rec_no=ptr1->rec_no;
ptr1->rec_no=temp_recno;
}
ptr2=ptr2->link;//next node
}
ptr2=ptr1->link;
ptr1=ptr2;//next pass
}
//generate record no.
ptr1=start;
while(ptr1!=NULL&&found!=1)
{
ptr2=ptr1;
ptr1=ptr1->link;
if((ptr2->rec_no)+1!=ptr1->rec_no)
{
recno=(ptr2->rec_no)+1;
found=1;
}
}
if(found!=1)
recno=(ptr2->rec_no)+1;
//destroy the index
ptr=start;
while(start!=NULL)
{
start=start->link;
delete ptr;//delete index to save memory
}
}
return recno;//return the calculated record no.
}
//this function reads data
void employee::get_data()
{
clrscr();
employee_num=get_rec_no();//automatic generation of empship no.
cout< <"\n ENTER THE NAME-------------------------->";
gets(employee_name);
cout< <"\n ENTER THE ADDRESS----------------------->";
gets(employee_address);
cout< <"\n ENTER THE DATE OF JOINING<<dd/mm/yyyy>>------->";
cin>>date_joining.dd>>ch>>date_joining.mm>>ch>>date_joining.yyyy;
cout< <"\n ENTER THE DATE OF BIRTH <<dd/mm/yyyy>>-------->";
cin>>date_birth.dd>>ch>>date_birth.mm>>ch>>date_birth.yyyy;
cout< <"\n ENTER DESIGNATION----------------------->";
gets(desig_nation);
cout< <"\n ENTER THE BASIC SALARY------------------>";
cin>>basic_salary;
}
//this function displays data
void employee::show_data()
{
clrscr();
cout< <"\n EMPLOYEE NO.--------------------->"< <employee_num;
cout<<"\n EMPLOYEE's NAME------------------>"< <employee_name;
cout<<"\n DATE OF JOINING------------------>"< <date_joining.dd
<<"-"<<date_joining.mm
<<"-"<<date_joining.yyyy;
cout<<"\n EMPLOYEE's ADDRESS--------------->"< <employee_address;
cout<<"\n DATE OF BIRTH-------------------->"< <date_birth.dd
<<"-"<<date_birth.mm
<<"-"<<date_birth.yyyy;
cout<<"\n DESIGNATION---------------------->"< <desig_nation;
cout<<"\n BASIC SALARY--------------------->RS."< <setw(15)//set width
<<setprecision(2)//set position of decimal point
<<setiosflags(ios::left)//set left justified output
<<setiosflags(ios::showpoint)//always show decimal point
<<setiosflags(ios::fixed)//set fixed notation for display
<<basic_salary;
gotoxy(22,24);
cout<<"PRESS ANY KEY TO CONTINUE";
getch();
}
//this function writes a record into a file
void employee::add_object()
{
fstream outfile;
char choice='y';

while(choice=='y')
{
clrscr();
char ch;
//update employee file
outfile.open("employee.dat",ios::app);//open file in append mode
emp.get_data();//get information from the user
outfile.write((char*)&emp,sizeof(emp));//write in the file
outfile.flush();
outfile.close();//close file
add_pay_object(emp.employee_num,emp.employee_name,emp.desig_nation,
emp.basic_salary);
cout<<"\n ANY MORE EMPLOYEE TO BE ADDED---------------->";
cin>>choice;
}
}
//this function displays the contents of file of emps
void employee::show_object()
{
fstream infile;
infile.open("employee.dat",ios::in);//open file for reading
infile.seekg(0,ios::beg);//set file pointer to the begining of the file
infile.read((char*)&emp,sizeof(emp));//read the first record
while(!infile.eof())
{
emp.show_data();//display record
infile.read((char*)&emp,sizeof(emp));//read the next record
}
}
//this function deletes the record of an employee
void employee::del_object()
{
int code;
fstream infile,outfile;
cout< <"\n ENTER THE MEMBERSHIP NO.TO BE DELETED--------->";
cin>>code;
//update emp file
outfile.open("tempfile.dat",ios::app);//open temporary file
infile.open("employee.dat",ios::in);//open employee file
infile.seekg(0,ios::beg);//set file pointer to the begining of the file
infile.read((char*)&emp,sizeof(emp));//read the first record
while(!infile.eof())
{
if(emp.employee_num!=code)//if this record is not to be deleted
//write in temporary file
outfile.write((char*)&emp,sizeof(emp));
infile.read((char*)&emp,sizeof(emp));//read the next record
}
infile.close();//close employee file
outfile.close();//close temporary file
remove("employee.dat");//delete old employee file
rename("tempfile.dat","employee.dat");//temporary file becomes new
//employee file
del_pay_object(code);
}
//this function modifies information regarding an employee
void employee::modify_object()
{
fstream file;
int mod_choice;
int code;
do
{//display modify menu
clrscr();
cout< <"\n MODIFY MENU ";
cout<<"\n-------------------";
cout<<"\n CHANGED ADDRESS ....1";
cout<<"\n CHANGE DESIGNATION ....2";
cout<<"\n CHANGE BASIC SALARY ....3";
cout<<"\n EXIT MODIFY MENU ....4";
cout<<"\n\n ENTER YOUR CHOICE NO.----------->";
cin>>mod_choice;
if(mod_choice!=4)
{
cout< <"\n ENTER THE EMPLOYEE NUMBER--------->";
cin>>code;
file.open("employee.dat",ios::in|ios::out);//open the file for
// reading/writing
file.seekg(0,ios::beg);//set file pointer to the begining of the file
file.read((char*)&emp,sizeof(emp));//read first record
int n=file.tellg();//tell where we are
while(!file.eof())
{
if(code==emp.employee_num)//record found
{
switch(mod_choice)
{
case 1 : clrscr();
//get new information
cout< <"\n ENTER THE NEW ADDRESS-------------->";
gets(emp.employee_address);
file.seekg(n-sizeof(emp));//set file pointer to the record
//to be modified
file.write((char*)&emp,sizeof(emp));//update record
file.flush();
break;
case 2 : clrscr();
//get new information
cout< <"\n ENTER THE NEW DESIGNATION------------>";
gets(desig_nation);
file.seekg(n-sizeof(emp));//set file pointer to the record
//to be changed
file.write((char*)&emp,sizeof(emp));//update record
file.flush();
modify_pay_object(code,desig_nation);
break;
case 3 : clrscr();
//get new information
cout< <"\n ENTER NEW BASIC SALARY-------------->";
cin>>basic_salary;
file.seekg(n-sizeof(emp));//set file pointer to the record
//to be modified
file.write((char*)&emp,sizeof(emp));
file.flush();
modify_basic(code,basic_salary);
break;
}//end of switch
}//end if
file.read((char*)&emp,sizeof(emp));//raed next record
n=file.tellg();//tell where we are
}//end while
file.close();
}//end if
}//end do while loop
while(mod_choice!=4);
clrscr();
cout< <"\n YOU ENDED THE MODIFY SESSION ";
cout<<"\n THANK YOU!";
delay(700);
}
//this function searches information on the basis of a given field
void employee::search_object()
{
fstream infile;
int search_choice;
int phno;
int code;
char name[25];
do
{
int counter=0;//initialize counter to zero
clrscr();
//display search menu
cout<<"\n SEARCH MENU ";
cout<<"\n----------------------";
cout<<"\n EMPLOYEE CODE ....1";
cout<<"\n EMPLOYEE NAME ....2";
cout<<"\n EXIT ....3";
cout<<"\n\n ENTER YOUR CHOICE NO.---------->";
cin>>search_choice;
switch(search_choice)
{
case 1 : clrscr();
cout< <"\n ENTER THE MEMBER CODE TO BE SEARCHED ----------->";
cin>>code;//get record no.
infile.open("employee.dat",ios::in);//open file for reading
infile.seekg(0,ios::beg);//set file pointer to the begining
// of the file
infile.read((char*)&emp,sizeof(emp));//read first record
while(!infile.eof())
{
if(emp.employee_num==code)
{ //record found
counter ++; //increment counter
emp.show_data();//display record
}
infile.read((char*)&emp,sizeof(emp));//read next record
}
infile.close();//if end of file , close file
gotoxy(22,20);
cout< <"RECORDS FOUND="<<counter;//display counter
getch();//wait for key press
break;

case 2 : clrscr();
cout<<"\n ENTER THE NAME TO BE SEARCHED----------->";
cin>>name;
infile.open("employee.dat",ios::in);//open file for reading
infile.seekg(0,ios::beg);//set file pointer to the begining of
// the file
infile.read((char*)&emp,sizeof(emp));//read first record
while(!infile.eof())
{
if(strcmpi(emp.employee_name,name)==0)
{ //record found
counter++;//increment counter
emp.show_data();//display record
}
infile.read((char*)&emp,sizeof(emp));//read next record
}
infile.close();//if end of file , close file
gotoxy(22,20);
cout< <"RECORDS FOUND="<<counter;//display counter
getch();//wait for key press
break;
case 3 : clrscr();
gotoxy(22,15);//set position for display
cout<<"YOU ENDED THE SEARCH SESSION";
gotoxy(27,18);
cout<<"THANK YOU!";
delay(700);//wait for some time
break;
}
}
while(search_choice!=3);
}
//this function generates reports
void payfile::reports()
{
fstream infile;
int report_choice;
do
{ //display report menu
clrscr();
cout<<"\n REPORT MENU ";
cout<<"\n----------------------------";
cout<<"\n LIST OF ALL EMPLOYEES ....1";
cout<<"\n SALARY STATEMENTS OF ALL EMPLOYEES ....2";
cout<<"\n SALARY SLIP OF ALL EMPLOYEES ....3";
cout<<"\n EXIT REPORTS SESSION ....4";
cout<<"\n\n REPORT ON WHAT ? < ENTER CHOICE NO.>------->";
cin>>report_choice;
switch(report_choice)
{
case 1 : clrscr();
emp.show_object();
break;
case 2 : clrscr();
cout< <"\n-------------------------------------------------";
cout<<"\n RAJ CORPORATION ";
cout<<"\n-------------------------------------------------";
cout<<"\n EMP.NO. EMP.NAME DESIG ";
cout<<"\nBASIC DA HRA CCA CONVEYANCE GROSS PAY";
cout<<"\n PF ITAX OTHER DED. ******* NET PAY ";
cout<<"\n----------------------------------------------------\n";
infile.open("payfile.dat",ios::in);//open payfile for reading
infile.seekg(0,ios::beg);//set file pointer to the begining
// of the file
infile.read((char*)&pay,sizeof(pay));//read the first record
while(!infile.eof())
{
cout<<" ";//leave some space
cout<<setiosflags(ios::left)//set left justified output
<<setw(9) //set width of the output
<<pay.emp_num
<<setw(14) //set width of the output
<<pay.emp_name;
cout<<setiosflags(ios::left)
<<setw(17)
<<pay.emp_designation<<endl;
cout<<"EARNINGS:-";
cout<<setiosflags(ios::fixed)//set fixed notation output
<<setiosflags(ios::showpoint)//always show decimal point
<<setprecision(2)//set position of decimal point
<<setw(12)//set width of the output
<<pay.basic_pay
<<setw(10)
<<pay.DA
<<setw(10)
<<pay.HRA
<<setw(10)
<<pay.CCA
<<setw(10)
<<pay.con_veyance
<<setw(12)
<<pay.gross_pay
<<endl;
cout<<"DEDUCTIONS :- ";
cout<<setiosflags(ios::fixed)
<<setprecision(2)
<<setiosflags(ios::showpoint)
<<setw(10)
<<pay.PF
<<setw(10)
<<pay.income_tax
<<setw(10)
<<pay.other_deductions
<<setw(15)
<<"************"
<<pay.net_pay
<<endl;
infile.read((char*)&pay,sizeof(pay));//read next record
}
infile.close();
gotoxy(22,24);
cout<<"PRESS ANY KEY TO CONTINUE";
getch();//wait for keypress
break;
case 3 : clrscr();
char ch,month[9];
cout<<"\n ENTER CURRENT DATE <<dd/mm/yyyy>>--------->";
cin>>current_date.dd>>ch
>>current_date.mm>>ch
>>current_date.yyyy;
switch(current_date.mm)
{ //get month name
case 1 : strcpy(month,"JANUARY");
break;
case 2 : strcpy(month,"FEBRUARY");
break;
case 3 : strcpy(month,"MARCH");
break;
case 4 : strcpy(month,"APRIL");
break;
case 5 : strcpy(month,"MAY");
break;
case 6 : strcpy(month,"JUNE");
break;
case 7 : strcpy(month,"JULY");
break;
case 8 : strcpy(month,"AUGUST");
break;
case 9 : strcpy(month,"SEPTEMBER");
break;
case 10 :strcpy(month,"OCTOBER");
break;
case 11 :strcpy(month,"NOVEMBER");
break;
case 12 :strcpy(month,"DECEMBER");
break;
}
infile.open("payfile.dat",ios::in);//open pay file for reading
infile.seekg(0,ios::beg);//set file pointer to the begining
// of the file
infile.read((char*)&pay,sizeof(pay));//read first record
while(!infile.eof())
{
clrscr();
cout< <"\n-----------------------------------------------------------";
cout<<"\n RAJ CORPORATION ";
cout<<"\n SALARY SLIP FOR THE MONTH OF "<<month<<"-"<<current_date.yyyy;
cout<<"\n-----------------------------------------------------------";
cout<<"\n EMPLOYEE NO. :"<<setiosflags(ios::left)//set left
// justified output
<<setw(10)
<<pay.emp_num;
cout<<" NAME:";
cout<<setiosflags(ios::left)
<<setw(20)
<<pay.emp_name;
cout<<"\n\n EARNINGS DEDUCTIONS ";
cout<<"\n ----------------- ----------------";
cout<<"\n BASIC : RS."<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.basic_pay;
cout<<" PF : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.PF;
cout<<"\n DA : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.DA;
cout<<" ITAX : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.income_tax;
cout<<"\n HRA : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.HRA;
cout<<" OTHER DEDUCTIONS : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.other_deductions;
cout<<"\n CCA : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.CCA;
cout<<"\n CONVEYANCE : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.con_veyance;
cout<<"\n\n GROSS PAY : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.gross_pay;
cout<<" TOTAL DEDUCTIONS : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.gross_pay-pay.net_pay;
cout<<"\n NET PAY : RS.";
cout<<setiosflags(ios::fixed)
<<setiosflags(ios::showpoint)
<<setprecision(2)
<<setw(12)
<<pay.net_pay;
cout<<"\n---------------------------------------------------";
cout<<"\n SIGNATORY AUTHORITY";
cout<<"\n---------------------------------------------------";
cout<<"\n---------------------------------------------------";
gotoxy(22,24);
cout<<"PRESS ANY KEY TO CONTINUE";
getch();//wait for keypress
infile.read((char*)&pay,sizeof(pay));//read next record
}
infile.close();
break;
case 4 : clrscr();
gotoxy(22,15);
cout<<"YOU ENDED THE REPORT SESSION ";
gotoxy(27,18);
cout<<"THANK YOU!";
delay(700);
break;
}
}
while(report_choice!=4);
}
//this is the main function
void main()
{
int main_choice;
do
{ //display main menu
clrscr();
gotoxy(22,7);
cout<<" MAIN MENU ";
gotoxy(22,8);
cout<<"-----------------------";
gotoxy(22,10);
cout<<"REGISTER A NEW EMPLOYEE ....1";
gotoxy(22,11);
cout<<"REMOVE AN EMPLOYEE ....2";
gotoxy(22,12);
cout<<"MODIFY INFORMATION ABOUT AN EMPLOYEE ....3";
gotoxy(22,13);
cout<<"SEARCH FOR INFORMATION ABOUT AN EMPLOYEE ....4";
gotoxy(22,14);
cout<<"UPDATE MONTHLY PAY FILE ....5";
gotoxy(22,15);
cout<<"REPORTS ....6";
gotoxy(22,16);
cout<<"EXIT ....7";
gotoxy(25,20);
cout<<"ENTER YOUR CHOICE NO.-------------->";
cin>>main_choice;
switch(main_choice)
{
case 1 : emp.add_object();//call function to register a new employee
break;
case 2 : emp.del_object();//call function to delete the record of
// an employee
break;
case 3 : emp.modify_object();//this function can modify information
break;

case 4 : emp.search_object();//this function searches information


// about an employee
break;
case 5 : pay.update_pay_file();//this function generates
// monthly pay file
break;
case 6 : pay.reports();//this function generate reports
break;
case 7 : clrscr();
gotoxy(25,10);
cout< <"YOU ENDED THE SESSION ";
gotoxy(27,12);
cout<<"THANK YOU!";
delay(1000);
break;
}
}
while(main_choice!=7);
}
Related:
C++ Project for Computer Shop
COMPUTER SHOP /* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & COMPUTER SCIENCE PROJECT ..
.
Chemistry Project to Measure the Amount of Acetic Acid in Vinegar
Measuring the Amount of Acetic Acid In Vinegar AIM Measuring the Amount of Aceti
c Acid In Vine...
C++ Project on Diabetes Detection
Diabetes Detection #include #include #include #include #include #include #inclu.
..
C++ Project on Telephone Directory System
TELEPHONE DIRECTORY SYSTEM // TELEPHONE DIRECTORY SYSTEM #include #include #in..
.

You might also like