Social Icons

banner image

automatic salary system

/**************************************************************************
                           Project On


            P A Y R O L L   S Y S T E M

                           

**************************************************************************/

/**************************************************************************
            DECLARATION OF THE HEADER FILES
***************************************************************************/

#include<iostream>
using namespace std;

#include<fstream>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>

/**************************************************************************
               DECLARATIONS OF THE CLASSES
***************************************************************************/
/***************************************************************************
            DECLARATIONS OF EMPLOYEE CLASSES
***************************************************************************/
class employee
{
public:
struct date_of_birth
    {
    int d,m;
    long y;
    }dob;
struct address
    {
    int house_no;
    char block[2],colony[15],city[10],state[10],pin_code[6];
    }add;
int emp_no;
char emp_name[25],desig[10],gender,mobile_no[10];
void add_emp();
void modi_emp();
void del_emp();
void disp_emp();
int found_emp(int);
};
employee emp;

/****************************************************************************
        DECLARATIONS OF SALARY CLASS
****************************************************************************/
class salary
{
public:
long int basic_sal,net_sal;
int da,hra,ta,pf,tax;
int emp_no;
void get_sal();
void disp_sal();
};
salary sal;

/****************************************************************************
            DECLARATIONS OF ATTENDANCE CLASS
*****************************************************************************/
class attendance
{
public:
int emp_no,el,eol,att_amt;
void get_att();
void disp_att();
};
attendance att;

/****************************************************************************
            DECLARATIONS OF PAYSLIP CLASS
*****************************************************************************/
class payslip
{
public:
void print_pay();
};
payslip pay;



/****************************************************************************
            DECLARATIONS OF MENU CLASS
*****************************************************************************/
class menu
{
int chs,ch;
char c;
public:
void wel_menu();
void main_menu();
void emp_menu();
void sal_menu();
void att_menu();
void print_menu();
void disp_menu();
};
menu m;

/****************************************************************************
            DECLARATION OF THE CLASS TO MAKE SHAPES
****************************************************************************/
class shape
{
public:
void box(int x1,int x2,int y1,int y2);
void ver(int x1,int y1,int y2);
void hor(int x1,int x2,int y1);
};
shape sh;




/***************************************************************************
            FUNCTION TO MAKE SHAPE OF BOX
***************************************************************************/
void shape::box(int x1,int x2,int y1,int y2)
{
int a,b,c,d;
char v=179;
char h=219;
a=x1;
b=x2;
c=y1;
d=y2;
for(;a<=b;a++)
    {
    cout<<h;
    }
a=x1;
for(;a<=b;a++)
    {

    cout<<h;
    }
a=x1;
for(;c<d;c++)
    {
   
    cout<<v;
    }
c=y1;
for(;c<d;c++)
    {
   
    cout<<v;
    }
c=y1;
}

/***************************************************************************
            FUNCTION TO MAKE VERTICAL LINE
****************************************************************************/
void shape::ver(int x1,int y1,int y2)
{

int a,b,c;
char d=179;
a=x1;
b=y1;
c=y2;
for(;b<c;b++)
    {

    cout<<d;
    }
}

/***************************************************************************
            FUNCTION TO MAKE HORIZONTAL LINE
****************************************************************************/
void shape::hor(int x1,int x2,int y1)
{
int a,b,c;
a=x1;
b=x2;
c=y1;
char d=219;
for(;a<b;a++)
    {
   
    cout<<d;
    }
}

/***************************************************************************
        FUNCTION TO ADD EMPLOYEES' DETAILS
***************************************************************************/
void employee::add_emp()
{
int i,temp_no,mob,pin,flag=0;

fstream fout;
fout.open("emp.dat",ios::in);
fout.seekg(0,ios::beg);
gotoxy(20,10);
cout<<"Enter the employee number(In digits) - ";
cin>>temp_no;
while(fout.read((char *)this,sizeof(employee)))
    {
    if(emp_no==temp_no)
        {
        flag=1;
        break;
        }
    }
fout.close();
if(flag==0)
    {
    fstream fout;
    emp_no=temp_no;
    clrscr();
    sh.box(15,70,7,47);
    gotoxy(20,10);
    cout<<"Employee Number "<<emp_no;
    gotoxy(20,12);
    cout<<"Enter the employee name - ";
    gets(emp_name);
    gotoxy(20,14);
    cout<<"Enter the gender(M/F) - ";
    cin>>gender;
    if(gender=='M' || gender=='m' || gender=='F' || gender=='f')
        {
        gotoxy(20,16);
        cout<<"Enter the designation - ";
        gets(desig);
        gotoxy(20,18);
        cout<<"Enter the date of birth:-";
        gotoxy(20,19);
        cout<<"Date - ";
        cin>>dob.d;
        gotoxy(20,20);
        cout<<"Month - ";
        cin>>dob.m;
        gotoxy(20,21);
        cout<<"Year - ";
        cin>>dob.y;
        gotoxy(20,23);
        cout<<"Enter the Address";
        gotoxy(20,24);
        cout<<"Block(in alfabate) - ";
        gets(add.block);
        gotoxy(20,25);
        cout<<"House Number(In Digits) - ";
        cin>>add.house_no;
        gotoxy(20,26);
        cout<<"Colony - ";
        gets(add.colony);
        gotoxy(20,27);
        cout<<"City - ";
        gets(add.city);
        gotoxy(20,28);
        cout<<"State - ";
        gets(add.state);
        gotoxy(20,29);
        cout<<"Pin Code(In 6 Digits) - ";
        gets(add.pin_code);
        pin=strlen(add.pin_code);
        if(pin==6)
            {
            gotoxy(20,31);
            cout<<"Enter mobile number(In 10 Digits) - ";
            gets(mobile_no);
            mob=strlen(mobile_no);
            if(mob==10)
                {
                fout.open("emp.dat",ios::out|ios::app);
                fout.write((char *)this,sizeof(employee));
                fout.close();
                clrscr();
                gotoxy(25,12);
                cout<<"RECORD IS ADDED";
                getch();
                m.main_menu();
                }
            else
                {
                clrscr();
                gotoxy(25,15);
                cout<<"MOBILE NUMBER IS NOT VALID";
                getch();
                m.emp_menu();
                }
            }
        else
            {
            clrscr();
            gotoxy(25,15);
            cout<<"PIN CODE IS NOT VALID";
            getch();
            m.emp_menu();
            }
        }
    else
        {
        clrscr();
        gotoxy(25,15);
        cout<<"WRONG GENDER";
        getch();
        m.emp_menu();
        }
    }
else
    {
    clrscr();
    gotoxy(25,15);
    cout<<"RECORD ALREADY ENTERED";
    getch();
    m.emp_menu();
    }
}

/***************************************************************************
        FUNCTION TO MODIFY EMPLOYEES' DETAILS
***************************************************************************/
void employee::modi_emp()
{
int temp_no,pin,mob,flag=0;
char t,temp_name[25],t_desig[10],t_gender,t_mobile[11];
struct t_date
    {
    int d,m,y;
    }t_dob;
struct t_address
    {
    int house_no;
    char block[2],colony[15],city[10],state[10],pin_code[6];
    }t_add;
clrscr();
fstream fout;
gotoxy(20,10);
fout.open("emp.dat",ios::in);
fout.seekg(0,ios::beg);
cout<<"Enter the employee number to be modified(In Digit) -  ";
cin>>temp_no;
while(fout.read((char *)this,sizeof(employee)))
    {
    if(emp_no==temp_no)
        {
        clrscr();
        sh.box(15,70,5,45);
        gotoxy(20,10);
        cout<<"Employee Number - "<<emp_no;
        gotoxy(20,12);
        cout<<"Employee Name - "<<emp_name;
        gotoxy(20,14);
        cout<<"Gender - "<<gender;
        gotoxy(20,16);
        cout<<"Designation - "<<desig;
        gotoxy(20,18);
        cout<<"The Date of Birth is - ";
        gotoxy(20,19);
        cout<<"Date - "<<dob.d;
        gotoxy(20,20);
        cout<<"Month - "<<dob.m;
        gotoxy(20,21);
        cout<<"Year - "<<dob.y;
        gotoxy(20,23);
        cout<<"Address -";
        gotoxy(20,24);
        cout<<"Block - "<<add.block;
        gotoxy(20,25);
        cout<<"House Number - "<<add.house_no;
        gotoxy(20,26);
        cout<<"Colony - "<<add.colony;
        gotoxy(20,27);
        cout<<"City - "<<add.city;
        gotoxy(20,28);
        cout<<"State - "<<add.state;
        gotoxy(20,29);
        cout<<"Pin Code - "<<add.pin_code;
        gotoxy(20,31);
        cout<<"Mobile Number - "<<mobile_no;
        gotoxy(20,35);
        cout<<"Do you want to modify this(Y/N) - ";
        cin>>t;
        if(t=='y' || t=='Y')
            {
            clrscr();
            gotoxy(20,10);
            cout<<"Enter the employee number(In Digits) - ";
            cin>>temp_no;
            while(fout.read((char *)this,sizeof(employee)))
                {
                if(emp_no==temp_no)
                    {
                    flag=1;
                    break;
                    }
                }
            fout.close();
            if(flag==0)
                {
                fstream fout;
                emp_no=temp_no;
                clrscr();
                sh.box(15,65,7,45);
                gotoxy(20,10);
                cout<<"Employee Number "<<emp_no;
                gotoxy(20,12);
                cout<<"Enter the employee name - ";
                gets(temp_name);
                gotoxy(20,14);
                cout<<"Enter the gender(M/F) - ";
                cin>>t_gender;
                if(gender=='M' || gender=='m' || gender=='F' || gender=='f')
                    {
                    gotoxy(20,16);
                    cout<<"Enter the designation - ";
                    gets(t_desig);
                    gotoxy(20,18);
                    cout<<"Enter the date of birth:-";
                    gotoxy(20,19);
                    cout<<"Date - ";
                    cin>>t_dob.d;
                    gotoxy(20,20);
                    cout<<"Month - ";
                    cin>>t_dob.m;
                    gotoxy(20,21);
                    cout<<"Year - ";
                    cin>>t_dob.y;
                    gotoxy(20,23);
                    cout<<"Enter the Address";
                    gotoxy(20,24);
                    cout<<"Block - ";
                    gets(t_add.block);
                    gotoxy(20,25);
                    cout<<"House Number(In Digits) - ";
                    cin>>t_add.house_no;
                    gotoxy(20,26);
                    cout<<"Colony - ";
                    gets(t_add.colony);
                    gotoxy(20,27);
                    cout<<"City - ";
                    gets(t_add.city);
                    gotoxy(20,28);
                    cout<<"State - ";
                    gets(t_add.state);
                    gotoxy(20,29);
                    cout<<"Pin Code(In 6 Digits) - ";
                    gets(t_add.pin_code);
                    pin=strlen(t_add.pin_code);
                    if(pin==6)
                        {
                        gotoxy(20,31);
                        cout<<"Enter mobile number(In 10 Digits) - ";
                        gets(t_mobile);
                        mob=strlen(t_mobile);
                        if(mob==10)
                            {
                            int find_rec=0;
                            fout.open("emp.dat",ios::in);
                            fout.seekg(0,ios::beg);
                            while(fout.read((char *)this,sizeof(employee)))
                                {
                                find_rec++;
                                if(emp_no==temp_no);
                                break;
                                }
                            fout.close();
                            fstream fout;
                            fout.open("emp.dat",ios::out|ios::ate);
                            emp_no=temp_no;
                            strcpy(emp_name,temp_name);
                            gender=t_gender;
                            strcpy(desig,t_desig);
                            dob.d=t_dob.d;
                            dob.m=t_dob.m;
                            dob.y=t_dob.y;
                            strcpy(add.block,t_add.block);
                            add.house_no=t_add.house_no;
                            strcpy(add.colony,t_add.colony);
                            strcpy(add.city,t_add.city);
                            strcpy(add.state,t_add.state);
                            strcpy(add.pin_code,t_add.pin_code);
                            strcpy(mobile_no,t_mobile);
                            int location;
                            location=(find_rec-1)*sizeof(employee);
                            fout.seekp(location);
                            fout.write((char *)this,sizeof(employee));
                            fout.close();
                            clrscr();
                            gotoxy(25,15);
                            cout<<"RECORD MODIFIED";
                            getch();
                            m.main_menu();
                            }
                        else
                            {
                            clrscr();
                            gotoxy(25,15);
                            cout<<"MOBILE NUMBER IS NOT VALID";
                            getch();
                            m.emp_menu();
                            }
                        }
                    else
                        {
                        clrscr();
                        gotoxy(25,15);
                        cout<<"PIN CODE IS NOT VALID";
                        getch();
                        m.emp_menu();
                        }
                    }
                else
                    {
                    clrscr();
                    gotoxy(25,15);
                    cout<<"WRONG GENDER";
                    getch();
                    m.emp_menu();
                    }
                }
            else
                {
                clrscr();
                gotoxy(25,15);
                cout<<"RECORD ALREADY ENTERED";
                getch();
                m.emp_menu();
                }
            }
        else
            {
            clrscr();
            cout<<"RECORD NOT MODIFIED";
            getch();
            m.emp_menu();
            }

        }
    else
        {
        clrscr();
        cout<<"NO RECORD FOUND";
        getch();
        m.emp_menu();
        }
    }
}

/***************************************************************************
        FUNCTION TO DELETE EMPLOYEES' DETAILS
***************************************************************************/
void employee::del_emp()
{
int t_emp,found=0;
clrscr();
sh.box(15,65,7,20);
gotoxy(20,10);
cout<<"Enter the employee number(In Digits) - ";
cin>>t_emp;
fstream fout;
fout.open("emp.dat",ios::in);
fstream tem;
tem.open("temp.dat",ios::out);
fout.seekg(0,ios::beg);
while(!fout.eof())
    {
    fout.read((char *)this,sizeof(employee));
    if(fout.eof())
    break;
    if(emp_no!=t_emp)
        {
        tem.write((char *)this,sizeof(employee));
        found=1;
        }
    }
fout.close();
tem.close();
fout.open("emp.dat",ios::out);
tem.open("temp.dat",ios::in);
if(!fout)
cout<<"File cannot open";
if(!tem)
cout<<"File temp cannot open";
tem.seekg(0,ios::beg);
while(!tem.eof())
    {
    tem.read((char *)this,sizeof(employee));
    if(tem.eof())
    break;
    if(emp_no!=t_emp)
    fout.write((char *)this,sizeof(employee));
    }
fout.close();
tem.close();
fstream fout1;
fout1.open("sal.dat",ios::in);
fstream tem1;
tem1.open("temp1.dat",ios::out);
fout1.seekg(0,ios::beg);
while(!fout1.eof())
    {
    fout1.read((char *)&sal,sizeof(salary));
    if(fout1.eof())
    break;
    if(sal.emp_no!=t_emp)
    tem1.write((char *)&sal,sizeof(sal));
    }
fout1.close();
tem1.close();
fout1.open("sal.dat",ios::out);
tem1.open("temp1.dat",ios::in);
if(!fout1)
cout<<"File cannot open";
if(!tem1)
cout<<"File temp cannot open";
tem1.seekg(0,ios::beg);
while(!tem1.eof())
    {
    tem1.read((char *)&sal,sizeof(salary));
    if(tem1.eof())
    break;
    if(sal.emp_no!=t_emp)
    fout1.write((char *)&sal,sizeof(salary));
    }
fout1.close();
tem1.close();
fstream fout2;
fout2.open("att.dat",ios::in);
fstream tem2;
tem2.open("temp2.dat",ios::out);
fout2.seekg(0,ios::beg);
while(!fout2.eof())
    {
    fout2.read((char *)&att,sizeof(attendance));
    if(fout2.eof())
    break;
    if(att.emp_no!=t_emp)
    tem2.write((char *)&att,sizeof(attendance));
    }
fout2.close();
tem2.close();
fout2.open("att.dat",ios::out);
tem2.open("temp2.dat",ios::in);
if(!fout2)
cout<<"File cannot open";
if(!tem2)
cout<<"File temp cannot open";
tem2.seekg(0,ios::beg);
while(!tem2.eof())
    {
    tem2.read((char *)&att,sizeof(attendance));
    if(tem2.eof())
    break;
    if(att.emp_no!=t_emp)
    fout2.write((char *)&att,sizeof(attendance));
    clrscr();
    gotoxy(25,15);
    cout<<"RECORD IS DELETED";
    }
fout2.close();
tem2.close();
if(found==0)
    {
    clrscr();
    gotoxy(25,15);
    cout<<"RECORD NOT FOUND";
    getch();
    m.main_menu();
    }
getch();
m.main_menu();
}

/***************************************************************************
        FUNCTION TO DISPLAY EMPLOYEES' DETAILS
***************************************************************************/
void employee::disp_emp()
{
int j=2,k=3;
clrscr();
_setcursortype(_NOCURSOR);
sh.box(1,80,2,30);
gotoxy(j,k);
cout<<"Employee";
gotoxy(j,k+1);
cout<<"Number";
sh.ver(10,2,30);
gotoxy(j+9,k);
cout<<"Employee";
gotoxy(j+11,k+1);
cout<<"Name";
sh.ver(19,2,30);
gotoxy(j+18,k);
cout<<"Gender";
sh.ver(26,2,30);
gotoxy(j+25,k);
cout<<"Designation";
sh.ver(38,2,30);
gotoxy(j+37,k);
cout<<"Date of";
gotoxy(j+38,k+1);
cout<<"Birth";
sh.ver(49,2,30);
gotoxy(j+48,k);
cout<<"Address";
sh.ver(69,2,30);
gotoxy(j+68,k);
cout<<"Mobile No";
fstream fout;
fout.open("emp.dat",ios::in);
if(!fout)
cout<<"File cannot open";
fout.seekg(0,ios::beg);
while(fout.read((char *)this,sizeof(employee)))
    {
    gotoxy(j,k+3);
    cout<<emp_no;
    gotoxy(j+9,k+3);
    cout<<emp_name;
    gotoxy(j+18,k+3);
    cout<<gender;
    gotoxy(j+25,k+3);
    cout<<desig;
    gotoxy(j+37,k+3);
    cout<<dob.d<<"/"<<dob.m<<"/"<<dob.y;
    gotoxy(j+48,k+3);
    cout<<add.block<<"-"<<add.house_no<<", ";
    gotoxy(j+48,k+4);
    cout<<add.colony<<",";
    gotoxy(j+48,k+5);
    cout<<add.city<<", ";
    gotoxy(j+48,k+6);
    cout<<add.state<<"-"<<add.pin_code;
    gotoxy(j+68,k+3);
    cout<<mobile_no;
    k=k+4;
    }
getch();
m.main_menu();
}

/***************************************************************************
        FUNCTION TO ADD EMPLOYEES' ATTENDANCE
***************************************************************************/
void attendance::get_att()
{
int temp_no,found=0,flag=0;
clrscr();
sh.box(15,70,7,30);
fstream fout;
fstream fout1;
gotoxy(20,10);
cout<<"Enter the Employee Number(In Digits) - ";
cin>>temp_no;
fout1.open("emp.dat",ios::in);
fout1.seekg(0,ios::beg);
while(fout1.read((char *)&emp,sizeof(employee)))
    {
    if(emp.emp_no==temp_no)
        {
        found=1;
        break;
        }
    }
fout1.close();
if(found==1)
    {
    fout.open("att.dat",ios::in);
    while(fout.read((char *)this,sizeof(attendance)))
        {
        if(emp_no==temp_no)
            {
            flag=1;
            break;
            }
        }
    if(flag==0)
        {
        fout.close();
        fout.open("att.dat",ios::out|ios::app);
        if(!fout)
        cout<<"File Cannot Open";
        emp_no=temp_no;
        clrscr();
        gotoxy(20,10);
        cout<<"RECORD FOUND";
        getch();
        clrscr();
        sh.box(15,70,7,30);
        gotoxy(20,10);
        cout<<"Employee Number "<<emp_no;
        gotoxy(20,12);
        cout<<"Enter the Earn Leaves(In Digits) - ";
        cin>>el;
        gotoxy(20,14);
        cout<<"Enter the Extra Ordinary Leaves(In Digits) - ";
        cin>>eol;
        att_amt=(eol*50);
        gotoxy(20,16);
        cout<<"Amount is - "<<att_amt;
        fout.write((char *)this,sizeof(attendance));
        fout.close();
        getch();
        m.att_menu();
        }
    else
        {
        fout.close();
        clrscr();
        gotoxy(25,15);
        cout<<"RECORD ALREADY ENTERED";
        getch();
        m.att_menu();
        }
    }
else
    {
    fout.close();
    clrscr();
    gotoxy(20,10);
    cout<<"RECORD NOT FOUND";
    getch();
    m.att_menu();
    }
}

/***************************************************************************
        FUNCTION TO DISPLAY EMPLOYEES' ATTENDANCE
***************************************************************************/
void attendance::disp_att()
{
int j=20,k=3;
_setcursortype(_NOCURSOR);
clrscr();
sh.box(18,60,2,25);
fstream fout;
gotoxy(j,k);
cout<<"Employee";
gotoxy(j,k+1);
cout<<"Number";
sh.ver(28,2,25);
gotoxy(j+10,k);
cout<<"EL";
sh.ver(33,2,25);
gotoxy(j+15,k);
cout<<"EOL";
sh.ver(38,2,25);
gotoxy(j+20,k);
cout<<"Amount";
fout.open("att.dat",ios::in);
fout.seekg(0,ios::beg);
while(fout.read((char *)this,sizeof(attendance)))
    {
    gotoxy(j,k+3);
    cout<<emp_no;
    gotoxy(j+10,k+3);
    cout<<el;
    gotoxy(j+15,k+3);
    cout<<eol;
    gotoxy(j+20,k+3);
    cout<<att_amt;
    k=k+2;
    }
fout.close();
sh.hor(1,75,40);
sh.hor(1,75,44);
gotoxy(25,42);
cout<<"I N S T R U C T I O N S";
gotoxy(3,46);
cout<<"EOL stands for Extra Ordinary Leave";
gotoxy(3,48);
cout<<"EL stands for Earn Leave";
gotoxy(3,50);
cout<<"Amount is to be deduct from the salary because of excess leaves";
getch();
m.att_menu();
}

/***************************************************************************
        FUNCTION TO ADD EMPLOYEES' SALARY
***************************************************************************/
void salary::get_sal()
{
int temp_no,found=0,flag=0;
clrscr();
sh.box(15,70,7,20);
fstream fout;
fstream fout1;
gotoxy(20,10);
cout<<"Enter the employee number(In Digits) - ";
cin>>temp_no;
fout1.open("emp.dat",ios::in);
fout1.seekg(0,ios::beg);
while(fout1.read((char *)&emp,sizeof(employee)))
    {
    if(emp.emp_no==temp_no)
        {
        found=1;
        break;
        }
    }
fout1.close();
if(found==1)
    {
    fstream fout;
    fout.open("sal.dat",ios::in);
    while(fout.read((char *)this,sizeof(salary)))
        {
        if(emp_no==temp_no)
            {
            flag=1;
            break;
            }
        }
    if(flag==0)
        {
        fout.close();
        emp_no=temp_no;
        clrscr();
        gotoxy(20,10);
        cout<<"RECORD FOUND";
        getch();
        clrscr();
        sh.box(15,70,7,30);
        gotoxy(20,10);
        cout<<"Employee Number  "<<emp_no;
        gotoxy(20,12);
        cout<<"Enter the Basic Salary - ";
        cin>>basic_sal;
        da=(basic_sal*.15);
        hra=(basic_sal*.20);
        ta=(basic_sal*.10);
        pf=(basic_sal*.25);
        gotoxy(20,14);
        cout<<"Dearness Allownces - "<<da;
        gotoxy(20,16);
        cout<<"House Rent Allownces - "<<hra;
        gotoxy(20,18);
        cout<<"Travel Allownces - "<<ta;
        gotoxy(20,20);
        net_sal=basic_sal+da+hra+ta-pf-att.att_amt;
        cout<<"Net Salary before Tax - "<<net_sal;
        getch();
        if(net_sal<=10000)
        tax=0;
        else if(10000<net_sal && net_sal<=20000)
        tax=(net_sal*.10);
        else if(20000<net_sal && net_sal<=30000)
        tax=(net_sal*.15);
        else if(30000<net_sal && net_sal<=50000)
        tax=(net_sal*.20);
        else
        tax=(net_sal*.25);
        net_sal=net_sal-tax;
        gotoxy(20,22);
        cout<<"Net Salary after Tax - "<<net_sal;
        getch();
        fout.open("sal.dat",ios::out|ios::app);
        fout.write((char *)this,sizeof(salary));
        if(!fout)
        cout<<"File Cannot Open";
        clrscr();
        gotoxy(25,20);
        cout<<"SALARY ADDED";
        fout.close();
        getch();
        m.sal_menu();
        }
    else
        {
        clrscr();
        gotoxy(25,15);
        cout<<"RECORD ALREADY ENTERED";
        getch();
        m.sal_menu();
        }
    }
else
    {
    clrscr();
    gotoxy(20,10);
    cout<<"RECORD NOT FOUND";
    getch();
    m.sal_menu();
    }
}

/***************************************************************************
        FUNCTION TO DISPLAY EMPLOYEES' SALARY
***************************************************************************/
void salary::disp_sal()
{
int j=3,k=3;
clrscr();
_setcursortype(_NOCURSOR);
sh.box(2,65,2,30);
fstream fout;
gotoxy(j,k);
cout<<"Employee";
gotoxy(j+1,k+1);
cout<<"Number";
sh.ver(11,2,30);
gotoxy(j+9,k);
cout<<"BASIC SALARY";
sh.ver(24,2,30);
gotoxy(j+22,k);
cout<<"DA";
sh.ver(31,2,30);
gotoxy(j+29,k);
cout<<"HRA";
sh.ver(38,2,30);
gotoxy(j+36,k);
cout<<"TA";
sh.ver(45,2,30);
gotoxy(j+43,k);
cout<<"Tax";
sh.ver(52,2,30);
gotoxy(j+50,k);
cout<<"Net Salary";
fout.open("sal.dat",ios::in);
if(!fout)
cout<<"Cannot open file";
fout.seekg(0,ios::beg);
while(fout.read((char *)this,sizeof(salary)))
    {
    gotoxy(j,k+3);
    cout<<emp_no;
    gotoxy(j+9,k+3);
    cout<<basic_sal;
    gotoxy(j+22,k+3);
    cout<<da;
    gotoxy(j+29,k+3);
    cout<<hra;
    gotoxy(j+36,k+3);
    cout<<ta;
    gotoxy(j+43,k+3);
    cout<<tax;
    gotoxy(j+50,k+3);
    cout<<net_sal;
    k=k+2;
    }
fout.close();
getch();
m.sal_menu();
}

/***************************************************************************
        FUNCTION TO PRINT EMPLOYEES' PAYSLIP
***************************************************************************/
void payslip::print_pay()
{
date d;
getdate(&d);
int d1,m1,y1,temp_no;
d1=d.da_day;
m1=d.da_mon;
y1=d.da_year;
clrscr();
int found=0;
fstream fout,fout1,fout2;
cout<<"Enter the Employee Number - ";
cin>>temp_no;
fout.open("emp.dat",ios::in);
fout1.open("sal.dat",ios::in);
fout2.open("att.dat",ios::in);
if(!fout)
cout<<"File Emp cannot open";
if(!fout1)
cout<<"File salary cannot open";
if(!fout2)
cout<<"File attendance cannot open";
fout.seekg(0,ios::beg);
fout1.seekg(0,ios::beg);
fout2.seekg(0,ios::beg);
_setcursortype(_NOCURSOR);
clrscr();
sh.box(15,75,2,32);
gotoxy(65,3);
cout<<" WELCOME";
gotoxy(40,6);
cout<<"P A Y S L I P";
gotoxy(65,6);
cout<<d1<<"/"<<m1<<"/"<<y1;
while(fout.read((char *)&emp,sizeof(employee)))
    {
    if(emp.emp_no==temp_no)
        {
        gotoxy(20,9);
        cout<<emp.emp_name;
        gotoxy(41,11);
        cout<<"Emp No : "<<emp.emp_no;
        gotoxy(20,12);
        cout<<emp.desig;
        found=1;
        }
    }
while(fout1.read((char *)&sal,sizeof(salary)))
    {
    if(sal.emp_no==temp_no)
        {
        sh.ver(37,14,27);
        gotoxy(23,14);
        cout<<"EARNING";
        gotoxy(20,16);
        cout<<"BASIC : "<<sal.basic_sal;
        gotoxy(20,18);
        cout<<"DA : "<<sal.da;
        gotoxy(20,20);
        cout<<"TA : "<<sal.ta;
        gotoxy(20,22);
        cout<<"HRA : "<<sal.hra;
        gotoxy(20,25);
        cout<<"TOTAL : "<<sal.basic_sal+sal.da+sal.ta+sal.hra;
        sh.ver(55,14,27);
        gotoxy(41,14);
        cout<<"DEDUCTIONS";
        gotoxy(41,16);
        cout<<"PF : "<<sal.pf;
        gotoxy(41,18);
        cout<<"TAX : "<<sal.tax;
        gotoxy(41,25);
        cout<<"TOTAL : "<<sal.pf+sal.tax;
        sh.hor(19,72,27);
        gotoxy(37,29);
        cout<<"NET SALARY : "<<sal.net_sal;
        found=1;
        }
    }
while(fout2.read((char *)&att,sizeof(attendance)))
    {
    if(att.emp_no==temp_no)
        {
        gotoxy(58,14);
        cout<<"ATTENDANCE";
        gotoxy(58,16);
        cout<<"EOL : "<<att.eol;
        gotoxy(58,18);
        cout<<"AMOUNT : "<<att.att_amt;
        found=1;
        }
    }
fout.close();
fout1.close();
fout2.close();
getch();
if(found==0)
    {
    clrscr();
    gotoxy(25,15);
    cout<<"RECORD NOT FOUND";
    getch();
    m.main_menu();
    }
getch();
m.main_menu();
}
/***************************************************************************
            FUNCTION TO SHOW WELCOME MENU
***************************************************************************/
void menu::wel_menu()
{
_setcursortype(_NOCURSOR);
int i,a=20,c=5;
char v=179,h=219;
clrscr();
delay(500);
for(a=20;a<=55;a++)
    {
    gotoxy(a,4);
    cout<<h;
    delay(20);
    }
for(c=5;c<25;c++)
    {
    gotoxy(55,c);
    cout<<v;
    delay(50);
    }
for(a=55;a>=20;a--)
    {
    gotoxy(a,25);
    cout<<h;
    delay(30);
    }
for(c=24;c>=5;c--)
    {
    gotoxy(20,c);
    cout<<v;
    delay(40);
    }
delay(1000);
gotoxy(33,10);
cout<<"W";
delay(50);
cout<<"E";
delay(50);
cout<<"L";
delay(50);
cout<<"C";
delay(50);
cout<<"O";
delay(50);
cout<<"M";
delay(50);
cout<<"E";
delay(50);
cout<<" ";
delay(50);
cout<<"T";
delay(50);
cout<<"O";
delay(50);
cout<<" ";
delay(50);
gotoxy(30,14);
cout<<"A";
delay(50);
cout<<"U";
delay(50);
cout<<"T";
delay(50);
cout<<"O";
delay(50);
cout<<"M";
delay(50);
cout<<"A";
delay(50);
cout<<"T";
delay(50);
cout<<"E";
delay(50);
cout<<"D";
delay(50);
cout<<" ";
delay(50);
cout<<"S";
delay(50);
cout<<"A";
delay(50);
cout<<"L";
delay(50);
cout<<"A";
delay(50);
cout<<"R";
delay(50);
cout<<"Y";
delay(50);
gotoxy(29,18);
cout<<"P";
delay(50);
cout<<"R";
delay(50);
cout<<"O";
delay(50);
cout<<"C";
delay(50);
cout<<"E";
delay(50);
cout<<"S";
delay(50);
cout<<"S";
delay(50);
cout<<"I";
delay(50);
cout<<"N";
delay(50);
cout<<"G";
delay(50);
cout<<" ";
cout<<" ";
delay(50);
cout<<"S";
delay(50);
cout<<"Y";
delay(50);
cout<<"S";
delay(50);
cout<<"T";
delay(50);
cout<<"E";
delay(50);
cout<<"M";
delay(50);;
delay(1000);
sh.box(50,80,30,38);
delay(500);
gotoxy(51,32);
cout<<"PREPARED By:-";
delay(500);
gotoxy(51,34);
cout<<"NAME : HITESH KUMAR ";
delay(500);
gotoxy(51,36);
cout<<"Enrol No. : ODL/1096/401/0701";
delay(1000);
gotoxy(22,45);
cout<<"Press any key to continue.........";
getch();
gotoxy(22,45);
clreol();
gotoxy(22,33);
cout<<"Please wait";
for(i=33;i<45;i++)
    {
    gotoxy(i,33);
    cout<<".";
    delay(200);
    }
gotoxy(22,45);
clreol();
cout<<"Press any key to continue.........";
getch();
main_menu();
}
/***************************************************************************
            FUNCTION TO SHOW MAIN MENU
***************************************************************************/
void menu::main_menu()
{
clrscr();
textcolor(RED);
sh.box(25,55,7,27);
_setcursortype(_NORMALCURSOR);
gotoxy(30,10);
cprintf("1. Employee Details");
gotoxy(30,12);
cprintf("2. Attendance Record");
gotoxy(30,14);
cprintf("3. Calculate Salary");
gotoxy(30,16);
cprintf("4. Print Pay-Slip");
gotoxy(30,18);
cprintf("5. Display all details");
gotoxy(30,20);
cprintf("6. Exit");
gotoxy(30,23);
cprintf("Enter your choice - ");
cin>>chs;
switch(chs)
    {
    case 1:
        emp_menu();
        break;
    case 2:
        att_menu();
        break;
    case 3:
        sal_menu();
        break;
    case 4:
        print_menu();
        break;
    case 5:
        disp_menu();
        break;
    case 6:
        exit(0);
    default:
        clrscr();
        gotoxy(20,10);
        cout<<"WRONG CHOICE";
        getch();
        main_menu();
    }
}
/***************************************************************************
        FUNCTION TO SHOW EMPLOYEES' DETAILS MENU
***************************************************************************/
void menu::emp_menu()
{
clrscr();
textcolor(GREEN);
sh.box(25,60,7,37);
_setcursortype(_NORMALCURSOR);
gotoxy(30,10);
cprintf("1. Add employee details");
gotoxy(30,12);
cprintf("2. Modify employee details");
gotoxy(30,14);
cprintf("3. Delete employee details");
gotoxy(30,16);
cprintf("4. Display employee details");
gotoxy(30,18);
cprintf("5. To go previous menu");
gotoxy(30,20);
cprintf("6. Exit");
gotoxy(30,23);
cprintf("Enter your choice - ");
cin>>ch;
switch(ch)
    {
    case 1:
        emp.add_emp();
        break;
    case 2:
        emp.modi_emp();
        break;
    case 3:
        emp.del_emp();
        break;
    case 4:
        emp.disp_emp();
        break;
    case 5:
        main_menu();
        break;
    case 6:
        exit(0);
    default:
        clrscr();
        gotoxy(20,10);
        cout<<"WRONG CHOICE";
        getch();
        emp_menu();
    }
}
/***************************************************************************
        FUNCTION TO SHOW EMPLOYEES' ATTENDANCE MENU
***************************************************************************/
void menu::att_menu()
{
clrscr();
sh.box(15,65,7,23);
_setcursortype(_NORMALCURSOR);
int c;
textcolor(GREEN);
gotoxy(20,10);
cprintf("1. To add attendance of the Employee");
gotoxy(20,12);
cout<<"2. To display attendance of the Employee";
gotoxy(20,14);
cout<<"3. To go previous menu";
gotoxy(20,16);
cout<<"4. Exit";
gotoxy(20,19);
cout<<"Enter your choice  ";
cin>>c;
switch(c)
    {
    case 1:
        att.get_att();
        break;
    case 2:
        att.disp_att();
        break;
    case 3:
        main_menu();
        break;
    case 4:
        exit(0);
    default:
        cout<<"WRONG CHOICE";
        getch();
        break;
    }
}
/***************************************************************************
        FUNCTION TO SHOW EMPLOYEES' SALARY MENU
***************************************************************************/
void menu::sal_menu()
{
clrscr();
sh.box(15,65,7,23);
_setcursortype(_NORMALCURSOR);
int c;
gotoxy(20,10);
cout<<"1. Add salary details of the employee";
gotoxy(20,12);
cout<<"2. Display salary details of the employee";
gotoxy(20,14);
cout<<"3. Back to main menu";
gotoxy(20,16);
cout<<"4. Exit";
gotoxy(20,19);
cout<<"Enter your choice  ";
cin>>c;
switch(c)
    {
        case 1:
            sal.get_sal();
            break;
        case 2:
            sal.disp_sal();
            break;
        case 3:
            m.main_menu();
            break;
        case 4:
            exit(0);
        default:
            cout<<"WRONG CHOICE";
            break;
    }
}
/***************************************************************************
        FUNCTION TO SHOW EMPLOYEES' PAYSLIP MENU
***************************************************************************/
void menu::print_menu()
{
    clrscr();
    pay.print_pay();
}
/***************************************************************************
        FUNCTION TO SHOW ALL DETAILS OF EMPLOYEES'
***************************************************************************/
void menu::disp_menu()
{
int j=2,k=3;
clrscr();
sh.box(1,80,2,35);
_setcursortype(_NOCURSOR);
gotoxy(j,k);
cout<<"Emp No";
sh.ver(8,2,35);
gotoxy(j+7,k);
cout<<"Employee";
gotoxy(j+9,k+1);
cout<<"Name";
sh.ver(17,2,35);
gotoxy(j+16,k);
cout<<"Designation";
sh.ver(29,2,35);
gotoxy(j+28,k);
cout<<"Pin Code";
sh.ver(38,2,35);
gotoxy(j+37,k);
cout<<"Mobile No";
sh.ver(49,2,35);
gotoxy(j+48,k);
cout<<"EARNING";
sh.ver(57,2,35);
gotoxy(j+56,k);
cout<<"DEDUCTION";
sh.ver(67,2,35);
gotoxy(j+66,k);
cout<<"Net";
gotoxy(j+66,k+1);
cout<<"Salary";
sh.ver(76,2,35);
gotoxy(j+75,k);
cout<<"EOL";
fstream fout,fout1,fout2;
fout.open("emp.dat",ios::in);
fout1.open("sal.dat",ios::in);
fout2.open("att.dat",ios::in);
if(!fout)
cout<<"File Employee cannot open";
if(!fout1)
cout<<"File Salary cannot open";
if(!fout2)
cout<<"File Attendance cannot open";
fout.seekg(0,ios::beg);
fout1.seekg(0,ios::beg);
fout2.seekg(0,ios::beg);
while(fout.read((char *)&emp,sizeof(employee)))
    {
    j=2;
    while(fout1.read((char *)&sal,sizeof(salary)))
        {
        j=2;
        if(emp.emp_no==sal.emp_no)
            {
            while(fout2.read((char *)&att,sizeof(attendance)))
                {
                j=2;
                if(att.emp_no==emp.emp_no)
                    {
                    gotoxy(j,k+3);
                    cout<<emp.emp_no;
                    gotoxy(j+7,k+3);
                    cout<<emp.emp_name;
                    gotoxy(j+16,k+3);
                    cout<<emp.desig;
                    gotoxy(j+28,k+3);
                    cout<<emp.add.pin_code;
                    gotoxy(j+37,k+3);
                    cout<<emp.mobile_no;
                    gotoxy(j+48,k+3);
                    cout<<sal.basic_sal+sal.da+sal.hra+sal.ta;
                    gotoxy(j+56,k+3);
                    cout<<sal.pf+sal.tax;
                    gotoxy(j+66,k+3);
                    cout<<sal.net_sal;
                    gotoxy(j+75,k+3);
                    cout<<att.eol;
                    k=k+2;
                    }
                }
            }
        }
    }
fout.close();
fout1.close();
fout2.close();
sh.hor(1,75,40);
sh.hor(1,75,44);
gotoxy(25,42);
cout<<"I N S T R U C T I O N S";
gotoxy(2,46);
cout<<"The above table will show the data which have unique employee number";
cout<<"that is in all three files.  In this table ";
cout<<"EMP NO stands for Earn Leave,  ";
cout<<"EOL stands for Extra Ordinary Leave.  ";
cout<<"Earning includes DA(Dearness Allownces),  HRA(House Rent Allownces),  ";
cout<<"TA(Travel Allownces) and Basic Salary.  ";
cout<<"Deductions include PF(Provident Fund and Tax";
getch();
m.main_menu();
}
/***************************************************************************
                MAIN FUNCTION
***************************************************************************/
void main()
{
    clrscr();
    m.wel_menu();
    getch();
}
automatic salary system automatic salary system Reviewed by Shobhit Goel on August 15, 2015 Rating: 5

No comments:

Airtel Hackaton 2017

Powered by Blogger.