• No results found

C++ Project on Payroll Management System

N/A
N/A
Protected

Academic year: 2021

Share "C++ Project on Payroll Management System"

Copied!
16
0
0

Loading.... (view fulltext now)

Full text

(1)

//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)

(2)

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

(3)

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 {

(4)

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

(5)

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

(6)

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();

(7)

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;

} }

(8)

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)

{

(9)

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

(10)

{ 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);

(11)

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)

(12)

<<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");

(13)

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)

(14)

<<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; } }

(15)

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);

(16)

} }

while(main_choice!=7);

References

Related documents

To probe the possible influence of vacancy-related defects on the Peierls stress, energies were calculated for GSFs in point defect-free forsterite, and with {VM1}″ and {VM2}″

You get the implicit declaration warning when hail is an implicitly declared function An implicitly declared function is a function which had neither a prototype nor a definition

Together with our joint venture partners in the UK, Austria and China, we respect rigorous quality standards throughout our manufacturing activities, ensuring our products

Set up costs as a percentage of the savings from the first two years of operation for the other shared services were lower at 35 per cent for LGSS, 18 per cent for

A delayed response of the K-band light curve after the V-band light curve was found for all targets, and 49 measurements of lag times between the flux variation of the dust emission

rality of gay parenting coupled with society's strongly held beliefs about gender roles and predation, not to mention laws and policies prevent- ing gay men from

We predicted that mindfulness would have a positive relationship with exercise motivation because by becoming aware of thoughts, emotions, and sensations elicited by behavior and

Estimates from deep proteomics and transcript profiling suggest that about half the human genome is expressed in proteins at over 20 copies per cell in a given cell type (i.e.,