Question

In: Computer Science

windows forms Application using Visual Basic use visual basic 2012 Part 1: Programming – Income Tax...

windows forms Application using Visual Basic

use visual basic 2012

Part 1: Programming – Income Tax Application

1.1 Problem Statement

Due to upcoming end of financial year, you are being called in to write a program which will read in a file and produce reports as outlined.

Inputs:

The input file called IncomeRecord.txt contains a list of Annual income records of employees in a firm. Each record is on a single line and the fields are separated by spaces. The names of the fields are:

Employee ID number - Integer 

Employee Last name - String 

Employee First Name - String 

Annual Income - Double

An example record may have the following form:

10001 Smith Will 30000

10002 Sivo Maika 100000

10003 Deo Amit 25000

Note: This is just sample data, there will be more records for the other employees.

1.2 Program Specifications:

Your program should be able to process the following commands. i.e. Program should provide user with the following menu

. I. Read employee data. (from file IncomeRecord.txt)

II. Print all employees’ data. (on a new Window/Form)

III. Calculate the income tax for all and store it in an array.

IV. Display the employee data including the income tax. (on a new Window/Form)

V. Exit program.

1.2.1 Explanation of each menu item.

1. Read employee data You must create and use appropriate arrays to retrieve all the information about employees from the file IncomeRecord.txt

2. Print all employees’ data. This menu item should open a new window/form and simply print the contents of the arrays created in suitable format on the screen. You must display all fields and records.

3. Calculate the income tax for all and store it in an array. For this assignment, to calculate income tax, a 5% tax rate applies across the board to all income amount. A message should be displayed at the end to indicate that the calculation was completed successfully.

4. Display employee data including Income Tax. Display the ID, last name, first name, annual income, and the income tax calculated for all employees. This information should be displayed in a new window/form.

Sample output based on the data provided above:

10001 Smith Will 30000 1500

10002 Sivo Maika 100000 5000

10003 Deo Amit 25000 1250

5. Exit program This is when program should end.

Solutions

Expert Solution

//**********************************************************
// PROJECT PAYROLL
//**********************************************************

//**********************************************************
// INCLUDED HEADER FILES
//**********************************************************

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


//**********************************************************
// THIS CLASS CONTAINS ALL THE DRAWING FUNCTIONS
//**********************************************************

class LINES
{
public :
void LINE_HOR(int, int, int, char) ;
void LINE_VER(int, int, int, char) ;
void BOX(int,int,int,int,char) ;
void CLEARUP(void) ;
void CLEARDOWN(void) ;
} ;


//**********************************************************
// THIS CLASS CONTROL ALL THE FUNCTIONS IN THE MENU
//**********************************************************

class MENU
{
public :
void MAIN_MENU(void) ;
private :
void EDIT_MENU(void) ;
void INTRODUCTION(void) ;
} ;


//**********************************************************
// THIS CLASS CONTROL ALL THE FUNCTIONS RELATED TO EMPLOYEE
//**********************************************************

class EMPLOYEE
{
public :
void NEW_EMPLOYEE(void) ;
void MODIFICATION(void) ;
void DELETION(void) ;
void DISPLAY(void) ;
void LIST(void) ;
void SALARY_SLIP(void) ;
private :
void ADD_RECORD(int, char[], char[], char[], int, int, int, char[], char, char, char, float, float) ;
void MODIFY_RECORD(int, char [], char [], char [], char [], char, char, char, float, float) ;
void DELETE_RECORD(int) ;
int LASTCODE(void) ;
int CODEFOUND(int) ;
int RECORDNO(int) ;
int FOUND_CODE(int) ;
void DISPLAY_RECORD(int) ;
int VALID_DATE(int, int, int) ;

int code, dd, mm, yy ;
char name[26], address[31], phone[10], desig[16] ;
char grade, house, convense ;
float loan, basic ;
} ;


//**********************************************************
// THIS FUNCTION CONTROL ALL THE FUNCTIONS IN THE MAIN MENU
//**********************************************************

void MENU :: MAIN_MENU(void)
{
char ch ;
LINES L ;
L.CLEARUP() ;
while (1)
{
clrscr() ;
gotoxy(14,3);
cout<<" C++ Project for Payroll Management System";
L.BOX(25,7,57,9,218) ;
L.BOX(10,5,71,21,218) ;
L.BOX(11,6,70,20,219) ;
gotoxy(29,8) ;
cout <<"PAYROLL MANAGEMENT SYSTEM" ;
gotoxy(30,11) ;
cout <<"1: NEW EMPLOYEE" ;
gotoxy(30,12) ;
cout <<"2: DISPLAY EMPLOYEE" ;
gotoxy(30,13) ;
cout <<"3: LIST OF EMPLOYEES" ;
gotoxy(30,14) ;
cout <<"4: SALARY SLIP" ;
gotoxy(30,15) ;
cout <<"5: EDIT" ;
gotoxy(30,16) ;
cout <<"0: QUIT" ;
gotoxy(30,18) ;
cout <<"ENTER YOUR CHOICE :" ;
gotoxy(5,23);
cout<<"http://codewithc.com, Email : [email protected]";


ch = getch() ;
if (ch == 27 || ch == '0')
break ;
else if (ch == '1')
{
EMPLOYEE E ;
E.NEW_EMPLOYEE() ;
}
else if (ch == '2')
{
EMPLOYEE E ;
E.DISPLAY() ;
}
else if (ch == '3')
{
EMPLOYEE E ;
E.LIST() ;
}
else if (ch == '4')
{
EMPLOYEE E ;
E.SALARY_SLIP() ;
}
else if (ch == '5')
EDIT_MENU() ;
}
L.CLEARUP() ;
}


//**********************************************************
// THIS FUNCTION CONTROL ALL THE FUNCTIONS IN THE EDIT MENU
//**********************************************************

void MENU :: EDIT_MENU(void)
{
char ch ;
LINES L ;
L.CLEARDOWN() ;
while (1)
{
clrscr() ;
L.BOX(28,8,49,10,218) ;
L.BOX(10,5,71,21,218) ;
L.BOX(11,6,70,20,219) ;
gotoxy(31,9) ;
cout <<"E D I T M E N U" ;
gotoxy(30,13) ;
cout <<"1: DELETE RECORD" ;
gotoxy(30,14) ;
cout <<"2: MODIFY RECORD" ;
gotoxy(30,15) ;
cout <<"0: EXIT" ;
gotoxy(30,17) ;
cout <<"ENTER YOUR CHOICE :" ;
ch = getch() ;
if (ch == 27 || ch == '0')
break ;
else if (ch == '1')
{
EMPLOYEE E ;
E.DELETION() ;
}
else if (ch == '2')
{
EMPLOYEE E ;
E.MODIFICATION() ;
}
}
L.CLEARDOWN() ;
}


//**********************************************************
// THIS FUNCTION DRAWS THE HORRIZONTAL LINE
//**********************************************************

void LINES :: LINE_HOR(int column1, int column2, int row, char c)
{
for ( column1; column1<=column2; column1++ )
{
gotoxy(column1,row) ;
cout <<c ;
}
}


//**********************************************************
// THIS FUNCTION DRAWS THE VERTICAL LINE
//**********************************************************

void LINES :: LINE_VER(int row1, int row2, int column, char c)
{
for ( row1; row1<=row2; row1++ )
{
gotoxy(column,row1) ;
cout <<c ;
}
}


//**********************************************************
// THIS FUNCTION DRAWS THE BOX
//**********************************************************

void LINES :: BOX(int column1, int row1, int column2, int row2, char c)
{
char ch=218 ;
char c1, c2, c3, c4 ;
char l1=196, l2=179 ;
if (c == ch)
{
c1=218 ;
c2=191 ;
c3=192 ;
c4=217 ;
l1 = 196 ;
l2 = 179 ;
}
else
{
c1=c ;
c2=c ;
c3=c ;
c4=c ;
l1 = c ;
l2 = c ;
}
gotoxy(column1,row1) ;
cout <<c1 ;
gotoxy(column2,row1) ;
cout <<c2 ;
gotoxy(column1,row2) ;
cout <<c3 ;
gotoxy(column2,row2) ;
cout <<c4 ;
column1++ ;
column2-- ;
LINE_HOR(column1,column2,row1,l1) ;
LINE_HOR(column1,column2,row2,l1) ;
column1-- ;
column2++ ;
row1++ ;
row2-- ;
LINE_VER(row1,row2,column1,l2) ;
LINE_VER(row1,row2,column2,l2) ;
}


//**********************************************************
// THIS FUNCTION CLEAR THE SCREEN LINE BY LINE UPWARD
//**********************************************************

void LINES :: CLEARUP(void)
{
for (int i=25; i>=1; i--)
{
delay(20) ;
gotoxy(1,i) ;
clreol() ;
}
}


//**********************************************************
// THIS FUNCTION CLEAR THE SCREEN LINE BY LINE DOWNWORD
//**********************************************************

void LINES :: CLEARDOWN(void)
{
for (int i=1; i<=25; i++)
{
delay(20) ;
gotoxy(1,i) ;
clreol() ;
}
}


//**********************************************************
// THIS FUNCTION ADDS THE GIVEN DATA IN THE EMPLOYEE'S FILE
//**********************************************************

void EMPLOYEE :: ADD_RECORD(int ecode, char ename[26], char eaddress[31], char ephone[10], int d, int m, int y, char edesig[16], char egrade, char ehouse, char econv, float eloan, float ebasic)
{
fstream file ;
file.open("EMPLOYEE.DAT", ios::app) ;
code = ecode ;
strcpy(name,ename) ;
strcpy(address,eaddress) ;
strcpy(phone,ephone) ;
dd = d ;
mm = m ;
yy = y ;
strcpy(desig,edesig) ;
grade = egrade ;
house = ehouse ;
convense = econv ;
loan = eloan ;
basic = ebasic ;
file.write((char *) this, sizeof(EMPLOYEE)) ;
file.close() ;
}


//**********************************************************
// THIS FUNCTION MODIFY THE GIVEN DATA IN THE
// EMPLOYEE'S FILE
//**********************************************************

void EMPLOYEE :: MODIFY_RECORD(int ecode, char ename[26], char eaddress[31], char ephone[10], char edesig[16], char egrade, char ehouse, char econv, float eloan, float ebasic)
{
int recno ;
recno = RECORDNO(ecode) ;
fstream file ;
file.open("EMPLOYEE.DAT", ios::out | ios::ate) ;
strcpy(name,ename) ;
strcpy(address,eaddress) ;
strcpy(phone,ephone) ;
strcpy(desig,edesig) ;
grade = egrade ;
house = ehouse ;
convense = econv ;
loan = eloan ;
basic = ebasic ;
int location ;
location = (recno-1) * sizeof(EMPLOYEE) ;
file.seekp(location) ;
file.write((char *) this, sizeof(EMPLOYEE)) ;
file.close() ;
}


//**********************************************************
// THIS FUNCTION DELETE THE RECORD IN THE EMPLOYEE FILE
// FOR THE GIVEN EMPLOYEE CODE
//**********************************************************

void EMPLOYEE :: DELETE_RECORD(int ecode)
{
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
fstream temp ;
temp.open("temp.dat", ios::out) ;
file.seekg(0,ios::beg) ;
while (!file.eof())
{
file.read((char *) this, sizeof(EMPLOYEE)) ;
if (file.eof())
break ;
if (code != ecode)
temp.write((char *) this, sizeof(EMPLOYEE)) ;
}
file.close() ;
temp.close() ;
file.open("EMPLOYEE.DAT", ios::out) ;
temp.open("temp.dat", ios::in) ;
temp.seekg(0,ios::beg) ;
while (!temp.eof())
{
temp.read((char *) this, sizeof(EMPLOYEE)) ;
if ( temp.eof() )
break ;
file.write((char *) this, sizeof(EMPLOYEE)) ;
}
file.close() ;
temp.close() ;
}


//**********************************************************
// THIS FUNCTION RETURNS THE LAST EMPLOYEE'S CODE
//**********************************************************

int EMPLOYEE :: LASTCODE(void)
{
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
file.seekg(0,ios::beg) ;
int count=0 ;
while (file.read((char *) this, sizeof(EMPLOYEE)))
count = code ;
file.close() ;
return count ;
}


//**********************************************************
// THIS FUNCTION RETURNS 0 IF THE GIVEN CODE NOT FOUND
//**********************************************************

int EMPLOYEE :: FOUND_CODE(int ecode)
{
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
file.seekg(0,ios::beg) ;
int found=0 ;
while (file.read((char *) this, sizeof(EMPLOYEE)))
{
if (code == ecode)
{
found = 1 ;
break ;
}
}
file.close() ;
return found ;
}


//**********************************************************
// THIS FUNCTION RETURNS RECORD NO. OF THE GIVEN CODE
//**********************************************************

int EMPLOYEE :: RECORDNO(int ecode)
{
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
file.seekg(0,ios::beg) ;
int recno=0 ;
while (file.read((char *) this, sizeof(EMPLOYEE)))
{
recno++ ;
if (code == ecode)
break ;
}
file.close() ;
return recno ;
}


//**********************************************************
// THIS FUNCTION DISPLAYS THE LIST OF THE EMPLOYEES
//**********************************************************

void EMPLOYEE :: LIST(void)
{
clrscr() ;
int row = 6 , found=0, flag=0 ;
char ch ;
gotoxy(31,2) ;
cout <<"LIST OF EMPLOYEES" ;
gotoxy(30,3) ;
cout <<"~~~~~~~~~~~~~~~~~~~" ;
gotoxy(1,4) ;
cout <<"CODE NAME PHONE DOJ DESIGNATION GRADE SALARY" ;
gotoxy(1,5) ;
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" ;
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) this, sizeof(EMPLOYEE)))
{
flag = 0 ;
delay(20) ;
found = 1 ;
gotoxy(2,row) ;
cout <<code ;
gotoxy(6,row) ;
cout <<name ;
gotoxy(31,row) ;
cout <<phone ;
gotoxy(40,row) ;
cout <<dd <<"/" <<mm <<"/" <<yy ;
gotoxy(52,row) ;
cout <<desig ;
gotoxy(69,row) ;
cout <<grade ;
if (grade != 'E')
{
gotoxy(74,row) ;
cout <<basic ;
}
else
{
gotoxy(76,row) ;
cout <<"-" ;
}
if ( row == 23 )
{
flag = 1 ;
row = 6 ;
gotoxy(1,25) ;
cout <<"Press any key to continue or Press <ESC> to exit" ;
ch = getch() ;
if (ch == 27)
break ;
clrscr() ;
gotoxy(31,2) ;
cout <<"LIST OF EMPLOYEES" ;
gotoxy(30,3) ;
cout <<"~~~~~~~~~~~~~~~~~~~" ;
gotoxy(1,4) ;
cout <<"CODE NAME PHONE DOJ DESIGNATION GRADE SALARY" ;
gotoxy(1,5) ;
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" ;
}
else
row++ ;
}
if (!found)
{
gotoxy(5,10) ;
cout <<"\7Records not found" ;
}
if (!flag)
{
gotoxy(1,25) ;
cout <<"Press any key to continue..." ;
getche() ;
}
file.close () ;
}


//**********************************************************
// THIS FUNCTION DISPLAYS THE RECORD OF THE EMPLOYEES
//**********************************************************

void EMPLOYEE :: DISPLAY_RECORD(int ecode)
{
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) this, sizeof(EMPLOYEE)))
{
if (code == ecode)
{
gotoxy(5,5) ;
cout <<"Employee Code # " <<code ;
gotoxy(5,6) ;
cout <<"~~~~~~~~~~~~~" ;
gotoxy(5,7) ;
cout <<"Name : " <<name ;
gotoxy(5,8) ;
cout <<"Address : " <<address ;
gotoxy(5,9) ;
cout <<"Phone no. : " <<phone ;
gotoxy(5,11) ;
cout <<"JOINING DATE" ;
gotoxy(5,12) ;
cout <<"~~~~~~~~~~~~" ;
gotoxy(5,13) ;
cout <<"Day : " <<dd ;
gotoxy(5,14) ;
cout <<"Month : " <<mm ;
gotoxy(5,15) ;
cout <<"Year : " <<yy ;
gotoxy(5,17) ;
cout <<"Designation : " <<desig ;
gotoxy(5,18) ;
cout <<"Grade : " <<grade ;
if (grade != 'E')
{
gotoxy(5,19) ;
cout <<"House (y/n) : " <<house ;
gotoxy(5,20) ;
cout <<"Convense (y/n) : " <<convense ;
gotoxy(5,22) ;
cout <<"Basic Salary : " <<basic ;
}
gotoxy(5,21) ;
cout <<"Loan : " <<loan ;
}
}
file.close() ;
}


//**********************************************************
// THIS FUNCTION GIVE DATA TO ADD IN THE FILE
//**********************************************************

void EMPLOYEE :: NEW_EMPLOYEE(void)
{
clrscr() ;
char ch, egrade, ehouse='N', econv='N' ;
char ename[26], eaddress[31], ephone[10], edesig[16], t1[10] ;
float t2=0.0, eloan=0.0, ebasic=0.0 ;
int d, m, y, ecode, valid ;
gotoxy(72,2) ;
cout <<"<0>=EXIT" ;
gotoxy(28,3) ;
cout <<"ADDITION OF NEW EMPLOYEE" ;
gotoxy(5,5) ;
cout <<"Employee Code # " ;
gotoxy(5,6) ;
cout <<"~~~~~~~~~~~~~" ;
gotoxy(5,7) ;
cout <<"Name : " ;
gotoxy(5,8) ;
cout <<"Address : " ;
gotoxy(5,9) ;
cout <<"Phone no. : " ;
gotoxy(5,11) ;
cout <<"JOINING DATE" ;
gotoxy(5,12) ;
cout <<"~~~~~~~~~~~~" ;
gotoxy(5,13) ;
cout <<"Day : " ;
gotoxy(5,14) ;
cout <<"Month : " ;
gotoxy(5,15) ;
cout <<"Year : " ;
gotoxy(5,17) ;
cout <<"Designation : " ;
gotoxy(5,18) ;
cout <<"Grade : " ;
gotoxy(5,21) ;
cout <<"Loan : " ;

ecode = LASTCODE() + 1 ;
if (ecode == 1)
{
ADD_RECORD(ecode, "null", "null", "null", 0, 0, 0, "null", 'n', 'n', 'n', 0.0, 0.0) ;
DELETE_RECORD(ecode) ;
}
gotoxy(21,5) ;
cout <<ecode ;
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter the name of the Employee" ;
gotoxy(20,7) ;
clreol() ;
gets(ename) ;
strupr(ename) ;
if (ename[0] == '0')
return ;
if (strlen(ename) < 1 || strlen(ename) > 25)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly (Range: 1..25)" ;
getch() ;
}
}
while (!valid) ;
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Address of the Employee" ;
gotoxy(20,8) ;
clreol() ;
gets(eaddress) ;
strupr(eaddress) ;
if (eaddress[0] == '0')
return ;
if (strlen(eaddress) < 1 || strlen(eaddress) > 30)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly (Range: 1..30)" ;
getch() ;
}
}
while (!valid) ;
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Phone no. of the Employee or Press <ENTER> for none" ;
gotoxy(20,9) ;
clreol() ;
gets(ephone) ;
if (ephone[0] == '0')
return ;
if ((strlen(ephone) < 7 && strlen(ephone) > 0) || (strlen(ephone) > 9))
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly" ;
getch() ;
}
}
while (!valid) ;
if (strlen(ephone) == 0)
strcpy(ephone,"-") ;
char tday[3], tmonth[3], tyear[5] ;
int td ;
do
{
valid = 1 ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER DAY OF JOINING" ;
gotoxy(13,13) ;
clreol() ;
gets(tday) ;
td = atoi(tday) ;
d = td ;
if (tday[0] == '0')
return ;
}
while (d == 0) ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER MONTH OF JOINING" ;
gotoxy(13,14) ;
clreol() ;
gets(tmonth) ;
td = atoi(tmonth) ;
m = td ;
if (tmonth[0] == '0')
return ;
}
while (m == 0) ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER YEAR OF JOINING" ;
gotoxy(13,15) ;
clreol() ;
gets(tyear) ;
td = atoi(tyear) ;
y = td ;
if (tyear[0] == '0')
return ;
}
while (y == 0) ;
if (d>31 || d<1)
valid = 0 ;
else if (((y%4)!=0 && m==2 && d>28) || ((y%4)==0 && m==2 && d>29))
valid = 0 ;
else if ((m==4 || m==6 || m==9 || m==11) && d>30)
valid = 0 ;
else if (y<1990 || y>2020)
valid = 0 ;
if (!valid)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly" ;
getch() ;
gotoxy(13,14) ;
clreol() ;
gotoxy(13,15) ;
clreol() ;
}
}
while (!valid) ;
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Designation of the Employee" ;
gotoxy(20,17) ;
clreol() ;
gets(edesig) ;
strupr(edesig) ;
if (edesig[0] == '0')
return ;
if (strlen(edesig) < 1 || strlen(edesig) > 15)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly (Range: 1..15)" ;
getch() ;
}
}
while (!valid) ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Grade of the Employee (A,B,C,D,E)" ;
gotoxy(20,18) ;
clreol() ;
egrade = getche() ;
egrade = toupper(egrade) ;
if (egrade == '0')
return ;
}
while (egrade < 'A' || egrade > 'E') ;
if (egrade != 'E')
{
gotoxy(5,19) ;
cout <<"House (y/n) : " ;
gotoxy(5,20) ;
cout <<"Convense (y/n) : " ;
gotoxy(5,22) ;
cout <<"Basic Salary : " ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER IF HOUSE ALLOWANCE IS ALLOTED TO EMPLOYEE OR NOT" ;
gotoxy(22,19) ;
clreol() ;
ehouse = getche() ;
ehouse = toupper(ehouse) ;
if (ehouse == '0')
return ;
}
while (ehouse != 'Y' && ehouse != 'N') ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER IF CONVENCE ALLOWANCE IS ALLOTED TO EMPLOYEE OR NOT" ;
gotoxy(22,20) ;
clreol() ;
econv = getche() ;
econv = toupper(econv) ;
if (econv == '0')
return ;
}
while (econv != 'Y' && econv != 'N') ;
}
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER LOAN AMOUNT IF ISSUED" ;
gotoxy(22,21) ;
clreol() ;
gets(t1) ;
t2 = atof(t1) ;
eloan = t2 ;
if (eloan > 50000)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7SHOULD NOT GREATER THAN 50000" ;
getch() ;
}
}
while (!valid) ;
if (egrade != 'E')
{
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER BASIC SALARY OF THE EMPLOYEE" ;
gotoxy(22,22) ;
clreol() ;
gets(t1) ;
t2 = atof(t1) ;
ebasic = t2 ;
if (t1[0] == '0')
return ;
if (ebasic > 50000)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7SHOULD NOT GREATER THAN 50000" ;
getch() ;
}
}
while (!valid) ;
}
gotoxy(5,25) ;
clreol() ;
do
{
gotoxy(5,24) ;
clreol() ;
cout <<"Do you want to save (y/n) " ;
ch = getche() ;
ch = toupper(ch) ;
if (ch == '0')
return ;
}
while (ch != 'Y' && ch != 'N') ;
if (ch == 'N')
return ;
ADD_RECORD(ecode, ename, eaddress, ephone, d, m, y, edesig, egrade, ehouse, econv, eloan, ebasic) ;
}


//**********************************************************
// THIS FUNCTION GIVE CODE FOR THE DISPLAY OF THE RECORD
//**********************************************************

void EMPLOYEE :: DISPLAY(void)
{
clrscr() ;
char t1[10] ;
int t2, ecode ;
gotoxy(72,2) ;
cout <<"<0>=EXIT" ;
gotoxy(5,5) ;
cout <<"Enter code of the Employee " ;
gets(t1) ;
t2 = atoi(t1) ;
ecode = t2 ;
if (ecode == 0)
return ;
clrscr() ;
if (!FOUND_CODE(ecode))
{
gotoxy(5,5) ;
cout <<"\7Record not found" ;
getch() ;
return ;
}
DISPLAY_RECORD(ecode) ;
gotoxy(5,25) ;
cout <<"Press any key to continue..." ;
getch() ;
}


//**********************************************************
// THIS FUNCTION GIVE DATA FOR THE MODIFICATION OF THE
// EMPLOYEE RECORD
//**********************************************************

void EMPLOYEE :: MODIFICATION(void)
{
clrscr() ;
char ch, egrade, ehouse='N', econv='N' ;
char ename[26], eaddress[31], ephone[10], edesig[16], t1[10] ;
float t2=0.0, eloan=0.0, ebasic=0.0 ;
int ecode, valid ;
gotoxy(72,2) ;
cout <<"<0>=EXIT" ;
gotoxy(5,5) ;
cout <<"Enter code of the Employee " ;
gets(t1) ;
t2 = atoi(t1) ;
ecode = t2 ;
if (ecode == 0)
return ;
clrscr() ;
if (!FOUND_CODE(ecode))
{
gotoxy(5,5) ;
cout <<"\7Record not found" ;
getch() ;
return ;
}
gotoxy(72,2) ;
cout <<"<0>=EXIT" ;
gotoxy(22,3) ;
cout <<"MODIFICATION OF THE EMPLOYEE RECORD" ;
DISPLAY_RECORD(ecode) ;
do
{
gotoxy(5,24) ;
clreol() ;
cout <<"Do you want to modify this record (y/n) " ;
ch = getche() ;
ch = toupper(ch) ;
if (ch == '0')
return ;
}
while (ch != 'Y' && ch != 'N') ;
if (ch == 'N')
return ;
clrscr() ;
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) this, sizeof(EMPLOYEE)))
{
if (code == ecode)
break ;
}
file.close() ;
gotoxy(5,5) ;
cout <<"Employee Code # " <<ecode ;
gotoxy(5,6) ;
cout <<"~~~~~~~~~~~~~" ;
gotoxy(40,5) ;
cout <<"JOINING DATE : " ;
gotoxy(40,6) ;
cout <<"~~~~~~~~~~~~~~" ;
gotoxy(55,5) ;
cout <<dd <<"/" <<mm <<"/" <<yy ;
gotoxy(5,7) ;
cout <<"Name : " ;
gotoxy(5,8) ;
cout <<"Address : " ;
gotoxy(5,9) ;
cout <<"Phone no. : " ;
gotoxy(5,10) ;
cout <<"Designation : " ;
gotoxy(5,11) ;
cout <<"Grade : " ;
gotoxy(5,14) ;
cout <<"Loan : " ;
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter the name of the Employee or <ENTER> FOR NO CHANGE" ;
gotoxy(20,7) ;
clreol() ;
gets(ename) ;
strupr(ename) ;
if (ename[0] == '0')
return ;
if (strlen(ename) > 25)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly (Range: 1..25)" ;
getch() ;
}
}
while (!valid) ;
if (strlen(ename) == 0)
{
strcpy(ename,name) ;
gotoxy(20,7) ;
cout <<ename ;
}
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Address of the Employee or <ENTER> FOR NO CHANGE" ;
gotoxy(20,8) ;
clreol() ;
gets(eaddress) ;
strupr(eaddress) ;
if (eaddress[0] == '0')
return ;
if (strlen(eaddress) > 30)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly (Range: 1..30)" ;
getch() ;
}
}
while (!valid) ;
if (strlen(eaddress) == 0)
{
strcpy(eaddress,address) ;
gotoxy(20,8) ;
cout <<eaddress ;
}
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Phone no. of the Employee or or <ENTER> FOR NO CHANGE" ;
gotoxy(20,9) ;
clreol() ;
gets(ephone) ;
if (ephone[0] == '0')
return ;
if ((strlen(ephone) < 7 && strlen(ephone) > 0) || (strlen(ephone) > 9))
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly" ;
getch() ;
}
}
while (!valid) ;
if (strlen(ephone) == 0)
{
strcpy(ephone,phone) ;
gotoxy(20,9) ;
cout <<ephone ;
}
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Designation of the Employee or <ENTER> FOR NO CHANGE" ;
gotoxy(20,10) ;
clreol() ;
gets(edesig) ;
strupr(edesig) ;
if (edesig[0] == '0')
return ;
if (strlen(edesig) > 15)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7Enter correctly (Range: 1..15)" ;
getch() ;
}
}
while (!valid) ;
if (strlen(edesig) == 0)
{
strcpy(edesig,desig) ;
gotoxy(20,10) ;
cout <<edesig ;
}
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"Enter Grade of the Employee (A,B,C,D,E) or <ENTER> FOR NO CHANGE" ;
gotoxy(20,11) ;
clreol() ;
egrade = getche() ;
egrade = toupper(egrade) ;
if (egrade == '0')
return ;
if (egrade == 13)
{
egrade = grade ;
gotoxy(20,11) ;
cout <<grade ;
}
}
while (egrade < 'A' || egrade > 'E') ;
if (egrade != 'E')
{
gotoxy(5,12) ;
cout <<"House (y/n) : " ;
gotoxy(5,13) ;
cout <<"Convense (y/n) : " ;
gotoxy(5,15) ;
cout <<"Basic Salary : " ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"ALLOTED HOUSE ALLOWANCE ? or <ENTER> FOR NO CHANGE" ;
gotoxy(22,12) ;
clreol() ;
ehouse = getche() ;
ehouse = toupper(ehouse) ;
if (ehouse == '0')
return ;
if (ehouse == 13)
{
ehouse = house ;
gotoxy(22,12) ;
cout <<ehouse ;
}
}
while (ehouse != 'Y' && ehouse != 'N') ;
do
{
gotoxy(5,25) ;
clreol() ;
cout <<"ALLOTED CONVENCE ALLOWANCE or <ENTER> FOR NO CHANGE" ;
gotoxy(22,13) ;
clreol() ;
econv = getche() ;
econv = toupper(econv) ;
if (econv == '0')
return ;
if (econv == 13)
{
econv = convense ;
gotoxy(22,13) ;
cout <<econv ;
}
}
while (econv != 'Y' && econv != 'N') ;
}
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER LOAN AMOUNT or <ENTER> FOR NO CHANGE" ;
gotoxy(22,14) ;
clreol() ;
gets(t1) ;
t2 = atof(t1) ;
eloan = t2 ;
if (eloan > 50000)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7SHOULD NOT GREATER THAN 50000" ;
getch() ;
}
}
while (!valid) ;
if (strlen(t1) == 0)
{
eloan = loan ;
gotoxy(22,14) ;
cout <<eloan ;
}
if (egrade != 'E')
{
do
{
valid = 1 ;
gotoxy(5,25) ;
clreol() ;
cout <<"ENTER BASIC SALARY or <ENTER> FOR NO CHANGE" ;
gotoxy(22,15) ;
clreol() ;
gets(t1) ;
t2 = atof(t1) ;
ebasic = t2 ;
if (t1[0] == '0')
return ;
if (ebasic > 50000)
{
valid = 0 ;
gotoxy(5,25) ;
clreol() ;
cout <<"\7SHOULD NOT GREATER THAN 50000" ;
getch() ;
}
}
while (!valid) ;
if (strlen(t1) == 0)
{
ebasic = basic ;
gotoxy(22,15) ;
cout <<ebasic ;
}
}
gotoxy(5,25) ;
clreol() ;
do
{
gotoxy(5,18) ;
clreol() ;
cout <<"Do you want to save (y/n) " ;
ch = getche() ;
ch = toupper(ch) ;
if (ch == '0')
return ;
}
while (ch != 'Y' && ch != 'N') ;
if (ch == 'N')
return ;
MODIFY_RECORD(ecode,ename,eaddress,ephone,edesig,egrade,ehouse,econv,eloan,ebasic) ;
gotoxy(5,23) ;
cout <<"\7Record Modified" ;
gotoxy(5,25) ;
cout <<"Press any key to continue..." ;
getch() ;
}


//**********************************************************
// THIS FUNCTION GIVE CODE NO. FOR THE DELETION OF THE
// EMPLOYEE RECORD
//**********************************************************

void EMPLOYEE :: DELETION(void)
{
clrscr() ;
char t1[10], ch ;
int t2, ecode ;
gotoxy(72,2) ;
cout <<"<0>=EXIT" ;
gotoxy(5,5) ;
cout <<"Enter code of the Employee " ;
gets(t1) ;
t2 = atoi(t1) ;
ecode = t2 ;
if (ecode == 0)
return ;
clrscr() ;
if (!FOUND_CODE(ecode))
{
gotoxy(5,5) ;
cout <<"\7Record not found" ;
getch() ;
return ;
}
gotoxy(72,2) ;
cout <<"<0>=EXIT" ;
gotoxy(24,3) ;
cout <<"DELETION OF THE EMPLOYEE RECORD" ;
DISPLAY_RECORD(ecode) ;
do
{
gotoxy(5,24) ;
clreol() ;
cout <<"Do you want to delete this record (y/n) " ;
ch = getche() ;
ch = toupper(ch) ;
if (ch == '0')
return ;
}
while (ch != 'Y' && ch != 'N') ;
if (ch == 'N')
return ;
DELETE_RECORD(ecode) ;
LINES L ;
L.CLEARDOWN() ;
gotoxy(5,23) ;
cout <<"\7Record Deleted" ;
gotoxy(5,25) ;
cout <<"Press any key to continue..." ;
getch() ;
}


//**********************************************************
// THIS FUNCTION RETURN 0 IF THE GIVEN DATE IS INVALID
//**********************************************************

int EMPLOYEE :: VALID_DATE(int d1, int m1, int y1)
{
int valid=1 ;
if (d1>31 || d1<1)
valid = 0 ;
else if (((y1%4)!=0 && m1==2 && d1>28) || ((y1%4)==0 && m1==2 && d1>29))
valid = 0 ;
else if ((m1==4 || m1==6 || m1==9 || m1==11) && d1>30)
valid = 0 ;
return valid ;
}


//**********************************************************
// THIS FUNCTION PRINTS THE SALARY SLIP FOR THE EMPLOYEE
//**********************************************************

void EMPLOYEE :: SALARY_SLIP(void)
{
clrscr() ;
char t1[10] ;
int t2, ecode, valid ;
gotoxy(72,2) ;
cout <<"<0>=EXIT" ;
gotoxy(5,5) ;
cout <<"Enter code of the Employee " ;
gets(t1) ;
t2 = atoi(t1) ;
ecode = t2 ;
if (ecode == 0)
return ;
clrscr() ;
if (!FOUND_CODE(ecode))
{
gotoxy(5,5) ;
cout <<"\7Record not found" ;
getch() ;
return ;
}
fstream file ;
file.open("EMPLOYEE.DAT", ios::in) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) this, sizeof(EMPLOYEE)))
{
if (code == ecode)
break ;
}
file.close() ;
int d1, m1, y1 ;
struct date d;
getdate(&d);
d1 = d.da_day ;
m1 = d.da_mon ;
y1 = d.da_year ;
char *mon[12]= {"January","February","March","April","May","June","July","August","September","November","December"} ;
LINES L ;
L.BOX(2,1,79,25,219) ;
gotoxy(31,2) ;
cout <<"NADEEM AKHTAR, PGDBA - 200754667" ;
L.LINE_HOR(3,78,3,196) ;
gotoxy(34,4) ;
cout <<"SALARY SLIP" ;
gotoxy(60,4) ;
cout <<"Date: " <<d1 <<"/" <<m1 <<"/" <<y1 ;
gotoxy(34,5) ;
cout <<mon[m1-1] <<", " <<y1 ;
L.LINE_HOR(3,78,6,196) ;
gotoxy(6,7) ;
cout <<"Employee Name : " <<name ;
gotoxy(6,8) ;
cout <<"Designation : " <<desig ;
gotoxy(67,8) ;
cout <<"Grade : " <<grade ;
L.BOX(6,9,75,22,218) ;
L.LINE_HOR(10,71,20,196) ;
int days, hours ;
if (grade == 'E')
{
do
{
valid = 1 ;
gotoxy(10,21) ;
cout <<"ENTER NO. OF DAYS WORKED IN THE MONTH " ;
gotoxy(10,11) ;
cout <<"No. of Days : " ;
gets(t1) ;
t2 = atof(t1) ;
days = t2 ;
if (!VALID_DATE(days,m1,y1))
{
valid = 0 ;
gotoxy(10,21) ;
cout <<"\7ENTER CORRECTLY " ;
getch() ;
gotoxy(10,11) ;
cout <<" " ;
}
}
while (!valid) ;
do
{
valid = 1 ;
gotoxy(10,21) ;
cout <<"ENTER NO. OF HOURS WORKED OVER TIME " ;
gotoxy(10,13) ;
cout <<"No. of hours : " ;
gets(t1) ;
t2 = atof(t1) ;
hours = t2 ;
if (hours > 8 || hours < 0)
{
valid = 0 ;
gotoxy(10,21) ;
cout <<"\7ENTER CORRECTLY " ;
getch() ;
gotoxy(10,13) ;
cout <<" " ;
}
}
while (!valid) ;
gotoxy(10,21) ;
cout <<" " ;
gotoxy(10,11) ;
cout <<" " ;
gotoxy(10,13) ;
cout <<" " ;
}
gotoxy(10,10) ;
cout <<"Basic Salary : Rs." ;
gotoxy(10,12) ;
cout <<"ALLOWANCE" ;
if (grade != 'E')
{
gotoxy(12,13) ;
cout <<"HRA : Rs." ;
gotoxy(12,14) ;
cout <<"CA : Rs." ;
gotoxy(12,15) ;
cout <<"DA : Rs." ;
}
else
{
gotoxy(12,13) ;
cout <<"OT : Rs." ;
}
gotoxy(10,17) ;
cout <<"DEDUCTIONS" ;
gotoxy(12,18) ;
cout <<"LD : Rs." ;
if (grade != 'E')
{
gotoxy(12,19) ;
cout <<"PF : Rs." ;
}
gotoxy(10,21) ;
cout <<"NET SALARY : Rs." ;
gotoxy(6,24) ;
cout <<"CASHIER" ;
gotoxy(68,24) ;
cout <<"EMPLOYEE" ;
float HRA=0.0, CA=0.0, DA=0.0, PF=0.0, LD=0.0, OT=0.0, allowance, deduction, netsalary ;
if (grade != 'E')
{
if (house == 'Y')
HRA = (5*basic)/100 ;
if (convense == 'Y')
CA = (2*basic)/100 ;
DA = (5*basic)/100 ;
PF = (2*basic)/100 ;
LD = (15*loan)/100 ;
allowance = HRA+CA+DA ;
deduction = PF+LD ;
}
else
{
basic = days * 30 ;
LD = (15*loan)/100 ;
OT = hours * 10 ;
allowance = OT ;
deduction = LD ;
}
netsalary = (basic+allowance)-deduction ;
gotoxy(36,10) ;
cout <<basic ;
if (grade != 'E')
{
gotoxy(22,13) ;
cout <<HRA ;
gotoxy(22,14) ;
cout <<CA ;
gotoxy(22,15) ;
cout <<DA ;
gotoxy(22,19) ;
cout <<PF ;
}
else
{
gotoxy(22,13) ;
cout <<OT ;
}
gotoxy(22,18) ;
cout <<LD ;
gotoxy(33,15) ;
cout <<"Rs." <<allowance ;
gotoxy(33,19) ;
cout <<"Rs." <<deduction ;
gotoxy(36,21) ;
cout <<netsalary ;
gotoxy(2,1) ;
getch() ;
}


//**********************************************************
// MAIN FUNCTION CALLING MAIN MENU
//**********************************************************

void main(void)
{
MENU menu ;
menu.MAIN_MENU() ;
}


Related Solutions

Windows Forms application using Visual Basic: Create a class called Character that a role-playing game might...
Windows Forms application using Visual Basic: Create a class called Character that a role-playing game might use to represent a character within the game. A character should include six stats as instance variables – strength, dexterity, constitution, intelligence, wisdom and charisma (all types are int). Your class should have a constructor that initializes these six instance variables. Provide Properties with an appropriate set and get block for each instance variable. In addition, provide a method named getStatsTotal that calculates the...
Must be in Visual C# using windows forms : Create an application that opens a specified...
Must be in Visual C# using windows forms : Create an application that opens a specified text file and then displays a list of all the unique words found in the file. Hint: Use a LINQ method to remove all duplicate words.
Create code In visual Basic, Windows forms that uses case statements to convert the day of...
Create code In visual Basic, Windows forms that uses case statements to convert the day of the week (entered by the user into an integer. (Sunday = 1, Monday = 2, etc.) For this code, think about error checking. What will your code do if the user enters “dog” for example (which is not a day of the week)? What will your code do if the user enters a number or other incorrect input?
Write a Windows Form application named SumFiveInts. Microsoft Visual C#: An Introduction to Object-Oriented Programming,7th Edition....
Write a Windows Form application named SumFiveInts. Microsoft Visual C#: An Introduction to Object-Oriented Programming,7th Edition. Ch. 5, page 220. Take snip of program results.
Book - Introduction to Programming Using Visual Basic 11th Edition by David I. Schneider Programming Language...
Book - Introduction to Programming Using Visual Basic 11th Edition by David I. Schneider Programming Language - Visual Studio 2017 RESTAURANT MENU Write a program to place an order from the restaurant menu in Table 4.13. Use the form in Fig. 4.70, and write the program so that each group box is invisible and becomes visible only when its corresponding check box is checked. After the button is clicked, the cost of the meal should be calculated. (NOTE: The Checked...
***IN C# ONLY, USING WINDOWS FORMS*** --NO JAVA--. Create a GUI application in C# that calculates...
***IN C# ONLY, USING WINDOWS FORMS*** --NO JAVA--. Create a GUI application in C# that calculates and displays the total travel expenses of a business person on a trip. Here is the information that the user must provide: • Number of days on the trip • Amount of airfare, if any • Amount of car rental fees, if any • Number of miles driven, if a private vehicle was used • Amount of parking fees, if any • Amount of...
C# Programming language!!! Using visual studios if possible!! PrimeHealth Suite You will create an application that...
C# Programming language!!! Using visual studios if possible!! PrimeHealth Suite You will create an application that serves as a healthcare billing management system. This application is a multiform project (Chapter 9) with three buttons. The "All Accounts" button allows the user to see all the account information for each patient which is stored in an array of class type objects (Chapter 9, section 9.4).The "Charge Service" button calls the Debit method which charges the selected service to the patient's account...
Prepare a basic tax return using the appropriate tax forms and rate schedules. Choosing and preparing...
Prepare a basic tax return using the appropriate tax forms and rate schedules. Choosing and preparing an individual tax form. Use 1040 or 1040ez. Mark Huang is single, graduated from college in 2015 and began work as a systems analyst in July of that year. He is preparing to file his income tax return for 2015 and has collected the financial information shown below for that calendar year. Scholarship used to pay tuition $ 5,750 Scholarship used to pay room...
How to make an application for windows using c# ?
How to make an application for windows using c# ?
(2012 tax bracket) A. using the table, what is the total federal income tax bill for...
(2012 tax bracket) A. using the table, what is the total federal income tax bill for someone who makes $67,000 per year? (show calculations) B. using the table, what is the average tax rate for someone who makes $67,000 per year? (show calculations)
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT