0% found this document useful (0 votes)
4K views16 pages

C++ Project On Payroll Management System

This document contains code for a payroll management system with the following key features: - It defines classes for employee and payfile data with functions to get, add, delete, modify and generate reports for payroll data. - The payfile class handles payroll calculations and writing/reading payroll data to disk. - Employee data like name, address is stored in the employee class which inherits from payfile. - Functions generate automatic record numbers, get/validate employee data input, and write/read data from disk files to manage the employee and payroll records.

Uploaded by

raj18021997
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4K views16 pages

C++ Project On Payroll Management System

This document contains code for a payroll management system with the following key features: - It defines classes for employee and payfile data with functions to get, add, delete, modify and generate reports for payroll data. - The payfile class handles payroll calculations and writing/reading payroll data to disk. - Employee data like name, address is stored in the employee class which inherits from payfile. - Functions generate automatic record numbers, get/validate employee data input, and write/read data from disk files to manage the employee and payroll records.

Uploaded by

raj18021997
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

//Payroll Management System #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 break; case 7 : clrscr(); gotoxy(25,10); cout< <"YOU ENDED THE SESSION "; gotoxy(27,12); cout<<"THANK YOU!"; delay(1000); break; reports

} } while(main_choice!=7); }

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy