Employee Record System

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 73
At a glance
Powered by AI
The document discusses developing a computerized employee information system to manage employee records and payroll more efficiently.

The employee information system aims to maintain records of employees and their salary modules to facilitate processes related to managing employees.

The main objectives of the proposed system are to save time, reduce paper work, speed up procedures, relieve management from repetitive tasks, enable efficient reporting, and allow for a flexible system that can adapt to future changes.

INTRODUCTION TO PROBLEM AREA

Today is the world of computer. Everything is becoming computerized in style. This


project is based on the 'Employee Information System'. We can handle each and every
process coming in the way of managing. This project is about to maintain the records of
Employees and their salary module with the help of computer terminal. User can update,
delete as well as modify information related to it.
Employee Record Maintenance system is one of the most important parts of very
organization comprising of various skills. All the employees of the organization will have to
be paid for their services to the organization. It also keeps rack of number of employees in
the organization it is the "wage accounting system" that's accounts for the salary to be
distributed among the different employees according to their efficiencies. It also records the
statistical particulars of each and every employee if the organization that may be of much
concern to the organization in the nearly future. The system is also aware of the basic salary
to be paid to each employee and the rates and terms for surely, these differ accordingly as the
basic pay and the organization.
The existing system maintains all the records computerized all the data is operated on to
provide the pay slips for each employee. All the required data is entered in the computer.
Different types of required program are to be made the salary of each employee. The data
related to employee record system is stored in the memory of computer.
The different sets of employee record system maintained by the employee based the
different laws of the country one set is maintained for the staff/officers and another set is for
workman category.
Employee management system is one of the most important parts of very
organization comprising of various skills. All the employees of the organization will have to
be paid for their services to the organization. It also keeps rack of number of employees in
the organization it is the "wage accounting system" that's accounts for the salary to be
distributed among the different employees according to their efficiencies. It also records
the statistical
particulars of each and every employee if the organization that may be of much concern to

OBJECTIVE
OF THE
PROJECT
The system analyst must be aware of exactly what the user requires from the new system.
That is management grades as objectives must be fully known and understood. After
reviewing the objectives of the current system. It is quite possible that he or she may be
aware of the computer capabilities that can be utilized to develop the system which can fulfill
the requirements. The main objectives of the proposed system are as follows:-

To save the time.

To reduce paper and file work.

To speed up the procedure.

To relieve the management from repetitive work.

To enable efficient and accurate reporting.

To have a flexible system that can adjust changes in future.

To make the decision making process easy for management.

For fast retrieval of information.

For better presentation of report.

EXISTING SYSTEM
There are three main employees
1)

Permanent (P)

2)

Apparition (A)

3)

Temporary (T)

Each of this type consist of workers (W) and staff (S) on the basis at the pay employees are
categorized as:

PAY UNDER DA CATEGORY :


These are paid according to the grades with increments band special increments from
time to time. It includes all the categories like P,A,T and W as well as S.

CONSOLIDATED :
These employee are paid on consolidated bases DA is fixed for permanent workers, it
change every month on the basis at price index, which is announced on monthly basis by
directorate consumer's price index, in Shimla. These also includes P, A, T as well as S
categories.

EMPLOYEE'S NAME :
It stores the name of the employees.

FATHER'S NAME :
It stores the name of father.

EMPLOYEE ID :
Registration ID is the permanent control of the employee. It never changes or it
always remains constant. It always increased in sequences. If the new admission nos is
5

allocated to him will remain in sequence. If retirement and allocation takes place the same
registration no. can not be allocated to other.

DESIGNATION CODE :
It signifies the post of the employees. According to the post of the employee in the
organization a is given named as designation code.

BASIC PAY :
Basic pay is given according to the designation of the employees, grades of the
employees according to their designations are decided this also includes information
regarding the annual increments given the employees at the time of appointment starting
basic pay the scale is given. But with each year increment is given to the basic. It can be
moved maximum up to the upper limit of the pay scale.
EMPLOYEE'S NUMBER :
It is a number which is given to all employees. It works as identification no. of that
employee. It is unique for all employees. It is generated by computer with the addition of
each new employee.
PRODUCTION BONUS :
This is calculated on the basis of paper production every on machine no 1, 2, and 4
payable to all permanent employees.
Percent of this based on the basis Pay +DA. It declares on the basis of the production
incentive amount.
This is also production bones on the production or machine no. 5, 6 & 7 in specially
department. A pooled amount is distributed on the basis of basic pay + DA (employee's state
insurance).
All the workers who are drawing salary below Rs. 6500/- are covered as under ESI.
Employee contribute 2.25% share at the gross salary.
MEDICAL FUND :
At the rate of Rs. 5pm. it is deducted from all the employees fund created used for the
employee's phase' chronic diseases.
COMMON FUND :

This fund is created by the deduction at Rs.3/-pm for all permanent workers. This
provides interest free loan at the rate of Rs. 1000/-. It emergent cases like treatment of wife,
child, domestic problems etc. in case of death at workers to give relief for financial meet Rs.
1250/- is payable on the time of retirement. Money is also spent on blood banks and sports
from this fund.
ALLOWANCES :
There are different types of allowances given to both types of employee's these are :

Dearness Allowance (DA) :


DA increases or decreases every month on the basis of Potato and Onion. If the price
of potato and onion will rise then DA will rise and vice versa. One DA point is = Rs. 7/-. If
in a month 20 points increases then it means that employee will get Rs. 140/- as DA. Those
who get Da received only increment in a year that incremented merge with basic that is less
than 100 Rs.
House Rent Allowance (HRA) :
HRA given to those employee who are not provided house facility. The rate of HRA
is 12.5% of the basic salary.
If is fixed in the union arrangement with the employer. The permanent and electrical
workers who are living outside of the mills colony are getting Rs. 105/- pm. the member of
staff are getting HRA according to their grades.
City Conveyance Allowance (CCA) :
CCA given to both types of employees with the different rate. Those who get only basic
salary get 5% of the basic as CCA and those employees who get basic +DA gets 2.5% of the
basic salary as CCA.
Medical Allowance (MA) :
Medical allowances given only those employees who get gross salary more than Rs.
6500 they get 5% of their basic.
Washing Allowance (WA):
Washing allowances given it those employees who get basic +da. WA is not more
than Rs. 50 to 100.
SALARY LEAVE :
7

Employees get three types of leaves in year. They get 8 sick leaves, 7 causal leaves
st

and 30 privilege leaves in a year. The year starts from April Ist to march 31 . there is no
extra payment to employee if they does not use their sick leaves and causal leaves within a
year.
FIXED BONUS :
Company announced bonus in his first annual general meeting. They provided bones
facilities to both types of employees. Company is liable to pay the fixed bonus to their
employees either company is going in profit or not.

BONUS ON PROFIT :
Bonus on profit means company announcer some percentage of their extra profit as
bonus which distributes in employees. Extra profit means that profit which is more than their
estimated profit. For egg if any company announced that they earned Rs. 1200000 in this
case company will distribute Rs. 200000 which is extra profit in their employees in that rate
which they announced company is not liable to pay bonus on profit. There are more
allowances given to both types of employees like cycle/scooter allowance, special allowance,
other allowances etc.
DEDUCTIONS :
There are different types of deductions made by company from salary payable to the
employees.
PROVIDENT FUND(PF) :
Company deducts some part of employees salary as a provident fund. When the
employee retired from the company, company returns his/her provident fund with interest.
INCOME TAX :
Management deducts income tax from employee's salaries and gives to govt. Income
tax deduct only those employees who get gross salary more then Rs. 60000 per year. Income
tax deducts on the basis of income tax rates
EMPLOY SAFETY INSURANCE :
Company provides ESI facilities to its employees. For providing this facility deduct
some part of employees salary, company deduct 1.75% of gross salary as ESI of those
employees whose gross salary is less than Rs. 6500.
DEDUCTION OF LOANS :
If any employee has taken loan from company, company deducts some part of his/her
salary as loan installment with interest. Company also deducts electricity charges, guest
house charges club dues etc.
WAGE ACCOUNTING :
An important feature of all business organization is that it employs people and makes
a workforce. The workforce consists of people of wide range of skills as manual, technical
and managerial. The common factor of the entire workforce is their demand to be paid for
their efforts and hence it makes the existence of personal administration system. This system
9

will have well organized employee record system system. This system provides information
regarding the employee's personal attributes, capabilities and terms of employment. The
employee record system system is means of knowing how much to pay each employee at
each occasion and of accounting for the monies. Employee record

system may be

performing following tasks.


Computation of each employees gross salary earnings, wages &
salary.
Computation of net payment based on gross earnings.
Accounting for amounts deducted from earnings.
First step is dependent upon the employee's terms of payment. It case of staff monthly
salary is one twelfth of their annual salary + commission or bonus to which they are emitted.
Thus very little computation is required.
On the other hand certain type of annual workers has complicated were structure.
Because their earnings may depends upon no of workers worked in various time period with
different hourly rate for each period. Piece workers are so called because all or some of their
earnings depends upon the amount of work done.
The computation of net payments is more standardized than that of gross wages,
being mainly the calculation of deduction such as income tax national insurance
contributions, and superannuation (pension) payments and so on.
Another problem of net wage distribution is note/coin analysis. This applies the
employees are paid in cash in contrast to cheques or credits transfers. The problem is in
determining the precise number of denominations of banks note and coin needed to make up
all the pay packets (wages envelopes) so that the packets contains the exact net amount.
AD ACCOUNTING ASPECTS OF WAGES :
Distribution of monies of employees as their cash, cheques or credit transfer. The entry of
correct amount in to the nominal ledger to cover subsequent payments.
DOCUMENTS INVOLVED IN WAGE ACCOUNTING :
Pay Advice :
It is a pay slip for each employee on which are the precise details of the pay for the
period. It shows the gross earning and how it is composed i.e. each amount deducted and the

10

net amount. It also contains employee's number name department, name tax code, national
insurance number and date.
Audit and Control Documents :
Employee record

need to be carefully controlled and checked as large money is

involved. The various documents described above need to be supplemented by nets of totals
so that if as discrepancy arises it are not too difficult to trace. This is particularly important
where cash is involved.
Wages Records :
It is important to maintain a record for each employee containing full absolutely full
accurate details of pay details. The record must be kept into date in terms of amendments as
well as updating of totals to date. Amendments include changes in gross wages, tax code,
and
department bank and so on.

11

LIMITATION OF
EXISTING
SYSTEM

Initially before coming up of computers, the data processing activities face many problems
such as inaccuracy, inefficiency, delay and improper record maintain.
Current status: In the existing system, if user wants to see what is current status of
appointments and information about friends than it is difficult to see and maintain this
manually.
Duplication: In the existing system, all the data is maintained in different files and registers.
This often leads to data duplication and redundancy in the stored data. Thus leading to
wastage of storage of space.
Inaccuracy: In the existing system information about appointments and personal information
about friends can be inaccurate, which results in to slow access to the desired information.
The inaccuracy which is caused is due to manual storage of data.
Inconsistency: Presently the system is not aware of the duplication of data, they are
maintaining the record manually which results in the total being in excess of what it should
be. In such situation, the data is said to be inconsistent, which supplies incorrect information.
Problem of updation: In the manual system, since every thing is stored in the diary, it is
quite difficult and time consuming to update the records. The major problem is the
modification that must be reflected in all the entries
and summarizes also needed to be updated.

12

SYSTEM ANALYSIS & DESIGN


System designing is a process that has to be rendered by the system analyst. He/she studies
the manual system and the output coming then he/she designs the output on the output graph
chart for the programmer. Besides this the analyst has to document the existing system to
design the input and codes which a programmer uses in this program.
In this project there are for major designing phases these are :
PROJECT PLANNING
The software Project management process begins with a set of activities that are collectively
called project planning. The first of these activities is estimation. The second task of
estimation of resources required to accomplish the software development effort.
The objective of software project planning is to provide a framework that enables a manager
to make reasonable estimates of the Resources, Cost and Schedule. The project planning took
into account the following phases:
Analysis Phase
It includes the study of the problem i.e. mobile automation and creation of the customer
requirements specification document. It also involves the study of the various tools required
for implementing the problem such as device driver programming tools.
Design Phase
It is the project demand that we first specify a structured design with an initial design
document (Known as High level Design) and in the second step, prepare a detailed design.
Specify the functional modules and functional refinement.
Implementation Phase
It is the project requires the design of the system developed in the design phase of the project
to be implemented and coded. The driver modules defined in the design phase are to be
coded in C language.

13

14

Testing Phase
It includes the conformance of the acceptance criteria set down in the customer requirements
specification.
Integration Phase
It requires the integration of the various modules developed in the project implementation
phase into the main project module.
A) Input design
B) Output design
C) File design
D) System flow chart
These phases are performed in a sequence called steps which are simply defining the growth
of project at design/run time.

Input design
An input is a raw data having movement towards the cpu input files specify the addition for
unique code with a detailed information and also permits about modification and removal of
existing records from the data base. In my project the following inputs are required for the
maintenance of employee record system. The input required are as follows :
1. Code of employee
2. Name of employee
3. Address of employee
4. City name of employee
5. Pincode of employees city
6. Phone number of employee
7. Designation of employee
8. Sex of employee
9. Whether the HRA is provided
10. Whether the Conveyance Allowance is provided
11. Basic salary of employee
12. Pf of employee

15

13. HRA given to employee


14. CA given to employee
15. DA given to employee

Output design
Output has been designed after rectification in the manual outputs formats as shown in
reports. In my project the displayed figures with colours is the output given to user.
In c by using different formatting library functions we are able to generate at specified
mannered output for end user
ADDITION OF NEW EMPLOYEE
Employee Code # 3
~~~~~~~~~~~~~~~~~~~~~

Name
: AMIT MALIK
........ Sex (M/F) : M
Address : JDH
........ City : YNR
Pin Code : 135001
Phone No. : 225533
---------------------------------------------------------------------------JOINING DATE
Day : 2
Month : 2
Year : 1998
---------------------------------------------------------------------------Designation : SR
---------------------------------------------------------------------------Accomodation (y/n) : Y
Conveyance (y/n) : Y
---------------------------------------------------------------------------Basic Salary
(Rs) : 5000
Provident Fund
(%) : 10
Daily Allowance
(%) : 8
House Rent Allowance
(%) : 6 ...
Conveyance Allowance
(%) : 15
Do you wish to save (y/n) :y

16

File design
This is the most important part of the system design. System design is based system analysis.
This phase of designing shows the process of data files used to store required data in a
desired format on secondary storage devices all the bits represent the length of fields where
each field is terminated at its length and next to this each record terminated either by fixed
length or by eol (end of line) pointer. The following are the files which are used to store the
record of each person

struct employee
{
int empcode, dd, mm, yy ;
char empname[31], empaddress[31], empcity[21], emppin[7] ;
char empphone[10], empdesig[21] ;
char emphouse, empconv, empsex ;
float empbasic, emppf, emphra, empca,empda;
};
int Emp_Fcode (int) ;
int Valid_Date (int, int, int) ;
void Emp_Display (int) ;

17

DATA FLOW DIAGRAM


Main_menu()

Employee info

Pay & Other Detail

Deductions Etc.

Reports

18

FEASIBILITY ANALYSIS
The feasibility is necessary to determine whether the proposed system is feasible
considering the technical, operational and economic factor.
Technical
Feasibility :
Technical Feasibility is related with the required hardware and software's availability in
the market domain. For proper implementation of any system, it should be technical
feasible.
Economic
Feasibility :
Security is essential requirement for any system. Leakage in security can result to
huge losses. The proposed system guarantees security by means of authentication,
the data integrity and thus it is economic feasible.
Operational
Feasibility :
The system has a GUI interface, which interacts with the user hiding the internal
complexity of the system. The proposed system is used and hence the system is feasible
operationally.

SYSTEM FLOW CHART


MOBILE CALL READING

TRANSACTION OF READING

PROCESSING OF BILL

DISTRIBUTED TO CUSTOMER AS PER THEIR NO.

PROCESS CHART
START

Enter reading by automated meter

Entering the details in the rough register

Entering in the main register

Checking by technical dept. engineer

Giving to the accounts deptt.

Entering the details in the Computer by account Deptt.

After any deduction sanded to customers

END

24

HARDWARE & SOFTWARE

In this proposed project the following are the proposed options run this project of MOBILE
CUSTOMER DATABASE. I proposed to

develop this project under C language &

computer must meet the following Hardware and Software requirements:

Hardware Requirements
At least 32 MB RAM Preferred
Hard disk of size 8 GB or Above
SVGA Card
Monitor Mono VGA\Color SVGA (Preferred)
Keyboard
CD Drive
Floppy Drive

Software Requirements
Operating System : Dos 6.22 or win 98 preferred
MS-office 97 or Above
C Languate

DETAILED DESIGN
During detailed design, the internal logic of each of these modules specified in the
system design is decided. During this phase further details of data structures and algorithmic
design of each of the modules is specified. The logic of a module is specified in a high-level
design description language, which is independent of the target language in which software
will eventually be implemented.
The detailed design consists of data design, architectural design, interface design, component
level design.
DATA DESIGN (E-R DIAGRAMS)
The data design transforms the information domain model created during analysis
into the data structures, which will be required to implement the software. The data objects
and the relationships defined in the entity relationship diagram and the detailed data content
depicted in the data dictionary provides the basis for the data design activity.

FDDFL

EMPLOYEE

Attribute of the EMPLOYEE Entity

ADDRESS

CITY

STATE

LAST NAME

ZIP

FIRST NAME

E-MAIL

CUSTOMER ID

PHONE

CUSTOMER

Attributes of the CUSTOMER Entity

DESCRIPTION
INCIDENT PLACE

VEHICLE REGN. NO.

BUS STOP
STATUS

INCIDENT DATE

INV. COMPLETION DATE


CATEGORY
INVALID REASON
TYPE

CLOSURE DATE

SOURCE

VALIDITY

DATE

CORRECTIVE ACTION

FBID

ACTION DATE

FEEDBACK
Attribute of the FEEDBACK Entit

SYSTEM SECURITY MEASURES


Any computer based system that manages sensitive information or causes
actions that can improperly harm individuals is a target for improper of illegal penetration.
Hackers who attempted to penetrate systems for sports.
Security testing attempts to verify that protection mechanism built in to a system will
infect protect it from improper penetration the systems security must, of course, be tested for
invulnerability from frontal attack but must also be tested for invulnerability from flank to
rear attack.
The tester may attempt to acquire passwords through external clerical means, may
attack the system with custom software designed to breakdown any defenses that have been
constructed; may overwhelm the system, thereby denying services to others; may cause
system errors, hoping to penetrate through recovery; may browse through insecure data,
hoping to find the key to system entry; and so on.
In our project, we too have taken some security measures in order to stop malicious or
unauthorized access. We have used a form in our input design that asks for a username and a
password name from each employee who wants to interact with system. In order to get access
to the system, each employee has to provide a valid username and a password. This helps us
a lot to protect the system from unauthorized access. Also some tasks such as creating new
users password can be performed by the administrator of the company only. For doing all
this, even the administrator has to reenter his username and password to prove his validity.
A client or front-end database application interacts with the database by requesting
and receiving information from the database server it acts as an interface between the user
and the database. Further, it also checks for validation against the data entered by user.
The database server or back end is used to manage the database tables optimally among
multiple clients who concurrently request the server for the same data. It also enforces data
integrity across all client applications and controls database access and other security
requirements.

PROPOSED SYSTEM
1.

The need of computerized employees record system in any company in any company
is prompted by the fact that employee record is exhaustive, monotonous, laborious
and time consuming process. Preparation of monthly employee record

involves

repetitive calculations. The volume of which grows with the no. of employees and
everything here and there. There are many other reports, posting in the financial
ledger and numerous year end reports which constitute the major and most significant
part of the employee record .
2.

The employee record system has been developed to cater the requirement of the
organization, adequate checks and controls have been provided to ensure the accuracy
of the reports.

3.

YEARLY REPORTS:
Provision to keep employee wise year to date figures for all earnings and deductions.
Year to date figures are stored separately for financial year and income tax year.

4.

APPEARS:
The packager has provision for arrears due to excess or short payments. The user
needs to give only the arrears days and the month for which arrears are paid or
deducted. PF and ESI are calculated on the arrears as applicable.

5.

CONTROLS:
Elaborate checks ad controls are provided in the system. Extensive totals in each
report check the accuracy for full employee record operation every month.

6.

OTHER HIGHLIGHTS:
Separate pay sheets are printed for payments by cash and thorough bank. Bank
statement is printed which can be sent to the bank for advising salary to be deposited
in the employees account. Provision for cost center wise analysis of salary expenses.
Complete integration with financial accounting system the salary voucher is
generated on the computer which provides for center wise and division wise postings.
Varity of statuary and operating reports are generated.

34
|Pankaj

CODING
#include <graphics.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <dos.h>
void statusbar(char[]) ;
void getlinedelchar(char *, int, int, int *) ;
void getline(char *, int) ;

void lineh (int, int, int, char) ;


void linev (int, int, int, char) ;
void box (int, int, int, int, char) ;
void Design_Screen () ;
void main_menu () ;
int vertical_menu (char [] [20], int, int, int, int) ;
int horizontal_menu(char [] [20], int, int, int, int);
void Emp_Help () ;
struct employee
{
int empcode, dd, mm, yy ;
char empname[31], empaddress[31], empcity[21], emppin[7] ;
char empphone[10], empdesig[21] ;
char emphouse, empconv, empsex ;
float empbasic, emppf, emphra, empca,empda;
};
int Emp_Fcode (int) ;
int Valid_Date (int, int, int) ;
void Emp_Display (int) ;
void Emp_Add () ;
void Emp_Modify () ;
35
|Pankaj

void Emp_Del () ; void


displaycode () ; void
Emp_Showlist () ; void
Emp_Salslip () ;
void Emp_Print (int, int, int, int) ;
void lineh (int row1, int row2, int column, char c)
{
for (row1; row1 <= row2; row1++)
{
gotoxy (row1, column) ;
printf ("%c",c) ;
}
}
void linev (int column1, int column2, int row, char c)
{
for (column1; column1 <= column2; column1++ )
{
gotoxy (row, column1) ;
printf ("%c",c) ;
}
}

void box(int row1, int column1, int row2, int column2, 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 ;
36
|Pankaj

c2 = c ;
c3 = c ;
c4 = c ;
l1 = c ;
l2 = c ;
}
gotoxy(row1,column1) ;
printf ("%c",c1) ;
gotoxy(row2,column1) ;
printf ("%c",c2) ;
gotoxy(row1,column2) ;
printf ("%c",c3) ;
gotoxy(row2,column2) ;
printf ("%c",c4) ; row1+
+;
row2-- ;
lineh(row1, row2, column1, l1) ;
lineh(row1, row2, column2, l1) ;
row1-- ;
row2++ ;
column1++ ;
column2-- ;
linev(column1,column2,row1,l2) ;
linev(column1,column2,row2,l2) ;
}

void Design_Screen()
{
int gd=DETECT, gm ;
int t,i;
long int k,m,j;
initgraph(&gd, &gm, "\\turboc3") ;
setcolor(LIGHTGRAY) ;
rectangle(0, 0, getmaxx(), getmaxy()) ;
setfillstyle(SOLID_FILL, LIGHTGRAY) ;
floodfill(getmaxx()/2, getmaxy()/2, LIGHTGRAY) ;
for( t = 1; t < 115; t++)
{
setcolor(DARKGRAY) ;
for( m = 0; m < 103000.0; m++) ;

37
|Pankaj

rectangle(getmaxx()/2-t-150,

getmaxy()/2+t,

getmaxx()/2+t+150,

getmaxy()/2-t) ;
}

floodfill(getmaxx()/2, getmaxy()/2, DARKGRAY) ;

setcolor(WHITE) ; settextstyle(GOTHIC_FONT, HORIZ_DIR,


4) ; settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(getmaxx()/2, getmaxy()/2-60, "****COMPUTER" ) ;
outtextxy(getmaxx()/2, getmaxy()/2+60, " PROJECT*****" ) ;
for(j = 0; j < 500; j++)
for( k = 0; k < 40000.0; k++) ;
setcolor(BLACK) ;
rectangle(0, 0, getmaxx(), getmaxy()) ;
setfillstyle(SOLID_FILL, BLACK) ;
floodfill(getmaxx()/2, getmaxy()/2, BLACK) ;
for( i = 1; i < 150; i++)
{
setcolor(RED) ;
settextstyle(GOTHIC_FONT, HORIZ_DIR, 5) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(160+i, 40+i, "EMPLOYEE HRM" ) ;
for(j = 0 ;j < 100; j++) ;
setcolor(BLACK) ;
settextstyle(1, HORIZ_DIR, 5) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(160+i, 40+i, "EMPLOYEE HRM MAINTENANCE") ;
}
setcolor(RED) ;
settextstyle(1, HORIZ_DIR, 4) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(160+i, 40+i, "EMPLOYEE HRM MAINT...") ;
for(j = 0; j < 250; j++)
for(k = 0; k < 40000.0; k++) ;
for(k = i; k > 50; k--)
{
setcolor(RED) ;
settextstyle(1, HORIZ_DIR, 4) ; settextjustify(CENTER_TEXT,
CENTER_TEXT) ; outtextxy(160+i, 40.0+k, "EMPLOYEE
HRM MAINT..." ) ; for( j = 0; j < 100; j++) ;
setcolor(BLACK) ; settextstyle(1, HORIZ_DIR, 4) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(160+i, 40.0+k, "EMPLOYEE HRM MAINT...") ;
}
38
|Pankaj

setcolor(BLUE) ;
settextstyle(3, HORIZ_DIR, 4) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(160+i, 40.0+k, "EMPLOYEE HRM MAINTENANCE" ) ;
for(j = 0; j < 250; j++)
for(k = 0; k < 40000.0; k++) ;
for(i = 1; i < 200; i++)
{
setcolor(LIGHTRED) ;
settextstyle(GOTHIC_FONT, HORIZ_DIR, 4) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(0+i, getmaxy()/2-10, "Developed by : " ) ;
for( j = 0; j < 100; j++) ;
setcolor(BLACK) ; settextstyle(GOTHIC_FONT,
HORIZ_DIR, 5) ; settextjustify(CENTER_TEXT,
CENTER_TEXT) ; outtextxy(0+i, getmaxy()/2-10,
"Developed by : " ) ;
}
setcolor(LIGHTRED) ;
settextstyle(GOTHIC_FONT, HORIZ_DIR, 5) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(0+i, getmaxy()/2-10, "Developed by : " ) ;
for(j = 0; j < 250; j++)
for(k = 0; k < 40000.0; k++);
for(i = 1; i < 300; i++)
{
setcolor(GREEN); settextstyle(GOTHIC_FONT,
HORIZ_DIR, 4); settextjustify(CENTER_TEXT,
CENTER_TEXT); outtextxy(0+i, getmaxy()/2+50,
"" );
for( j = 0; j < 100; j++); setcolor(BLACK);
settextstyle(GOTHIC_FONT, HORIZ_DIR, 5);
settextjustify(CENTER_TEXT, CENTER_TEXT);
outtextxy(0+i, getmaxy()/2+50, "" );
}
setcolor(GREEN); settextstyle(GOTHIC_FONT,
HORIZ_DIR, 5); settextjustify(CENTER_TEXT,
CENTER_TEXT); outtextxy(0+i, getmaxy()/2+50,
"" );
for(j = 0; j < 250; j++)
for(k = 0; k < 40000.0; k++) ;
for(i = 1; i < 315; i++)
{
setcolor(LIGHTRED) ;
settextstyle(GOTHIC_FONT, HORIZ_DIR, 5) ;
39
|Pankaj

settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(0+i, getmaxy()/2+95, "" ) ;
for( j = 0; j < 10000; j++) ;
setcolor(BLACK) ;
settextstyle(GOTHIC_FONT, HORIZ_DIR, 5) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(0+i, getmaxy()/2+95, "" ) ;
}
setcolor(LIGHTRED) ;
settextstyle(GOTHIC_FONT, HORIZ_DIR, 5) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(0+i, getmaxy()/2+95, "" ) ;
for(j = 0; j < 250; j++)
for(k = 0; k < 40000.0; k++) ;
for(i = 1; i < 450; i++)
{
setcolor(GREEN) ; settextstyle(GOTHIC_FONT,
HORIZ_DIR, 5) ; settextjustify(CENTER_TEXT,
CENTER_TEXT) ; outtextxy(0+i,
getmaxy()/2+140, "" ) ;
for( j = 0; j < 100; j++) ; setcolor(BLACK) ;
settextstyle(GOTHIC_FONT, HORIZ_DIR, 4) ;
settextjustify(CENTER_TEXT, CENTER_TEXT) ;
outtextxy(0+i, getmaxy()/2+140, "BHAWNA" ) ;
}
setcolor(GREEN) ; settextstyle(GOTHIC_FONT,
HORIZ_DIR, 5) ; settextjustify(CENTER_TEXT,
CENTER_TEXT) ; outtextxy(0+i,
getmaxy()/2+140, "BHAWNA ") ;
for(j = 0; j < 500; j++)
for(k = 0; k < 40000.0; k++) ;
for(i = 0; i < 550; i++)
{
for( j = 0; j < 50000.0; j++) ;
setcolor(BLACK) ;
rectangle(0+i, 0, 100+i, getmaxy()) ;
}
closegraph() ;
}

int vertical_menu(char menu[] [20], int present, int end, int x, int y)
{
40
|Pankaj

int ex=0 ;
int i;
char ch;
box(x + 9, y, x + strlen(menu[0]) + 12, y + end + 1, 218) ;
for ( i=0; i<end; i++)
{
gotoxy(x + 10, y + i + 1) ;
printf ("%s",menu[i]) ;
}
do
{
int tpresent = present ;
textcolor(BLACK) ;
textbackground(WHITE) ;
gotoxy(x + 10,y + present) ;
cprintf(menu[present - 1]) ;
textcolor(WHITE) ;
textbackground(BLACK) ;
ch = getch() ;
switch (ch)
{
case 75 : if (present == 1) else present = end ;
break ; present-- ;
case 77 : if (present == end)
else

present = 1 ;

break ; present++ ;
case 71 : present = 1 ;
break ;
case 79 : present = end ;
case 72 : if (present == 1) else
break ;
case 80 : if (present == end)
41
|Pankaj

break ;
present = end ;
present-- ;

else
break ;
case 13 : ex = 1 ;

present = 1 ;
present++ ;

break ;

case 27 : present = end ;


ex = 1 ;
}
gotoxy(x + 10,y + tpresent) ;
cprintf(menu[tpresent - 1]) ;
} while(!ex) ;
return(present) ;
}

int horizontal_menu(char menu[] [20], int present, int end, int x, int y)
{
int ex=0, i ;
char ch;
for (i = 0; i < end; i++)
{
gotoxy(x + (i + 2) * 10 - 5, y) ;
printf ("%s",menu[i]);
}
lineh(1, 80, 2, 205) ;
do
{
int tpresent = present ;
textcolor(BLACK) ;
textbackground(WHITE) ;
gotoxy(x + (present + 1) * 10 - 5, y) ;
cprintf(menu[present - 1]) ;
textcolor(WHITE) ;
textbackground(BLACK) ;
ch = getch() ;
switch (ch)
{
case 71 : present = 1 ; break ;
case 79 : present = end ;
break ;
42
|Pankaj

case 75 : if (present == 1) else


break ;

present = end ;
present-- ;

case 77 : if (present == end)


else
break ;

present = 1 ;
present++ ;

case 72 : if (present == 1) else


break ;
case 80 : if (present == end)

present = end ;
present-- ;

else
break ;
case 13 : ex = 1 ; break ;

present = 1 ;
present++ ;

case 27 : present = end ;


ex = 1 ;
}
gotoxy(x + (tpresent + 1) * 10 - 5, y) ;
cprintf(menu[tpresent - 1]) ;
} while(!ex) ;
return(present) ;
}

void Emp_Help()
{
clrscr();
printf ("\n\n\n\t\t\tEMPLOYEE HRM - Manager ");
printf ("\n\nPay - Manager is a full fledged human resource management system ");
printf ("\n\n\n 1) Important instructions are displayed at the status bar at the ");
43
|Pankaj

printf ("\n bottom of the screen.");


printf ("\n\n 2) Press escape key to exit the immediate screen at any time");
printf ("\n during the program.");
printf ("\n\n\n\n");
printf ("\t\t\t\t\t\t BHAWNA");
printf ("\n\t\t\t\t\t\t");
getch();
clrscr() ;
return ;
}

void main_menu()
{
int end=5, present=1, upperlim1=5, currentpos1=1, upperlim2=3, currentpos2=1,
upperlim3=4, currentpos3=1;
char main[] [20] = { " FILE ", " EDIT ", " PRINT ", " HELP ", " EXIT " } ;
char sub1[] [20] = { "New Employee ", "Display Info ", "Display List ", "Salary Slip
", "Return
"};
char sub2[] [20] = { "Modify Employee ", "Delete Employee ", "Return
"};
char sub3[] [20] = { "Employee Info ", "Employee List ", "Salary Slip ", "Return
"};
Design_Screen() ;
do
{
_setcursortype(_NOCURSOR) ;
present = horizontal_menu(main, present, end, 3, 1) ;
switch (present)
{
case 1 : currentpos1 = vertical_menu(sub1, currentpos1,
upperlim1, 3, 3) ;
switch (currentpos1)
{
case

_setcursortype(_SOLIDCURSOR) ;
Emp_Add() ;
_setcursortype(_NOCURSOR) ;
break ;

44
|Pankaj

case

_setcursortype(_SOLIDCURSOR) ;
displaycode() ;
break ;
case 3 :
Emp_Showlist() ;

break ;
case

_setcursortype(_SOLIDCURSOR) ;
Emp_Salslip() ;
_setcursortype(_NOCURSOR) ;

break ;

}
clrscr() ;
break ;

case 2 : currentpos2 = vertical_menu(sub2, currentpos2,


upperlim2, 13, 3) ;
switch(currentpos2)
{
case

_setcursortype(_SOLIDCURSOR) ;
Emp_Modify() ;
_setcursortype(_NOCURSOR) ;

break ;
case

_setcursortype(_NORMALCURSOR) ;
Emp_Del() ;
_setcursortype(_NOCURSOR) ;
}
clrscr() ;
break ;
45
|Pankaj

break ;

case 3 : currentpos3 = vertical_menu(sub3, currentpos3,


upperlim3, 27, 3) ;
switch(currentpos3)
{
case

_setcursortype(_SOLIDCURSOR) ;
displaycode() ;
Emp_Print(1,1,80,23) ;
_setcursortype(_NOCURSOR) ;

break ;
case

_setcursortype(_NORMALCURSOR) ;
Emp_Showlist() ;
Emp_Print(1,1,80,23) ;
_setcursortype(_NOCURSOR) ;

break ;
case

_setcursortype(_NORMALCURSOR) ;
Emp_Salslip() ;
Emp_Print(1,1,80,23) ;
_setcursortype(_NOCURSOR) ;
}
clrscr() ;
break ;
case 4 : Emp_Help() ;

}
} while (present != end);
}
46
|Pankaj

clrscr() ;
break ;

break ;

int Emp_Fcode(int code)


{
FILE *file ;
int found = 0 ;
struct employee temp;
file = fopen("Employee.Dat", "rb+") ;
while (fread(&temp, sizeof(struct employee),1,file))
{
if (temp.empcode == code)
{
found = 1 ;
break ;
}
}
fclose(file) ;
return(found) ;
}

int Valid_Date(int dd, int mm, int yy)


{
int days=0, valid ;
if ((yy>1980) && (yy<=1999))
valid = 1 ;
else
{
valid = 0 ;
return(0) ;
}
switch(mm)
{
case 1 : days = 31 ;
break ;
case 2 : if (yy % 4 == 0)
else

days = 29 ;
days = 28 ;
47

|Pankaj

break ;
case 3 : days = 31 ;
break ;
case 4 : days = 30 ;
break ;
case 5 : days = 30 ;
break ;
case 6 : days = 31 ;
break ;
case 7 : days = 31 ;
break ;
case 8 : days = 31 ;
break ;
case 9 : days = 30 ;
break ;
case 10 : days = 31 ;
break ;
case 11 : days = 30 ;
break ;
case 12 : days = 31 ;
break ;
default : valid = 0 ;
break ;
}
if ((dd > 0) && (dd <= days))
valid = 1 ;
else valid = 0 ;
return (valid) ;
}

void Emp_Display(int code)


{
48
|Pankaj

FILE *file ;
struct employee t ;
char *initial ;
file = fopen("Employee.Dat", "rb+") ;
while (fread(&t, sizeof(struct employee),1,file))
{
if (t.empcode == code)
{
gotoxy(28,2) ;
printf ("EMPLOYEE INFORMATION");
if (t.empsex == 'F')
initial = "Ms. ";
else initial = "Mr. ";
gotoxy(30,3) ;
printf ("EMPLOYEE CODE # %d",t.empcode) ;
lineh(2,79,4,240) ;
gotoxy(20,6) ;
printf ("Name
: %s %s",initial,t.empname) ;
gotoxy(20,7) ;
printf ("Address
: %s" ,t.empaddress );
gotoxy(40,8);
printf ("%s - %s",t.empcity,t.emppin );
gotoxy(20,9) ;
printf ("Contact No.
: %s" ,t.empphone );
gotoxy(20,11) ;
printf ("Date Of Joining :%d - %d - %d ",t.dd,t.mm,t.yy );
gotoxy(20,13) ;
printf ("Designation
: %s",t.empdesig) ;
gotoxy(20,15) ;
printf ("Accomodation Provided : %c",t.emphouse) ;
gotoxy(20,16) ;
printf ("Conveyance Provided : %c",t.empconv) ;
gotoxy(20,17) ;
printf ("Basic Salary : Rs. %.2f",t.empbasic) ;
gotoxy(20,18) ;
printf ("Provident Fund : Rs. %.2f",(t.emppf/100)*t.empbasic) ;
gotoxy(20,19) ;
printf ("Daily Allowance : Rs. %.2f",(t.empda/100)*t.empbasic) ;
gotoxy(20,20) ;
printf ("Housing Allowance : Rs. %.2f",(t.emphra/100)*t.empbasic) ;
gotoxy(20,21) ;
printf ("Conveyance Allow : Rs. %.2f" ,(t.empca/100)*t.empbasic) ;
lineh(2,79,22,240) ;
}
}
49
|Pankaj

struct employee t ;
float hra=0, ca=0, pf=0, ot=0, advance=0, allowance=0, deduction=0, netsalary=0 ;
long float da = 0;
int code, valid=0, days, hours ;
int year ;
char tdays[3], thours[4], tadvance[6], month[10] ;
clrscr() ;
gotoxy(72,2) ;
printf ("<0>=EXIT");
gotoxy(5,5) ;
printf ("Enter code of the struct employee : ");
scanf ("%d",&code) ;
if (code == 0)
return ;
if (!Emp_Fcode(code))
{
clrscr() ;
gotoxy(30,25) ;
printf ("\a Record not found");
getch() ;
return ;
}
clrscr() ;
gotoxy(5,8) ;
printf ("Enter month for which SALARY SLIP is to be generated : ");
scanf ("%s",&month) ;
gotoxy(5,11) ;
printf ("Enter year for which SALARY SLIP is to be generated : ");
scanf ("%d",&year) ;
clrscr() ;
file = fopen("Employee.Dat", "rb+") ;
while (fread(&t, sizeof(struct employee),1,file)==1)
{
if (t.empcode == code)
break ;
}
fclose(file) ;
lineh(1,80,1,223) ;
linev(1,23,1,222) ;
linev(1,23,79,222) ;
lineh(1,80,23,223) ;
gotoxy(32,2) ;
50
|Pankaj

printf ("BALLARPUR INDS. LTD.");


lineh(3,78,3,175) ;
gotoxy(24,4) ;
printf ("SALARY SLIP - %s . %d",month,year) ;
lineh(3,78,5,196) ;
gotoxy(4,6) ;
printf ("Employee Name : %s",t.empname) ;
gotoxy(48,6) ;
printf ("Designation : %s",t.empdesig) ;
box(4,7,76,21,218) ;
do
{
valid = 1 ;
statusbar(" ENTER NO. OF DAYS WORKED IN THE MONTH ") ;
_setcursortype(_SOLIDCURSOR) ;
gotoxy(25,10) ;
printf ("No. of Days Worked : ");
getline(tdays,2) ;
days = atoi(tdays) ;
if (tdays[0] == 27)
return ;
if (days > 26)
{
valid = 0 ;
statusbar("\a CANNOT BE GREATER THAN 26 ") ;
getch() ;
_setcursortype(_SOLIDCURSOR) ;
}
} while (!valid) ;
do
{
valid = 1 ;
statusbar(" ENTER NO. OF HOURS WORKED OVER TIME ") ;
_setcursortype(_SOLIDCURSOR) ;
gotoxy(25,12) ;
printf ("Overtime hours : ");
getline(thours,3) ;
hours = atoi(thours) ;
if (thours[0] == 27)
return ;
if (hours > 41)
{
valid = 0 ;
statusbar("\a MORE THAN 40 Hrs. OVERTIME NOT
PERMITTED ") ;
getch() ;
51
|Pankaj

_setcursortype(_SOLIDCURSOR) ;
struct employee t ;
float hra=0, ca=0, pf=0, ot=0, advance=0, allowance=0, deduction=0, netsalary=0 ;
long float da = 0;
int code, valid=0, days, hours ;
int year ;
char tdays[3], thours[4], tadvance[6], month[10] ;
clrscr() ;
gotoxy(72,2) ;
printf ("<0>=EXIT");
gotoxy(5,5) ;
printf ("Enter code of the struct employee : ");
scanf ("%d",&code) ;
if (code == 0)
return ;
if (!Emp_Fcode(code))
{
clrscr() ;
gotoxy(30,25) ;
printf ("\a Record not found");
getch() ;
return ;
}
clrscr() ;
gotoxy(5,8) ;
printf ("Enter month for which SALARY SLIP is to be generated : ");
scanf ("%s",&month) ;
gotoxy(5,11) ;
printf ("Enter year for which SALARY SLIP is to be generated : ");
scanf ("%d",&year) ;
clrscr() ;
file = fopen("Employee.Dat", "rb+") ;
while (fread(&t, sizeof(struct employee),1,file)==1)
{
if (t.empcode == code)
break ;
}
fclose(file) ;
lineh(1,80,1,223) ;
linev(1,23,1,222) ;
linev(1,23,79,222) ;
lineh(1,80,23,223) ;

52
|Pankaj

gotoxy(32,2) ;
printf ("BALLARPUR INDS. LTD.");
lineh(3,78,3,175) ;
gotoxy(24,4) ;
printf ("SALARY SLIP - %s . %d",month,year) ;
lineh(3,78,5,196) ;
gotoxy(4,6) ;
printf ("Employee Name : %s",t.empname) ;
gotoxy(48,6) ;
printf ("Designation : %s",t.empdesig) ;
box(4,7,76,21,218) ;
do
{
valid = 1 ;
statusbar(" ENTER NO. OF DAYS WORKED IN THE MONTH ") ;
_setcursortype(_SOLIDCURSOR) ;
gotoxy(25,10) ;
printf ("No. of Days Worked : ");
getline(tdays,2) ;
days = atoi(tdays) ;
if (tdays[0] == 27)
return ;
if (days > 26)
{
valid = 0 ;
statusbar("\a CANNOT BE GREATER THAN 26 ") ;
getch() ;
_setcursortype(_SOLIDCURSOR) ;
}
} while (!valid) ;
do
{
valid = 1 ;
statusbar(" ENTER NO. OF HOURS WORKED OVER TIME ") ;
_setcursortype(_SOLIDCURSOR) ;
gotoxy(25,12) ;
printf ("Overtime hours : ");
getline(thours,3) ;
hours = atoi(thours) ;
if (thours[0] == 27)
return ;
if (hours > 41)
{
valid = 0 ;
statusbar("\a MORE THAN 40 Hrs. OVERTIME NOT
PERMITTED ") ;
53
|Pankaj

getch() ;
}
} while (!valid) ;
do
{
valid = 1 ;
statusbar(" ENTER AMOUNT TAKEN AS ADVANCE ") ;
_setcursortype(_SOLIDCURSOR) ;
gotoxy(25,14) ;
printf ("Advance amount (Rs): ");
getline(tadvance,6) ;
advance = atof(tadvance) ;
if (tadvance[0] == 27)
return ;
if (advance > t.empbasic)
{
valid = 0 ;
statusbar("\a ADVANCE CANNOT BE GREATER THAN
BASIC PAY ") ;
getch() ;
_setcursortype(_SOLIDCURSOR) ;
}
}while (!valid) ;
_setcursortype(_NOCURSOR) ;
gotoxy(25,10) ;
printf ("
gotoxy(25,12) ;
printf ("
gotoxy(25,14) ;
printf ("

");
");
");

gotoxy(7,8) ;
printf ("BASIC SALARY
gotoxy(7,10) ;
printf ("ALLOWANCE");
gotoxy(9,11) ;
printf ("Daily Allowance
: Rs.");
gotoxy(9,12) ;
printf ("Over Time
: Rs.");
gotoxy(9,13) ;
printf ("Conveyance Allowance : Rs.");
gotoxy(9,14) ;
printf ("House Rent Allowance : Rs.");
gotoxy(7,16) ;
54
|Pankaj

: Rs.");

printf ("DEDUCTIONS");
gotoxy(9,17) ;
printf ("Provident Fund
: Rs.");
gotoxy(9,18) ;
printf ("Advance Taken
: Rs.");
gotoxy(9,20) ;
printf ("N E T S A L A R Y

: Rs.");

hra = (int)((t.emphra * t.empbasic)/100) ;


ca = (int)((t.empca * t.empbasic)/100) ;
da = (int)((t.empda * t.empbasic)/100) ;
pf = (int)((t.emppf * t.empbasic)/100) ;
ot = (int)((hours) * (t.empbasic/160)) ;
allowance = hra + ca + da + ot + t.empbasic ;
deduction = pf + advance;
netsalary = allowance - deduction ;
gotoxy(54,8) ;
printf ("%.2f",t.empbasic) ;
gotoxy(37,11) ;
printf ("%.2f",da ) ;
gotoxy(37,12) ;
printf ("%.2f",ot) ;
gotoxy(37,13) ;
printf ("%.2f",ca) ;
gotoxy(37,14) ;
printf ("%.2f",hra) ;
gotoxy(47,14) ;
printf (" : Rs. %.2f",allowance) ;
gotoxy(37,17) ;
printf ("%.2f",pf) ;
gotoxy(37,18) ;
printf ("%.2f",advance) ;
gotoxy(47,18) ;
printf (" : Rs. %.2f",deduction) ;
lineh(6,74,19,196) ;
gotoxy(54,20) ;
printf ("%.2f",netsalary) ;
gotoxy(2,1) ;
getch() ;
}

void Emp_Print(int x1, int y1, int x2, int y2)


{
55
|Pankaj

const SEGMENT = 0xB800 ;


unsigned norow = y2 - y1 + 1, nocol = x2 - x1 + 1 ;
unsigned i = 0, noele = norow * nocol, *ptr ;
unsigned row,col,offset;
unsigned char ch;
int count = 0 ;
FILE *prn;
prn = fopen ("PRN","w");
ptr = ((unsigned *)malloc(noele) ) ;
statusbar(" PRINTING PRINTING PRINTING PRINTING PRINTING PRINTING
PRINTING PRINTING PRINTI") ;
for ( row=y1; row<=y2; row++)
{
for( col=x1; col<=x2; col++)
{
offset = 2*col + 160*row - 162 ;
ptr[i++] = peek(SEGMENT,offset) ;
}
}
for(i=0; i<noele; i++, count++)
{
ch = ptr[i] % 256 ;
putc (ch,prn) ;
if (count == 80)
{
fputs("\n",prn);
count = 0 ;
}
}
fclose(prn);
}
void main(void)
{
main_menu() ;
}

void statusbar(char m[])


{
_setcursortype(_NOCURSOR) ;
56
|Pankaj

window(1,24,80,25) ;
textcolor(BLACK) ;
textbackground(WHITE) ;
cprintf(m) ;
clreol() ;
window(1,1,80,24) ;
textcolor(WHITE) ;
textbackground(BLACK) ;
}

void getlinedelchar(char *s, int col, int p, int *len)


{
int i ;
for (i=p; i<*len; i++)
s[i - 1] = s[i] ;
gotoxy(col + p - 1,wherey()) ;
len-- ;
for (i=p - 1; i<*len; i++)
printf ( "%s",s[i]) ;
printf ( "." );
}

void getline(char *s , int limit)


{
int i, curx, done, col ;
col = wherex() ;
for (i = 0; i<limit; i++)
printf (".") ;
gotoxy(col,wherey()) ;
done = 0 ;
curx = 0 ;
i=0;
do
{
char ch = getch() ;
ch = toupper(ch) ;
switch (ch)
{
case 0 : ch = getch();
switch(ch)
57
|Pankaj

{
case 75 : if (curx>0) {
curx-- ;
gotoxy(wherex()1,wherey()) ;

}
break ;
case 77 : if (curx<i)
{
curx++ ;

gotoxy(wherex()+1,wherey()) ;
}
break ;
case 83 : if (i>0)
{
if (curx<i)
{
getlinedelchar(s,col,curx + 1,&i) ;
gotoxy(col + curx,wherey()) ;
if (i == 0)
s[i] = 0 ;
}
}
}
break ;
case 8 : if (curx>0)
{

getlinedelchar(s,col,curx,&i) ;
gotoxy(col + curx - 1,wherey()) ;
curx-- ;
if (i == 0)
s[i] = 0 ;

}
break ;
case 13 : done = 1 ;
s[i] = 0 ;
break ;
case 27 : done = 1 ;
58
|Pankaj

s[0] = '0' ;
break ;
default : if (i < limit)

if (curx < i)
{

s[curx] = ch ;
printf ("%c",ch) ;
curx++ ;
else

{
s[i] = ch ;

printf ("%c",ch) ;

i++ ;
curx = i ;
}
}
else

s[i] = 0 ;

}
}while (!done) ;
printf ("\n");
}

59
|Pankaj

OUTPUT

60
|Pankaj

FILE
-------------------------------------------------------------------------------+---------------+
New Employee
Display Info
Display List
Salary Slip
Return

+---------------+

EDIT

PRINT

61
|Pankaj

HELP

EXIT

ADDITION OF NEW EMPLOYEE


Employee Code # 3
~~~~~~~~~~~~~~~~~~~~~
Name
: AMIT MALIK
........ Sex (M/F) : M
Address : JDH
........
City : YNR
Pin Code : 135001
Phone No. : 225533
--------------------------------------------------------------------------- JOINING DATE
Day : 2
Month : 2
Year : 1998
--------------------------------------------------------------------------- Designation : SR
--------------------------------------------------------------------------- Accomodation (y/n) : Y
Conveyance (y/n) : Y
---------------------------------------------------------------------------Basic Salary
(Rs)
: 5000
Provident Fund
(%)
: 10
Daily Allowance
(%)
: 8
House Rent Allowance (%)
: 6 ...
Conveyance Allowance (%)
: 15
Do you wish to save (y/n) :y

62
|Pankaj

EMPLOYEE INFORMATION
EMPLOYEE CODE # 3
Name

Mr.

Address

JDH

Contact No.

AMIT MALIK

Date Of Joining :

2 - 2 - 1998

Designation

SR

YNR - 135001

225533

Accomodation Provided : Y
Conveyance Provided : Y
Basic Salary : Rs. 5000.00
Provident Fund : Rs. 500.00
Daily Allowance : Rs. 400.00
Housing Allowance : Rs. 300.00
Conveyance Allow : Rs. 750.00

Press any key to continue...

63
|Pankaj

LIST OF EMPLOYEES AS ON 18 . 1 .2014


CODE #
NAME
DESIGNATION
-----------------------------------------------------------
1
VIVEK
ME

2
CHINTU GANDHI
SR

3
AMIT MALIK
SR

Press any key to continue...

64
|Pankaj

_
_
_ _
_ ----------------------------------------------------------------------------_
_ Employee Name : AMIT MALIK
Designation : SR
_
_ +-----------------------------------------------------------------------+ _
_ BASIC SALARY
: Rs. 5000.00
_
_
_
_ ALLOWANCE
_
_ Daily Allowance
: Rs. 400.00
_
_ Over Time
: Rs. 625.00
_
_ Conveyance Allowance : Rs. 750.00
_
_ House Rent Allowance : Rs. 300.00 : Rs. 7075.00
_
_
_
_ DEDUCTIONS
_
_ Provident Fund
: Rs. 500.00
_
_ Advance Taken
: Rs. 200.00 : Rs. 700.00
_
_ --------------------------------------------------------------------- _
_ N ET S A LAR Y
: Rs. 6375.00
_
_ +-----------------------------------------------------------------------+ _
_
_
ENTER AMOUNT TAKEN AS ADVANCE

65
|Pankaj

SALARY SLIP - 4 . 2014

MODIFICATION OF EMPLOYEE RECORD


EMPLOYEE CODE # 3

<0>=EXIT

Name
Address

: Mr.
AMIT MALIK
: JDH
YNR - 135001
Contact No.
: 225533
Date Of Joining :2 - 2 - 1998
Designation

: SR

Accomodation Provided : Y
Conveyance Provided : Y
Basic Salary : Rs. 5000.00
Provident Fund : Rs. 500.00
Daily Allowance : Rs. 400.00
Housing Allowance : Rs. 300.00
Conveyance Allow : Rs. 750.00
Do you wish to modify this record (y/n)

66
|Pankaj

67
|Pankaj

68
|Pankaj

69
|Pankaj

70
|Pankaj

71
|Pankaj
67

72
|Pankaj

73
|Pankaj

74
|Pankaj

75
|Pankaj

76
|Pankaj

ADVANTAGES OF PROPOSED SYSTEM


To run this particular project and C compiler can be used., working of this project is
very fast. To determine the objective of the computerized system, the analyst must be aware
of exactly the requirement of the understanding of the new system. He or she must have the
complete knowledge of the new system and must prepare the detailed requirement, user data
element, volume and response time etc., the analysis must be aware of the computer
capabilities that can be utilized to develop the system which fulfills the requirement.
To proposed system should be developed in such a way that it remove all the problem
of existing system's the computer is capable of processing large amount of data at a very high
speed & large degree of accuracy, the data can be placed in a small space for years together
without any problem & can be obtained whenever required in a few seconds.
The project has been developed with VB programming. The presentation growth of
object oriented program technology has made it chosen technique for software development.
That's why I found this language best for this project.
The proposed system is choice driven systems most of the processes are development
by just simply pressing entering your respective choice. This system is very useful as it saves
a lot of time & manpower as we can enter any no. of employees records easily & can
maintain it very efficiently.
Records can be generated quickly on the basis of code & entered information.
This system can work forever without losing efficiency since there are all the options
like, to modify, to query to enter data. Data can be retrieved in a very easy manner & various
transactions can be made with in a short span of time.

77
|Pankaj

LIMITATIONS OF SYSTEM
Data file would show you an error if the input data in not as you have defined under
data types. For example if we need to calculate the gross salary after all the mentioned
deductions and allowances and if the gross salary in Float type then it would give you an
incorrect result. In this project whenever you append a new record the previous records are
lost.
As the whole processing/computation of the employees salary in done through codes
of the employees, and also as there are no checks on codes of employees therefore access to
security in denied hereby and hence any one can perform operations as modify existing
records, delete any record etc. The project does not provide any graphical representation.

78
|Pankaj

FURTHER SCOPE
The further scope the project can be as follows :
The software can be superimposed with the website of the company, therefore all information
about the flow of data can be made aware on company's website.
A supplement solution for financial data can be easily added to the present project.
Project can work on e-commerce based system.
In existing Employee information system work is done manually. This system involves a lot of
bookwork. This system is useful for small organization but in large organization it is very
difficult. A lot of manpower is involved in this system. In a company, very large no. of
employee is working so if this system is done manually it will be very complicated.
With existing system, entries for different employee, their payment module etc. Has to be
performed in different registers. Therefore a lot of time is consumed to perform this work. Also
manual work has accessible error in it. Data stored in registers cann ot maintain for long
period of time & a lot of time is to be consumed in searching a particular record. In existing
System, the chances of inaccuracy & duplicity will be
more.

79
|Pankaj

CONCLUSION
In this process is very fast because of the use of the computer checking, issue, receipts,
and report preparation are some of the fields where advantages of the speed can be
encaused. Large memory is one of the advantages of computer. In this system storing a
large number of records encases this advantage. Accuracy of calculation is another
advantage of the computer. In these system records of customers updating is performed
accurately using computers. Since records in computers are stored on electronic media.
Paper work is reduced with the use of computers.
We get all details about canteen with few key movements. It provides prompt details
about the order placed and bill generate.
Security mechanism will be provided in our project. If anyone want to use our project,
it is necessary to know the username and password.

|Pankaj

80
80

REFERENCES
While making this project, I have referred the following books for getting an idea to make
this project and also for understanding the complete C language. The names of the authors of
the books referred by me are as:
S. No.

Book name

Author name

Let us c

Yashavant Kanetkar

Data Structure in c

Robert L.Kruse
Bruce P.Leung
Clovis L.Tondo

S. No.

Websites

www.wikipedia.com

2.

www.cproject.com

3.

www.scribd.com

You might also like