0% found this document useful (0 votes)
456 views127 pages

Jinendra Major Project

This document is a project report for developing a Payroll Management System. It discusses the background and objectives of the project which is to computerize an organization's manual payroll system. The project will use front-end and back-end technologies to store employee records, calculate salaries, generate pay slips and reports. It aims to simplify the payroll process and provide accurate payroll calculations and data security.

Uploaded by

Arham Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
456 views127 pages

Jinendra Major Project

This document is a project report for developing a Payroll Management System. It discusses the background and objectives of the project which is to computerize an organization's manual payroll system. The project will use front-end and back-end technologies to store employee records, calculate salaries, generate pay slips and reports. It aims to simplify the payroll process and provide accurate payroll calculations and data security.

Uploaded by

Arham Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 127

DAYANAND SARASWATI P.G.

COLLEGE
SHAJAPUR , (M.P.)

A MAJOR PROJECT REPORT


ON
PAYROLL MANAGEMENT SYSTEM
SUBMITTED TOWARDS THE PARTIAL FULFILLMENT

FOR THE REQUIREMENT OF THE DEGREE OF

BACHELOR of COMPUTER APPLICATION

(2021 – 2022)

GUIDED BY: SUBMITTED BY:

PROF.MEGHA OLTIKAR JINENDRA SINGH DODIYA


DAYANAND SARASWATI P.G. COLLEGE

CERTIFICATE

This is to certify that the project report entitled “PAYROLL MANAGEMENT


SYSTEM” submitted to Vikram University , in partial fulfillment of the
requirement for the award of the degree of BACHELOR OF
COMPUTER APPLICATIONS (BCA), is carried out by myself
Mr.JINENDRA SINGH DODIYA with enrolment no. V19R065110017

Under the Supervision and Guidance Prof. Megha Oltikar

Date:

Name & Signature of the Student

Jinendra Singh Dodiya

Verified by the Supervisor


Name & Signature of the Guide

Prof. Megha Rathore

Date: ………………..

Internal Examiner External Examiner


Acknowledgement

This Major Project is the result of contribution of many mind. I would


like to acknowledge and thank my project guide Mrs. Megha Oltikar for her
valuable support and guidance. She guided me through the process from
conception and till the completion of this project. I would also like to thank
Mr.Vikas Pandya sir and Mrs. Renuka Udasi Madam. I thank to lab staff
members and other non-teaching members.

I am very thankful for the open-handed support extended by many


people. While no list would be complete, it is my pleasure to acknowledge the
assistance of my friends who provided encouragement, knowledge and
constructive suggestions. Lastly, we also record our sincere thanks to all who
have been helpful directly and indirectly in our project work.

Signature of Student

JINENDRA SINGH DODIYA

(Roll No. -19329339)

(Enrollment No. - V19R065110017)


Self certificate

This is to certify that the Major Project report entitled “PAYROLL


MANAGEMENT SYSTEM” is done by me, and it is authentic work carried
out for the partial fulfillment of the requirements for the award of the degree of
Bachelor of Computer Application(BCA) under the guidance of
Prof. Megha Oltikar. The matter and software embodies in this project has not
been submitted earlier for award of any degree or diploma to the best of my
knowledge and believes.

Signature of Student

JINENDRA SINGH DODIYA

(Roll No. - 19329339)

(Enrollment No. - V19R065110017)


Certificate from Project Guide

This is certify that this Major Project entitled “PAYROLL MANAGEMENT


SYSTEM” submitted in partial fulfillment of the requirements for the award of
the degree of Bachelor of Computer Application (BCA) in session (years
2021 to 2022) to the Vikram University, UJJAIN, done by JINENDRA
SINGH DODIYA is an authentic work carried out by them at “DAYANAND
SARASWATI P.G.COLLEGE SHAJAPUR ” under my guidance. The
matter and software embodied in this project work has not been submitted
earlier for the award of any degree or diploma to the best of my knowledge and
belief.

Prof. MEGHA OLTIKAR


(Project Guide)

INDEX
1. INTRODUCTION 1-7
1.1 BACKGROUND 4
1.2 OBJECTIVES 5
1.3 PURPOSE AND SCOPE 7

2. SURVEY OF TECHNOLOGIES 8-17


 FRONT END 9
 BACK END 13
2.1 SOFTWARE AND HARDWARE SPECIFICATION
2.1.1 SOFTWARE SPECIFICATION 16
2.1.2 HARDWARE SPECIFICATION 17

3. SYSTEM ANALYSIS 18-25


3.1 PRELIMINARY INVESTIGATION 19
3.1.1 IDENTIFICATION OF NEED 20
3.1.2 FEASIBILITY STUDY 21

4. REQUIREMENT ANALYSIS 26-38


4.1 EXISTING SYSTEM 27
4.2 PROPOSED SYSTEM 30
4.3 DATA FLOW DIAGRAM (DFD) 33

5. SOFTWARE DESIGN 39-94


5.1 DESIGN OBJECTIVE AND CONSTRAINTS 40
5.2 DESIGN TECHNIQUE 41
5.3 DATABASE DESIGN 42
5.3.1 E-R DIAGRAM 42
5.3.2 TABLE STRUCTURE 46
5.3.3 INPUT SCREEN 47
5.3.4 CODING 52

6. TESTING 95-97
6.1 TESTING OBJECTIVES 96
6.2 TESTING METHODOLOGIES 96
6.3 QUALITY ATTRIBUTES 97

7. IMPLEMENTATION 98-109
7.1 CHARACTERISTICS OF LANGUAGE USED 99
7.2 VALIDATION CHECKS 108
7.3 INSTALLATION 109

8. CONCLUSION 110-118
8.1 LIMITATION OF PROJECT 112
8.2 DIFFICULTIES ENCOUNTERED 114
8.3 FUTURE ENHANCEMENT 116

9. BIBLIOGRAPHY & REFERENCES 119-120


9.1 BOOKS REFERENCES 120
9.2 OTHER REFERENCES 120
1.INTRODUCTION

(1)
INTRODUCTION

A user friendly based software “Payroll Management System” has been


developed for organization, keeping in view the requirements of employees to
prepare salary. The objective of the project was to computerize the payroll
system which was earlier being handle manually every precaution has been
taken at each process involved in the complex of the salary preparation. By
computerization it implies all the process handling in the entirely being done by
computer. All the record necessary for the processes involved in the salary
calculation are stored in a computer based record keeping system using a back-
end tool. All the process handling is done at the frontend by using a front-end.
The project provides sample facilities to its users. The most important of the
facilities are the report generation and printing which provides user with the
hard copies of the data also. Payroll management is very simple, flexible and
user friendly management software. That takes care all of your requirements
relating to accounting and management of employees’ payroll. Payroll stores
complete records of the employee generate play-slips and e attendance register,
computes all allowance and deductions and generates all statutory reports.

Payroll is the only one software processing with good and wide-industry range
of clients. It offers very high flexibility in defining various allowances,
deductions; leave rules etc. for the employees and all formula for P.F etc. are
definable and changeable for user’s end.Payroll application has been designed
for the purpose of the maintaining details of various allowances and deductions
that need to be given to the employee of the organization. Also, it generates the
salary sheet of employee of organization that assists the accounts department in
many ways.

(2)
The electronic and computerized payroll system will no only offer exact
calculations and accurate data of designated employees but it will also
implement security measures and confidentiality of the files and accordingly
arrange documents provided by an ingenious and quick-witted database that will
indeed construct a paperless environment. With the aspiring technologies been
thought up today, this minimize the burden and heavy loads of labor of the
employees designated in the human resource management office of a certain
company or institution As businesses grow, employee management becomes
complex. What you need is a Payroll Management System that is easy to use,
employee-centric and HR effective. Whatever stage of business cycle you are
in, payroll services is sure to benefit you. HR outsourcing companies offers a
new age Payroll Management System to manage new-age workforce.

The Payroll Management System allows you to take your human resources
management to a higher level. Even the top payroll providers in Bangladesh
understand the importance of error free payroll management activities. With
extensive range of services, your organization can enjoy 6 a payroll process
which is timely and accurate. Payroll software often requires very little input
from the employer. The employer is required to input employee wage
information and hours— then the software uses the information to perform
calculations and deduct withholdings automatically. Most payroll software is
automatically updated whenever a tax law changes and will remind employers
when to file various tax forms. For small businesses, payroll system software
can mitigate errors in the payroll process and reduce the amount of effort
involved in calculating employee hours, wages, and tax withholdings.

Payroll software is easy to use and often times very affordable for small
businesses. In some cases, small businesses may save money by using payroll
processing software instead of other alternatives. Small business owners can
purchase an affordable system accessible on their local computer or via a cloud

(3)
service, using a pay-as-you-go model in many cases. Purchasing software
eliminates the expense of hiring an in-house accountant for payroll processing.
Companies can also avoid working with a third party for payroll processing,
keeping the information in-house. Lastly, small business owners can maintain
more control of the payroll process by using software.

Using payroll software allows the business to compile reports at whatever pace
they desire and to make changes quickly if the need arises. This can be more
efficient than trying to manually create reports or get in contact with a third
party payroll company to make changes.

1.1 BACKGROUND

Most of the contemporary Information systems are based on the Database


technology as a collection of logically related data, and DBMS as a software
system allowing the users to define, create, maintain and control access to the
database. The process of constructing such kind of systems is not so simple. It
involves a mutual development of application program and database. The
application program is actually the bridge between the users and the database,
where the data is stored. Thus, the well-developed application program and
database are very important for the reliability, flexibility and functionality of the
system. The so defined systems differentiate to each other and their
development comprises a great variety of tasks to be resolved and implemented.

Information system suggests a computer technology to be used in order to


provide information to users in an organization (for instance), as for the
purposes of data transformation into useful information; computer hardware and
software are designed and used.

(4)
The basic idea can be depicted on figure :

1.2 OBJECTIVE
The primary objective of the Payroll System (PR System) by Léger Systems
is to process payroll information in an online environment, so specific
online procedures can be performed in seconds rather than the hours
required by traditional batch methods of computer processing. This PR
system performs the basic payroll objectives by providing a complete and
accurate record of all payroll transactions affecting each hourly and salaried
employee.
Specific employee payroll features and objectives of this business
software application are highlighted below :
1. Maintain a Labor Detail Record on the number of hours worked and the
types of work done by hourly employees during a payroll period, as well as
the associated general ledger account distribution information for labor
expense.

(5)
2. Calculate gross pay for hourly employees based on the hours worked
including overtime, if any. The gross pay for salaried employees is
predefined for each payroll period in their Employee Master Record.
3. Automatically calculate required federal and state payroll taxes, such as
income tax withholding, Medicare, FICA and unemployment tax, for both
employee and employer. The results are stored in a Payroll Period Record
for each pay period.
4. Print payroll checks with stubs on preprinted forms showing current period
and year-todate (YTD) dollar earnings and deductions. These same multi-
purpose check forms can be used by the Accounts Payable System. Pay
checks can be printed for a single employee or for a specified group of
employees.
5. Print payroll reports, such as Labor Edit Report, Hours Distribution Report
and Payroll Register, to provide an audit trail of payroll data entered into the
system, so adequate audit control is maintained.
6. Print generalized payroll reports with the capability to extract specific
payroll information from the online database, such as "List the total FICA
withheld this quarter for each employee".
7. Enable the user to change the federal and state tax rates used in calculating
payroll withholding and deductions by storing payroll tax rates in separate
Payroll Rates Records by calendar year. 10
8. Define an Active-Flag to prohibit the current online entry of labor
transactions for an inactive employee, yet keep that old code for historical
reporting purposes.

(6)
1.3 PURPOSE AND SCOPE
 The proposed system is for local government unit which uses programming
language C++ as the front-end and MYSQL as the back-end.
 Categorizing of employee based on their status. If the employee is
contractual or permanent.
 Adjusting of salary when the employee gets promoted or demoted.
 Filtering of payroll report per department.
 The proposed system has an active or inactive indicator of employee who
terminated, end of contract, resigned or retired.
 Importing or exporting of attendance report.

(7)
2.SURVEY OF TECHNOLOGIES

(8)
SURVEY OF TECHNOLOGIES

 FRONT END :

I recently had a chance to investigate the options to use C++ to build


mobile/modern apps applications in a platform independent way. It was sad to
find (confirm) that the potential options are very much limited, and it feels that
the language is being left behind in a whole lot of modern development
scenarios. Most of portable libraries are being used in managed/scripted or
"new" languages, while C++ (c) is left for native platform specific code. It's
funny how a lot of platforms are actually written in C++ (browsers, OS's,
frameworks etc) but then prefer other languages to do the actual "front-end"
programming. (web browsers, flutter, qml, etc...)

C++ is a cross-platform language that can be used to create high-performance


applications. C++ was developed by Bjarne Stroustrup, as an extension to the C
language. C++ gives programmers a high level of control over system resources
and memory. C++ is one of the world's most popular programming languages.
C++ can be found in today's operating systems, Graphical User Interfaces, and
embedded systems. C++ is an object-oriented programming language which
gives a clear structure to programs and allows code to be reused, lowering
development costs. C++ is portable and can be used to develop applications that
can be adapted to multiple platforms.

(9)
Features of C++

Here are some of the remarkable features of C++ language:

1. OOP (Object-Oriented Programming)

C++ is an object-oriented language, unlike C which is a procedural language.


This is one of the most important features of C++. It employs the use of objects
while programming. These objects help you implement real-time problems
based on data abstraction, data encapsulation, data hiding, and polymorphism.
We have briefly discussed all the 5 main concepts of object-oriented
programming.

The OOP concepts are :

 Data abstraction : Data abstraction is an act of representing the important


features of data without including the background details or the method
applied to obtain it.
 Data encapsulation : Data encapsulation is nothing but a process to
implement data abstraction by wrapping up the data and functions into an
exclusive block.
 Inheritance : The term inheritance refers to transferring the properties of
the parent class to the child class. We can implement the basic idea of
inheritance by creating more than one class, which we formally refer to as
derived classes by linking them with what we call the base class. This
concept reduces the redundancy of the program and makes it easy to
transfer/copy the properties of one class to another
 Data hiding : Data hiding refers to protecting data from unauthorized
access. It is basically responsible for securing the data. It is important to note
that data encapsulation is different from data hiding as encapsulation mainly
focuses on shifting the focus on important data than explaining its complex
nature.
(10)
 Polymorphism : The word poly means ‘many’ and morphism means
‘forms’. Clearly, polymorphism refers to displaying that data in more than
one form.

2. Platform or Machine Independent/ Portable :

Although C++ is not platform-independent as compiled programs on one


operating system won’t run on another operating system

But in another term, portability refers to using the same piece of code in varied
environments.

Let us understand this C++ feature with the help of an example. Suppose you
write a piece of code to find the name, age, and salary of an employee in
Microsoft Windows and for some apparent reason you want to switch your
operating system to LINUX. This code will work in a similar fashion as it did in
Windows.

3. Simple

When we start off with a new language, we expect to understand in-depth. The
simple context of C++ gives an appeal to programmers, who are eager to learn a
new programming language.

If you are already familiar with C, then you don’t need to worry about facing
any trouble while working in C++. The syntax of C++ is almost similar to that
of C. After all C++ is referred to as “C with classes”.

4. High-level programming language

It is important to note that C++ is a high-level programming language, unlike C


which is a mid-level programming language. It makes it easier for the user to
work in C++ as a high-level language as we can closely associate it with the
human-comprehensible language, that is, English.

(11)
5. Popular

After learning C, it is the base language for many other popular programming
languages which supports the feature of object-oriented programming. Bjarne
Stroustrup found Simula 67, the first object-oriented language ever, lacking
simulations and decided to develop C++.

6. Case sensitive

Just like C, it is pretty clear that the C++ programming language treats the
uppercase and lowercase characters in a different manner. For instance, the
meaning of the keyword ‘cout’ changes if we write it as ‘Cout’ or “COUT”.
Other programming languages like HTML and MySQL are not case sensitive.

7. Compiler-Based

Unlike Java and Python that are interpreter-based, C++ is a compiler-based


language and hence it a relatively much faster than Python and Java.

8. DMA (Dynamic Memory Allocation)

Since C++ supports the use of pointers, it allows us to allocate memory


dynamically. We may even use constructors and destructors while working with
classes and objects in C++.

9. Existence of Libraries

The C++ programming language offers a library full of in-built functions that
make things easy for the programmer. These functions can be accessed by
including suitable header files.

10. Speed

As discussed earlier, C++ is compiler-based hence it is much faster than other


programming languages like Python and Java that are interpreter-based.

(12)
 BACK END :

MY SQL – MySQL, pronounced either "My S-Q-L" or "My Sequel," is an open


source relational database management system. It is based on the structure
query language (SQL), which is used for adding, removing, and modifying
information in the database. Standard SQL commands, such as ADD, DROP,
INSERT, and UPDATE can be used with MySQL.

MySQL can be used for a variety of applications, but is most commonly found
on Web servers. A website that uses MySQL may include Web pages that
access information from a database. These pages are often referred to as
"dynamic," meaning the content of each page is generated from a database as
the page loads. Websites that use dynamic Web pages are often referred to as
database-driven websites.

Many database-driven websites that use MySQL also use a Web scripting
language like PHP to access information from the database. MySQL commands
can be incorporated into the PHP code, allowing part or all of a Web page to be
generated from database information. Because both MySQL and PHP are both
open source (meaning they are free to download and use), the PHP/MySQL
combination has become a popular choice for database-driven websites.

The main reasons for using MySQL

 MySQL is released under an open-source license. So you have nothing to


pay to use it.
 MySQL is a very powerful program in its own right. It handles a large
subset of the functionality of the most expensive and powerful database
packages.
 MySQL uses a standard form of the well-known SQL data language.

(13)
 MySQL works on many operating systems and with many languages
including PHP, PERL, C, C++, JAVA, etc.
 MySQL works very quickly and works well even with large data sets.
 MySQL is very friendly to PHP, the most appreciated language for web
development.
 MySQL supports large databases, up to 50 million rows or more in a table.
The default file size limit for a table is 4GB, but you can increase this (if
your operating system can handle it) to a theoretical limit of 8 million
terabytes (TB).
 MySQL is customizable. The open-source GPL license allows
programmers to modify the MySQL software to fit their own specific
environments.

Some of the main features associated with MySQL :

1. Open-Source

MySQL is open-source, which means this software can be downloaded, used


and modified by anyone. It is free-to-use and easy-to-understand. The source
code of MySQL can be studied, and changed based on the requirements.  It uses
GPL, i.e. GNU General Public license which defines rules and regulations
regarding what can and can’t be done using the application.

2. Quick and Reliable

MySQL stores data efficiently in the memory ensuring that data is consistent,
and not redundant. Hence, data access and manipulation using MySQL is quick.

3. Scalable

Scalability refers to the ability of systems to work easily with small amounts of
data, large amounts of data, clusters of machines, and so on. MySQL server was
developed to work with large databases. 

(14)
4. Data Types

It contains multiple data types such as unsigned integers, signed integers, float
(FLOAT), double (DOUBLE), character (CHAR), variable character
(VARCHAR), text, blob, date, time, datetime, timestamp, year, and so on.

5. Character Sets

It supports different character sets, and this includes latin1 (cp1252 character
encoding), German, Ujis, other Unicode character sets and so on.

6. Secure

It provides a secure interface since it has a password system which is flexible,


and ensures that it is verified based on the host before accessing the database.
The password is encrypted while connecting to the server.

7. Support for large databases

It comes with support for large databases, which could contain about 40 to 50
million records, 150,000 to 200,000 tables and up to 5,000,000,000 rows.

8. Client and Utility Programs

MySQL server also comes with many client and utility programs. This
includes Command line programs such as ‘mysqladmin’ and graphical
programs such as ‘MySQL Workbench’. MySQL client programs are written
in a variety of languages. Client library (code encapsulated in a module) can
be written in C or C++ and would be available for clients that have C binding

(15)
2.1 SOFTWARE AND HARDWARE SPECIFICATION :
2.1.1 SOFTWARE SPECIFICATION :

A Software requirements specification


(SRS) of Functional Specification Document (FSD) is a description of features
and functionalities of a software system to be developed. It lays out functional
and non-functional requirements instructions describing what function the
software is supposed to provide, what characteristics the software is supposed to
have, and what goals the software is supposed to meet or to enable users to
meet.

 User requirements are expressed in natural language.


 Technical requirements are expressed in structured language, which is
used inside the organisation.
 Design description should be written in pseudo code.
 Format of forms and GUI screen prints.

Software requirements specification defines various functional and non-


functional aspects the software to be developed, like user interactions, hardware
requirements, performance and security, accessibility, usability, required
functionalities etc. to derive the requirements a business analyst need to have
clear and through understanding of the product to be developed. This is
achieved and refined with detailed and continuous communication with the
project team and customers till the completion of the software.

 Establishers the basis for an agreement between customers and contractors


on what the software product is to do well as what it is not expected to do.
 Provides a realistic basis for estimating product costs risks and schedules.
 Foundation to software development and subsequent testing.
 Platform for ongoing feedback and refinement via open questions & issues.

(16)
 Tool for evaluating the quality of a project, because a final review should
examine whether each requirements has been met.

2.1.2 HARDWARE SPECIFICATION:

 Intel core i3 7th generation is used as a processor because it is fast than


other processors an provide reliable and stable and we can run our pc
for long time. By using this processor, we can keep on developing our
project without any worries.
 RAM 4 GB is used as it will provide fast reading and writing
capabilities and will in turn support in processing.
 1 TB of hard disk is used to store more data in your computer.

(17)
3.SYSTEM ANALYSIS

(18)
SYSTEM ANALYSIS

3.1 PRELIMINARY INVESTIGATION :

System analysis is a process of gathering and interpreting facts, Diagnosing


problems and the information about the Payroll Management System to
recommend improvements on the system. It is a problem-solving activity that
requires intensive communication between the system users and system
developers. System analysis or study is an important phase of any system
development process. The system is studied to the minutes detail and analysed.
The system analyst plays the role of the interrogator and dwells deep into the
working of the present system. The system is viewed as a whole and the input to
the system are identified. The outputs from the organisation are traced to the
various processes. System analysis is considered with becoming aware of the
problem, identifying the relevant and decisional variables, analysing and
synthesizing the various factors and determining an optimal or at least a
satisfactory solution or program of action.

A detailed study of the process must be made by various techniques like


interviews, questionnaires etc. the data collected by these sources must be
scrutinized to arrive to a conclusion. The conclusion is an understanding of how
the system functions. This system is called the existing system. Now the
existing system is subjected to close study and problem areas are identified. The
designer now functions as a problem solver and tries to sort out the difficulties
that the enterprise faces. The solutions are given as proposals. The proposal is
then weighed with the existing system analytical and the best one is selected.
The proposal is presented to the user fir an endorsement by the user. The
proposal is reviewed on user request and suitable changes are made. This is loop
that ends as soon as the user is satisfied with proposal. Preliminary study is the
process of gathering and interpreting facts, using the information for further
studies on the system. Preliminary study is problem solving activity that
(19)
requires intensive communication between the system users and system
developers. It does various feasibility studies. In these studied a rough figure of
the system activities can be obtained, from which the decision about the
strategies to be followed for effective system study and analysis can be taken.

3.1.1 IDENTIFICATION OF NEED:

The old manual system was suffering from a series of drawbacks. Since
whole of the system was to be maintained with hands the process of keeping,
maintaining and retrieving the information was very tedious and lengthy. The
records were never used to be in a systematic order. There used to be lots of
difficulties in associating any particular transaction with a context. If any
information was to be found it was required to go through the different registers,
documents there would never exist anything like report generation. There would
always be unnecessary consumption of time while entering records and
retrieving records. Once the records were entered it was very difficult to update
these records.

The reason behind it is that there is lot of information to be


maintained and must be kept in mind while running the business. For this
reason, we have provided features present system is partially automated
(computerized); existing system is quite laborious as one must enter same
information at three different places.

Following points should be well considered:

 Documents and reports that must be provided by the new system: there
can also be few reports, which can help management in decision making
and cost controlling, but since these reports do not get required attention,
such kind of reports and information were also identified and given
required attention.

(20)
 Details of the information needed for each document and report.
 The required frequency and distribution for each document.
 Probable sources of information for each document and report.
 With the implementation of computerized system, the task of keeping
records in an organised manner will be solved. The greatest of all is the
retrieval of information, which will be at the click of the mouse. So, the
proposed system helps in saving the time in different operation and
making information flow every giving valuable reports.

3.1.2 FEASIBILITY STUDY :

The objective of feasibility study is to determine whether or not the


proposed system is feasible. A feasibility study is a preliminary investigation of
a proposed system to decide whether the system can run smoothly with the
organization, will the organization realize the benefits that are expected and to
decide will the organization go for it. Feasibility is defined as the practical
extent to which a project can be performed successfully. To evaluate feasibility,
a feasibility study is performed, which determines whether the solution
considered to accomplish the requirements is practical and workable in the
software. Information such as resource availability, cost estimation for software
development, benefits of the software to the organization after it is developed
and cost to be incurred on its maintenance are considered during the feasibility
study. The objective of the feasibility study is to establish the reasons for
developing the software that is acceptable to users, adaptable tochange and
conformable to established standards. Various other objectives of feasibility
study are listed below :

 To analyze whether the software will meet organizational requirements


Feasibility is defined as the practical extent to which a project can be

(21)
performed successfully. To evaluate feasibility, a feasibility study is
performed.
 To determine whether the software can be implemented using the current
technology and within the specified budget and schedule A feasibility study
is a preliminary investigation of a proposed system to decide whether the
system can run smoothly with the organization.
 To determine whether the software can be integrated with other existing
software. benefits that are expected and to decide will the organization go for
it.

Three Types of feasibility study :

1. Technical Feasibility.
2. Operational Feasibility.
3. Economical Feasibility

Here are the detailes of three types :

1. ECONOMICAL FEASIBILITY :

Economic feasibility is a measure of the cost-effectiveness of a project or


solution. As a part of this, the costs and benefits associated with the proposed
system are compared and the project is economically feasible only if tangible
and intangible benefits outweigh the cost. The cost for proposed online shopping
system is outweighing the cost and efforts involved in maintaining the registers,
books, files and generation of various reports. The system also reduces the
administrative and technical staff to do various jobs that single software can do.
So, this system is economically feasible. Economical feasibility also performs
following tasks

(22)
i. Cost incurred on software development to produce long-term gains for an
organization. Economic feasibility is a measure of the cost-effectiveness of a
project or solution. As a part of this, the costs and benefits associated.
ii. Cost required to conduct full software investigation (such as requirements
elicitation and requirements analysis). The system also reduces the
administrative and technical staff to do various jobs that single software can
do.
iii. Cost of hardware, software, development team, and training. Feasible only if
tangible and intangible benefits outweigh the cost. The cost for proposed
online shopping system is outweighing the cost and efforts involved in
iv. Cost involves in purchase or rental of equipment the cost for proposed online
shopping system is outweighing the cost and efforts involved.
v. Cost of phones & mobile communication equipment
vi. Cost of Salaries of Employees.
vii. Cost of maintenance of equipment

2. TECHNICAL FEASIBILITY :

In this, one has to test whether the system can be developed using existing
technology or not. It is evident that necessary hardware and software are
available for development and implementation of proposed system. We
acquired the technical knowledge of working in languages, and then only we
have started designing our project. The system is self-explanting and does not
need any entire sophisticated training. A system has been built by concentrating
on the graphical user interface concepts, the application can also be handled
very easily with a novice uses. The overall time that a user needs to get trained
is less than 15 minutes.The system has been added with features of menu device
and button interaction methods, which makes him the master as he starts
working through the environment. As the software that were used as developing

(23)
this application are very economical and are readily available is themarket the
only time that is lost by the customer is just installation time. Technical
feasibility performs following tasks.

1. Analyzes the technical skills and capabilities of the software


development team members. In this, one has to test whether the system
can be developed using existing technology or not. It is evident that
necessary hardware and software.
2. Determines whether the relevant technology is stable and established.
The system has been added with features of menu device and button
interaction methods, which makes him the master as he starts working
through the environment.
3. Ascertains that the technology chosen for software development has a
large number of users so that they can be consulted when problems arise
or improvements are required. It mentions computer with new
configuration requirements of proposed system. It mentions new
software requirements of the proposed system.
3. OPERATIONAL FEASIBILTY :

Operational feasibility means how much the system is user interactive. In this
project, the management will know the details of each project where he may be
presented and the data will be maintained as decentralized and if any inquires
for that particular contract can be known as per their requirements and
necessaries. Operational feasibility also performs following tasks.

1. Determines whether the problems anticipated in user requirements are of


high priority.
2. Determines whether the solution suggested by the software development
team is acceptable.
3. Analyzes whether users will adapt to a new software

(24)
4. Determines whether the organization is satisfied by the alternative
solutions proposed by the software development team.
5. It finds if any job reconstruction is required or not?
6. vi. Watches the feelings of the customers as well as user. System should
provide right & accurate information to user or customer at right place as
well as at right time.

(25)
4.REQUIREMENT ANALYSIS

(26)
REQUIREMENT ANALYSIS

4.1 EXISTING SYSTEM :

This organization is maintaining most of their day-to-day transaction data in the


resisters. The employees of the organization are doing the whole work
manually. All the work is done manually so different employees are appointed
for the maintenance of resisters containing all the information related to the
organization.It is very consuming and it is not also error free in some situations.
In existence manual system databases calculations are difficult to perform so
report generates as very much difficult.

Gusto Launched in 2012, to simplify complex business processes such as


payroll, benefits, and HR for its customers. Its software is being implemented
by more than 60,000 firms nationwide.The platform automates the calculation,
payment, and filing of a firm’s federal, state, and local payroll taxes. Plus, it
enables enterprises to pay via check or direct deposit, automate payroll
processes to minimize errors, and save time in managing bookkeeping.

OnPay is based in Atlanta. It automates payment workflows and tax filing, and
streamlines payroll processes. Entering essential payroll info such as hours, tips,
bonuses, and reimbursements is seamlessly performed. Plus, it manages
unlimited payroll runs for 1099 contract workers and W-2 employees. OnPay
takes care of calculating your federal and state payroll taxes, and filing of tax
forms. They are very confident of their accuracy and are willing to take
responsibility in case there are any errors in tax calculation and filing.

ADP Workforce now, The parent company ADP provides payroll, global
HCM, and outsourcing services in 113 countries. ADP Workforce Now is an
online HR software designed for midsize companies. This platform collects and
automates your company’s HR processes in a single dashboard. Top features

(27)
include benefits management, payroll, talent management, and time and
attendance. You can use this effective tool to manage your staff members’
holidays and benefits, and effortlessly generate insightful reports. The vendor
provides video tutorials, demo, and online support to help you make good use of
the software.

Xerois based in New Zealand and was founded in 2006. This accounting
software is popular in the US, UK, European, and Australian markets. From
modest beginnings, the company has grown worldwide and currently has 20
offices around the globe. This software is easy to launch and use, and doesn’t
need complex training. It simplifies tedious financial operations from data entry
to deep accounting, and helps you save the time spent on searching voluminous
records. Users can manage all contacts and transactions from the same page.
Key features include GST returns, fixed assets, multi-currency, inventory, and
financial reporting.

Dayforce HCM is a product of Ceridian which is a global human capital


management (HCM) software company. Dayforce HCM is its flagship product
and this cloud-based solution offers capabilities such as HR management, talent
management, document management, benefits, analytics, payroll and tax, and
workforce management. The platform provides businesses access to real-time
data on all elements of HCM. You can use it to find the best talent, process pay,
manage benefits and compliance, maintain HR records, schedule employees
with work-life balance and more. This software doesn’t provide a user interface
and offers one user experience.

Wave, was founded in 2010 in Canada and it has built an impressive track
record since then. The company boasts 3 million customers and has recorded
more than $200 billion in income and expenses tracked, $77 million in
investments, and $20 billion in invoices sent annually. Wave is a free app that

(28)
offers accounting, receipt scanning, and invoicing features that are ideal for
small businesses and self-employed professionals such as consultants,
freelancers, and entrepreneurs. The platform is simple to set up and use, and
presents an easily navigable dashboard that displays all you need to view. It
simplifies invoicing and accounting processes, and enables you to effortlessly
manage employees and taxes, chase payments, and track expenses.

Zenefits, was founded in San Francisco in 2013. Today, the company boasts
over 10,000 small to midsize business clients located in all 50 states, greater
than 500,000 employees onboarded, and more than 500 employees in its offices
in the US, India, and Canada. The software simplifies HR administration and
complex payroll processes, and helps businesses make good use of theirlimited
resources. Key features include payroll sync, insurance benefits, employee
directory, business intelligence, mobile optimization, ACA compliance, hiring
and onboarding, customer support and more. The platform integrates all HR
solutions in a single easy-to-use dashboardwhich gives companies greater
control and more confidence in their compliance as well as better access for
their employees.

Intuit Payroll, develops and sells accounting, financial, and tax preparation
software products for small businesses, individual users, and accountants. Intuit
Payroll offers affordable yet robust packages that can suit the needs of budgets
of different types of companies. They can use this application to pay their staff
members on time and accurately, while saving time doing this process. With
this platform, you can automate payroll tax calculations, generate unlimited
paychecks and more. The vendor is renowned for providing top notch support
from live specialists. Main features include step-by-step assistance with setup,
compliance service, workers’ compensation, hiring tips and tools, and online
chat with a payroll expert.

(29)
4.2PROPOSED SYSTEM :

This chapter builds on the work done in the Analysis Chapter and gives
documentation for the Design of the Payroll Management System. The PMS is
modelled in terms of objects and classes and their interactions with each other.
Explanation of the proposed system is done as well structure of the Entity
Relationship Diagram (ERD). Design of the User Interface is also discussed.The
proposed system is designed to eliminate all the drawbacks of the existing
payroll management software. The system shall be responsible for maintaining
information about employees, thus their personal profile. The system shall
incorporate leave management all theway from application to
acceptance/rejection of leave requests as well as all employee projects with
close monitoring of the projects from creation to completion and trainings to
assist in monitoring active and inactive employees.

The new system will help the organization to set rates for each category which
will help in preparing ledger, balance sheet easily and perform automatic
processing without human intervention. For making ledger, it will takes inputs
on employees working modules such as type of work, their designation, rate per
day, tax deduction on monthly basis and bonus or increment on fixed interval of
days etc. As salary statement and payment sheet need to be prepared as and
when required so each employees will be differtiated using their employee’s id.
Pay slip will give the entire information which help the working employees to
get clear picture for their salary and creating a fair environment for working
organization.

(30)
The main features to be added include:

 Employee profiles
 Salary management
 Task management
 Notifications
 Employee Self-Service (ESS)

Consistent - The website should have a similar look and feel on every page.
Every page should have the same header/logo, heading style, fonts, navigations
etc. Efficient and easy to maintain-This refers to the fact that there is need to
separate content from layout, so that you can easily change your page design
without editing every page on the site. Layout-The layout of each page should
have a good contrast between the text and background area. This helps
considerably with visibility as it will be difficult to read the text if it is almost
the same color as the background. Monitor size should also be taken into
consideration. Easy to navigate and use-Users should not have a hard time
trying to navigate the site. Navigation links should be consistent and clearly
labelled. All navigation links should also be working properly and should point
to the intended page/site. Browser compatible-When designing the site consider
different browser environments. Extensive testing should be done on each page
in all the major browsers and the design changed appropriately to cater for
all.Visually appealing-The use of color, text, font sand graphics should be
carefully considered and used to ensure that the site is visually appealing to its
visitors.

(31)
FEATURES :

 Portability
 Compatibility
 Secure
 User Friendly
 Generosity
 Runtime Compactness and Speed

Advantages :

 Transparency to all the user of system.


 Less paper use and removal of redundancy.
 Less prone to errors.
 The whole system is interactive.

(32)
4.3DATA FLOW DIAGRAM (DFD)

A Data Flow Diagram (DFD) is a structured analysis and design tool that can be
used for flowcharting. A DFD is a network that describes the flow of data and
the processes that change or transform the data throughout a system. This
network is constructed by using a set of symbols that do not imply any physical
implementation. It has the purpose of clarifying system requirements and
identifying major transformations. So it is the starting point of the design phase
that functionally decomposes the requirements specifications down to the
lowest level of detail. DFD can be considered to an abstraction of the logic of an
information oriented or a processoriented system flow-chart. For these reasons
DFD’s are often referred to as logical data flow diagrams

Components of DFD :

DFDs only involve four symbols. They are:

1.Processes : Processes are the essential activities, carried out within the system
boundary, that use information. A process is represented in the model only
where the information which provides the input into the activity is manipulated
or transformed in some way, so that the data flowing out of the process is
changed compared to that which flowed in. The activity may involve capturing
information about something that the organization is interested in, such as a
customer or a customer's maintenance call. It may be concerned with recording
changes to this information, a change in a customer's address for example. It
may require calculations to be carried out, such as the quantity left in stock
following the allocation of stock items to a customer's job; or it may involve
validating information, such as checking that faulty equipment is covered by a
maintenance contract.

(33)
Fig 1.Diagram of the process

2.Data-flows : A data-flow represents a package of information flowing


between two objects in the data-flow diagram. Data-flows are used to model the
flow of information into the system, out of the system, and between elements
within the system. Occasionally, a data-flow is used to illustrate information
flows between two external entities, which is, strictly speaking, outside of the
system boundaries. However, knowledge of the transfer of information between
external entities can sometimes aid understanding of the system under
investigation, in which case it should be depicted on the diagram.

Fig 2.Diagram of data flows

3.Data stores : A data store is a place where data is stored and retrieved within
the system. This may be a file, Customer Contracts file for example, a catalogue
or reference list, Options Lists for example, a log book such as the Job Book,
and so on.

Fig 3.Diagram of data stores

(34)
4.External Entities : External entities are entities outside of the system
boundary which interact with the system, in that they send information into the
system or receive information from it. External entities may be external to the
whole organization as in Customer and Supplier in our running example; or just
external to the application area where users' activities are not directly supported
by the system under investigation. Accounts and Engineering are shown as
external entities as they are recipients of information from the system. Sales
also provide input to the system. External entities are often referred to as
sources and sinks. All information represented within the system is sourced
initially from an external entity. Data can leave the system only via an external
entity.

Fig 4.Diagram of external entities

(35)
DFD OF PAYROLL MANAGEMENT SYSTEM :

Zero Level Data Flow Diagram Of Payroll Management System :

This is the Zero Level DFD of Payroll Management System, where we have
eloborated the high level process of Payroll. It's a basic overview of the whole
Payroll Management System or process being analyzed or modeled. It's
designed to be an at-a-glance view of Task, Pay-Slip and Department showing
the system as a single high-level process, with its relationship to external
entities of Employee, Attendance and Leave. It should be easily understood by a
wide audience, including Employee,Leave and Task In zero leve DFD of
Payroll Management System, we have described the high level flow of the
Payroll system.

(36)
First Level Data Flow Diagram Of Payroll Management System :

First Level DFD (1st Level) of Payroll Management System shows how the
system is divided into sub-systems (processes), each of which deals with one or
more of the data flows to or from an external agent, and which together provide
all of the functionality of the Payroll Management System system as a whole. It
also identifies internal data stores of Department, Pay-Slip, Task, Salary, Leave
that must be present in order for the Payroll system to do its job, and shows the
flow of data between the various parts of Employee, Leave, Pay-Slip,
Department, Task of the system. DFD Level 1 provides a more detailed
breakout of pieces of the 1st level DFD. You will highlight the main
functionalities of Payroll.

(37)
Second Level Data Flow Diagram OF Payroll Management System :

DFD Level 2 then goes one step deeper into parts of Level 1 of Payroll. It may
require more functionalities of Payroll to reach the necessary level of detail
about the Payroll functioning. First Level DFD (1st Level) of Payroll
Management System shows how the system is divided into sub-systems
(processes). The 2nd Level DFD contains more details of Department, Pay-Slip,
Task, Salary, Leave, Attendance, Employee.

(38)
5.SOFTWARE DESIGN

(39)
SOFTWARE DESIGN

System design is the solution for the creation of a new system. This phase
focuses on the detailed implementation of the feasible system. It emphasis on
translating design. Specifications to performance specification. System design
has two phases of development. They are logical design and physical design.
During logical design phase the analyst describes inputs (sources), outputs
(destinations), databases (data stores) and procedures (data flows) all in a format
that meets the user requirements. The analyst also specifies the needs of the user
at a level that virtually determines the information flow in and out of the system
and the data resources. Here the logical design is done through data flow
diagrams and database design. The physical design is followed by physical
design or coding. Physical design produces the working system by defining the
design specifications which specify exactly what the candidate system must do.
The programmers write the necessary programs that accept input from the user
perform necessary processing on accepted data and produce the required report
on a hard copy or display it on the screen

5.1DESIGN OBJECTIVE AND CONSTRAINT :

In this phase, a logical system is built which is fulfils the given requirements.
Design phase of software development deals with transforming the client’s
requirements into a logically working system. Normally, design is performed in
the following two steps:

1) PRIMARY DESIGN PHASE :

In this phase, the system is designed at block level. The blocks are created on
the basis of analysis done in the problem identification phase. Different blocks
are created for different functions emphasis is on minimizing information flow
between blocks. Thus, all activities which require more interaction are kept in
one block.
(40)
2) SECONDARY DESIGN PHASE :

In the secondary phase the detailed design of every block is performed.

The general tasks involved in the design process are the following:
1) Design various blocks for overall system processes.
2) Design smaller, compact and workable modules in each block.
3) Design various database structures.
4) Specify details of programs to achieve desired functionality.
5) Design the form of inputs, and outputs of the system.
6) Perform documentation of the design.
7) System reviews.

5.2DESIGN TECHNIQUE :

The researcher consulted the administration department of the company for


which the system is being developed. This consultation was for the purpose of
studying the system in detail to understand its functionality and requirement in
the new system and probably introduce new features that will establish an
improved system. Various tables were designed showing the data to be
captured, the flow chart system for the program was developed. From this flow
chart, the software program for the data capture of each employee was
developed and test run in order to make sure it performs the function for which
it was so developed. The program was therefore critically analyzed and
recommendations proffered for future research and development.

(41)
5.3 DATABASE DESIGN :

The relational database model was used in the design of the database for the
Payroll Management System application. According to Lit win P., “The basic
idea behind the relational model is that a database consists of a series of un-
ordered tables (or relations) that can be manipulated using non –
procedural operations that return tables”.

The benefits of a database that has been designed according to the relational
model are:

1) Data entry, updates and deletions will be efficient.


2) Data retrieval, summarization and reporting will also be efficient.
3) Since the database follows a well –formulated model, it behaves
predictably.
4) Since much of the information is stored in the database rather than in the
application, the database is somewhat self –documenting.
5) Changes to the database schema are easy to make.

Normalization was used to simplify the design of the database in order to bring
it to optimum structure.

5.3.1 E-R DIAGRAM :

An entity-relationship (ER) diagram is a specialized graphic that illustrates the


relationships between entities in a database. ER diagrams often use symbols to
represent three different types of information. Boxes are commonly used to
represent entities. Diamonds are normally used to represent relationships and
ovals are used to represent attributes. ER-modeling is a data modeling technique
used in software engineering to produce a conceptual data model of a
information system. Diagrams created using this ER-modeling technique are
called Entity-Relationship Diagrams, or ER diagrams or ERDs. So you can say
that Entity Relationship Diagrams illustrate the logical structure of databases.
(42)
Dr. Peter Chen is the originator of the Entity-Relationship Model. His original
paper about ER-modeling is one of the most cited papers in the computer
software field. Currently the ER model serves as the foundation of many system
analysis and design methodologies, computer-aided software engineering
(CASE) tools, and repository systems. In software engineering, an ER model is
commonly formed to represent things that a business needs to remember in
order to perform business processes. Consequently, the ER model becomes an
abstract data model,that defines a data or information structure which can be
implemented in a database, typically a relational database. In software
engineering, an ER model is commonly formed to represent things that a
business needs to remember in order to perform business processes.
Consequently, the ER model becomes an abstract data model, that defines a data
or information structure which can be implemented in a database, typically a
relational database. Entities may be characterized not only by relationships, but
also by additional properties (attributes), which include identifiers called
"primary keys". Diagrams created to represent attributes as well as entities and
relationships may be called entity-attribute relationship diagrams, rather than
entity–relationship models. An ER model is typically implemented as a
database. In a simple relational database implementation, each row of a table
represents one instance of an entity type, and each field in a table represents an
attribute type. In a relational database a relationship between entities is
implemented by storing the primary key of one entity as a pointer or "foreign
key" in the table of another entity. An entity may be defined as a thing capable
of an independent existence that can be uniquely identified. An entity is an
abstraction from the complexities of a domain. When we speak of an entity, we
normally speak of some aspect of the real world that can be distinguished from
other aspects of the real world. A relationship captures how entities are related
to one another. Relationships can be thought of as verbs, linking two or more
nouns. Examples: an owns relationship between a company and a computer, a

(43)
supervises relationship between an employee and a department, a performs
relationship between an artist and a song, a proves relationship between a
mathematician and a conjecture, etc.

ER Digram of the Payroll Management System :

This ER (Entity Relationship) Diagram represents the model of Payroll


Management System Entity. The entity-relationship diagram of Payroll
Management System shows all the visual instrument of database tables and the
relations between Salary, Appraisals, Payroll, Payments etc. It used structure
data and to define the relationships between structured data groups of Payroll
Management System functionalities. The main entities of the Payroll
Management System are Payroll, Salary, Employee, Appraisals, Woking Points
and Payments.

Payroll Management System entities and their attributes :

 Payroll Entity : Attributes of Payroll are payroll_id, payroll_employee_id,


payroll_title, payroll_type, payroll_description
 Salary Entity : Attributes of Salary are salary_id, salary_employee_id,
salary_amount, salary_total, salary_type, salary_description
 Employee Entity : Attributes of Employee are employee_id,
employee_name, employee_mobile, employee_email, employee_username,
employee_password, employee_address
 Appraisals Entity : Attributes of Appraisals are apprasail_id,
apprasail_employee_id, apprasail_name, apprasail_type,
apprasail_description .
 Woking Points Entity : Attributes of Woking Points are point_id,
point_title, point_type, point_description

(44)
 Payments Entity : Attributes of Payments are payment_id,
payment_customer_id, payment_date, payment_amount,
payment_description

(45)
5.3.2 TABLE STRUCUTRE :

(46)
5.3.3 INPUT SCREEN :

MAIN MENU OF PAYROLL MANAGEMENT SYSTEM :

ADDING NEW EMPLOYEE :

(47)
FOR SEARCHING OR DISPLAY RECORD OF EMPLOYEE :

FOR LIST OF EMPLOYEES :

(48)
FOR SALARY SLIP OF EMPLOYEE :

MAIN MENU OF MODIFY OR DELETE DATA :

(49)
FOR MODIFY RECORD OF EMPLOYEES :

PRESS Y THEN THIS MODIFY MENU APPEAR :

(50)
FOR DELETING EMPLOYEES DATA :

PRESS Y FOR DELETION :

(51)
5.3.4 CODING :

//**********************************************************
// 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
//**********************************************************
(52)
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) ;

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

(54)
cout <<"0: QUIT" ;
gotoxy(30,18) ;
cout <<"ENTER YOUR CHOICE :" ;
gotoxy(5,23);
cout<<" ";

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

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

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

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

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

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

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

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

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

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

(63)
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
{

(64)
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..." ;

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

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

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

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

(69)
}
}
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" ;

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

(71)
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)
{

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

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

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

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

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

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

(78)
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)
{

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

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

(81)
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')

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

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

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

(85)
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,e
conv,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) ;

(86)
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..." ;

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

(88)
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","Se
ptember","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 ;

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

(90)
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." ;
}

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

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

(93)
//**********************************************************
// MAIN FUNCTION CALLING MAIN MENU
//**********************************************************

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

(94)
6.TESTING

(95)
TESTING

6.1 TESTING OBJECTIVE :

The aim of the system testing process was to determine all defects in our
project. The program was subjected to a set of test inputs and various
observations were made and based on these observations it will be decided
whether the program behaves as expected or not.

Testing is undertaken when a module has been created and successfully


reviewed. In order to test a single modules, we need to provide a complete
environment i.e., besides the module we would require:

 The procedures belonging to other modules that the module under test
calls.
 Non local data structures that module accesses.
 A procedure to call the functions of the module under test with
appropriate parameters.

6.2TESTING METHODOLOGIES :

During Test Cases that are good at revealing the presence of faults is central to
successful testing. The reason for this is that if there is a faults in the program,
the program can still provide the expected behavior on the certain inputs. Only
for the set of inputs the faults that exercise the fault in the program will the
output of the program devise from the expected behavior. Hence, it is fair to say
that testing is as good as its test case. The number of test cases used to
determine errs in the program should be minimum.

(96)
6.3QUALITY ATTRIBUTES :

There are two fundamental goals of a practical testing activity:

A. Maximize the number of errors detected .


B. Minimize the number of test cases.

As these two goals are contradictory so the problem of selecting test cases is a
complex one. . While selecting the test cases the primary objective is to ensure
that if there is an error or fault in the program, it is exercised by one of its test
cases. An ideal test case is one which succeeds(meaning that there are no errors,
revealed in its execution) only it there are no errors in the program one possible
set of ideal test cases is one which includes all the possible inputs to the
program. This is often called “exhaustive testing”. However it is impractical
and infeasible as even a small program can have an infinite input domain. So to
avoid this problem we use “test criteria” in selection of the test cases.

There are two aspects of the test case selection:

 Specifying a criteria for evaluating the test cases.


 Generating the set of cases that satisfy a given criteria.

The fully automated process of generating test criteria has not been yet found
rather guidelines are only the automated tool available to us previously.

The two fundamental properties for a testing criterion are -

 Reliability a criterion is reliable if all the sets that satisfy the criteria detect
the same error.
 Validity a criterion is valid if for any error in the program there is some set
satisfying the criteria that will reveal the error. The fundamental theorem of
testing is that if a testing criterion is valid and reliable, if a set satisfying
criteria succeeds then the program contains no errors.

(97)
7.IMPLEMENTATION

(98)
IMPLEMENTATION

7.1CHARACTERISTICS OF LANGUAGE USED :

In this project we used the language C++ and MySQL.

C++ is an upgraded version of C programming. The main idea behind creating


C++ programming was to add object orientation to the C programming
language. The major upgradations are object-oriented programming
methodology, namespace feature, operator overloading, error & exception
handling. The motivation behind object-oriented programming is to try to see
the whole world in the form of classes & objects. 

There are various features of C++ such as :

 Object Oriented
 Simple
 Platform Dependent
 Mid-level programming language
 Structured programming language
 Rich Library
 Memory Management
 Powerful & Fast 
 Pointers
 Compiler based
 Syntax based language

Let’s discuss each one of them one by one.

(99)
OBJECT ORIENTED PROGRAMMING LANGUAGE

The main upgradation from C to C++ is object-oriented programming. It


follows concept of oops like polymorphism, inheritance, encapsulation,
abstraction. This makes development and maintenance easier. 

Let’s briefly understand the concepts of OBJECT-ORIENTED


PROGRAMMING :

 Class: A class is a user-defined blueprint or prototype from which objects


are created. It represents the set of properties or methods that are common to
all objects of one type.
 Object: It is a basic unit of Object-Oriented Programming and represents the
real-life entities. A C++ program creates many objects which interact by
invoking methods.

 Polymorphism: Polymorphism refers to the ability of OOPs programming


languages to differentiate between entities with the same name efficiently.
 Inheritance: Inheritance is the mechanism in which one class is allowed to
inherit the features (fields and methods) of another class.
 Encapsulation: Encapsulation is defined as the wrapping up of data under a
single unit. It is the mechanism that binds together code and the data it
manipulates.
 Abstraction: Data Abstraction is the property by virtue of which only the
essential details are displayed to the user. The trivial or the non-essentials
units are not displayed to the user.

(100)
FEATURES OF C++

Simple

C++ provides a structured approach wherein you can break the problem into
parts and design the solution modularly. It provides you a rich set of library
functions that you can use while implementing the solution.
If you have worked with C language, then moving to C++ would be a very
smooth transitioning. The syntax is almost similar with minute changes. 

Platform Dependent 

Platform dependent language means the language in which programs can be


executed only on that operating system where it is developed & compiled. It
cannot run or execute it on any other operating system. 

C++ is a platform-dependent language. Having said that, C++ programs can be


executed in many machines with little bit or no change.

Mid-level programming language

C++ has the ability to do both low-level & high-level programming. This is the
reason why C++ is known as a mid-level programming language. When we talk
about low-level programming, C++ is used to develop system applications such
as the kernel, driver, etc. 

(101)
Structured programming language

In C++ programming, the code is modular with the help of functions, classes &
objects, and the modules are loosely coupled. Modular code is easy to
understand & modify. This makes C++ a structured programming language. 

Rich Library

Developers have access to lots of in-built functions provided by C++ language.


This saves time & makes development fast. Let’s look at some of the C++
header files & functionalities provided by it.

 <iostream>:  Contains C++ standard input and output functions.


 <iomanip>: Contains stream manipulators that format streams of data.
 <cmath>: Contains math library functions.
 <cstdlib>: Contains function for conversions of numbers to text and vise
versa, memory allocation, random numbers and various other utility
functions. 
 <ctime>: Contains function for manipulating the time and date.
 <fstream>: Contains function for functions that perform input from files
on disk and output to files on disk.
 <memory>: Contains classes and functions used by the C++ Standard
Library to allocate memory to the C++ Standard Library containers.
 <iterator>: Contains classes for accessing data in the C++ Standard
Library containers.
 <algorithm>: Contains functions for manipulating data in C++ Standard
Library containers.

(102)
Memory Management

C++ supports dynamic memory allocation. You can free the allocated memory
at any time. Not only this C++ also provides dynamic memory management
techniques. 

Powerful & Fast

C++ is a fast language as compilation and execution time is less. Also, it has a
wide variety of data types, functions & operators.

Pointers

Pointers are variables that store the address of another variable. Pointer points to
the memory location of a variable. C++ supports pointer and provides solutions
to lots of problems that demand access to memory location.

Compiler based

C++ is a compiler-based programming language.  Without compilation, no C++


program can be executed. The compiler first compiles the C++ program and
then it is executed.

C++ Features : Syntax based language

C++ is a language that complies strongly with syntax. Language following rules
and regulations very strictly is known as tight syntax-based language. C, C++,
Java, .net are some of the examples.

(103)
MySQL Features

MySQL is a relational database management system (RDBMS) based on the


SQL (Structured Query Language) queries. It is one of the most popular
languages for accessing and managing the records in the table. MySQL is open-
source and free software under the GNU license. Oracle Company supports it.

The following are the most important features of MySQL :

Relational Database Management System (RDBMS)

MySQL is a relational database management system. This database language is


based on the SQL queries to access and manage the records of the table.

Easy to use

MySQL is easy to use. We have to get only the basic knowledge of SQL. We
can build and interact with MySQL by using only a few simple SQL statements.

It is secure

MySQL consists of a solid data security layer that protects sensitive data from
intruders. Also, passwords are encrypted in MySQL.

Client/ Server Architecture

MySQL follows the working of a client/server architecture. There is a database


server (MySQL) and arbitrarily many clients (application programs), which
communicate with the server; that is, they can query data, save changes, etc.

(104)
Free to download

MySQL is free to use so that we can download it from MySQL official website
without any cost.

It is scalable

MySQL supports multi-threading that makes it easily scalable. It can handle


almost any amount of data, up to as much as 50 million rows or more. The
default file size limit is about 4 GB. However, we can increase this number to a
theoretical limit of 8 TB of data.

Speed

MySQL is considered one of the very fast database languages, backed by a large
number of the benchmark test.

High Flexibility

MySQL supports a large number of embedded applications, which makes


MySQL very flexible.

Compatible on many operating systems

MySQL is compatible to run on many operating systems, like Novell NetWare,


Windows* Linux*, many varieties of UNIX* (such as Sun* Solaris*, AIX, and
DEC* UNIX), OS/2, FreeBSD*, and others. MySQL also provides a facility
that the clients can run on the same computer as the server or on another
computer (communication via a local network or the Internet).

(105)
Allows roll-back

MySQL allows transactions to be rolled back, commit, and crash recovery.

Memory efficiency

Its efficiency is high because it has a very low memory leakage problem.

High Performance

MySQL is faster, more reliable, and cheaper because of its unique storage
engine architecture. It provides very high-performance results in comparison to
other databases without losing an essential functionality of the software. It has
fast loading utilities because of the different cache memory.

High Productivity

MySQL uses Triggers, Stored procedures, and views that allow the developer to
give higher productivity.

Platform Independent

It can download, install, and execute on most of the available operating systems.

Partitioning

This feature improves the performance and provides fast management of the
large database.

(106)
GUI Support

MySQL provides a unified visual database graphical user interface tool named
"MySQL Workbench" to work with database architects, developers, and
Database Administrators. MySQL Workbench provides SQL development, data
modeling, data migration, and comprehensive administration tools for server
configuration, user administration, backup, and many more. MySQL has a fully
GUI supports from MySQL Server version 5.6 and higher.

Dual Password Support

MySQL version 8.0 provides support for dual passwords: one is the current
password, and another is a secondary password, which allows us to transition to
the new password.

(107)
7.2 VALIDATION CHECKS :

1) All the fields such as employee, new entry, and salary etc. are validated and
do not take invalid values.
2) Each form for employee, salary, address cannot accept blank value fields.
3) Avoiding errors in data.
4) Controlling amount of input.
5) Integration of all the modules/forms in the system.
6) Preparation of the possible test data with all the validation checks.
7) Actual testing done manually.
8) Recording of all the reproduced errors.
9) Modifications done for the errors found during testing.
10) Prepared the test result scripts after rectification of the errors.
11) Functionality of the entire module/forms.
12) Validations for user input.
13) Checking of the coding standards to be maintained during coding.
14) Testing the module with all the possible test data.
15) Testing of the functionality involving all types of calculations etc.
16) Commenting standard in the source files.

(108)
7.3INSTALLATION :

Installation is the process of making hardware and/or software ready for use.
Obviously, different systems require different types of installations. While
certain installations are simple and straightforward and can be performed by
non-professionals, others are more complex and time-consuming and may
require the involvement of specialists.

Installation can be categorized into two broad categories: physical and virtual.
Physical installation pertains to installing physical equipment such as computer
hard drives, cables, modems and so on, while virtual installation refers to
installation of software. Much physical machine installation requires specific
expertise. Similarly, there are software installations that can be done only by
experts, whereas other installations are as simple and straightforward as the
wizard-based installations commonly found with consumer software and
frequently available on websites to be downloaded. Different types of software
installations include Windows Installer installation, web-based software
installation and single exe software installation.

(109)
8.CONCLUSION

(110)
CONCLUSION

The Internet has become a major resource in modern business, thus


computerized payroll system has gained significance not only from the
entrepreneur’s but also from the employee’s point of view. Automated payroll
system enables the employer to process its payroll through a computerized
system. A manual payroll system requires that the payroll be processed by hand
and is therefore a considerably slower procedure than an automated system. The
former makes payroll processing simpler, and reduces errors, which are more
likely with the manual system .Hourly workers are paid according to hours
worked during the pay period. The employer uses a time-keeping system to
track hours and pay hourly employees accordingly. It is critical, therefore, that
each employee’s time is computed accurately. Many employers use a time clock
to track work hours.

A manual payroll system requires computing the time clock data by hand; this
increases the likelihood of mistakes. The automated time-keeping system allows
the employer to import time clock data into payroll software. Specifically, the
employee uses a swipe card or badge, or the hand print or fingerprint method, to
clock in and out. Once the entries are transported into the payroll software, the
software computes the time worked. All the payroll staff member has to do is
ensure the time is transported appropriately and make the necessary
edits .Successfully, the system has been designed in response to the system
analysis. All possible error in the program have been eliminated. Necessary
validation techniques have been used and normal, abnormal and extremely data
was used to test the system.

However, doing this project has been a good boost to our confidence as the
future IT member of our global village. Payroll seems simple at its core, but
becomes complicated because of the various deductions that come into play.
Employers must withhold taxes from each paycheck and make sure accurate
(111)
funds are paid to the correct government agency. Employers may also be
responsible for deducting and paying premiums for insurance and depositing
funds into retirement accounts or to selected charities. Payroll processing duties
can create a huge burden and unwanted stress for small business owners and can
be overwhelming for large businesses.

A missed deadline or incorrect filing of taxes can result in fines or jail time. To
avoid these issues, small, middle-sized, and large businesses can all benefit
from using payroll systems .For small businesses, payroll system software can
mitigate errors in the payroll process and reduce the amount of effort involved
in calculating employee hours, wages, and tax withholdings. Payroll software is
easy to use and often times very affordable for small businesses. In some cases,
small businesses may save money by using payroll processing software instead
of other alternatives..

However, doing this project has been a good boost to our confidence as the
future IT member of our global village. Payroll seems simple at its core, but
becomes complicated because of the various deductions that come into play.
Payroll seems simple at its core, but becomes complicated because of the
various deductions that come into play. Employers must withhold taxes from
each paycheck and make sure accurate funds are paid to the correct government
agency.

8.1LIMITATION OF PROJECT :

Though we have tried our level best to make our system flawless and user
friendly by using the modern technologies, some minor functional and design
inconsistencies exist in our system due to time constraint, design of prototype
and cost constraints. The limitations of our system are:

1. Constant Archiving - Mountains of information are collected with each


payroll cycle, and most payroll software programs are designed to keep up.

(112)
But, that information needs to be archived continuously. And, this daily
process needs the help of a human hand. In a busy operation, setting aside
this particular slice of time in a workday can become a slight hassle.
2. Limited Access - In most instances, payroll software is loaded onto one
computer and that data can only be accessed from that machine. This can be
a hassle, especially if the payroll processing computer goes off the rails. The
result could be that whole payroll process goes with it, which can cause
headaches throughout the business.
3. Added Weight to Overhead - Implementing payroll software may also call
for a fulltime employee to take on the responsibilities of doing payroll in-
house. With an added employee comes the cost of an additional salary and
benefits. Also to be considered is the cost of technical support when the
inevitable software glitches occur.
4. Risk of Under withholding - The Internal Revenue Service notes that some
payroll software systems are unable to distinguish additional voluntary
withholding amounts from regular withholding when calculating catch-up
withholding for the current tax year. This kind of glitch does not apply to all
payroll software programs, but if not identified or accounted for, a business
can be fined for underwith holding.
5. Security Concerns - Since online payroll services rely on a third party to
process and store payroll information, sensitive information about employees
and the hours that they work doesn’t remain solely within the walls of one’s
workplace. In an ideal world, all online payroll services would remain very
secure and be guaranteed against leaks, but this may not always be the case.
Before working with a vendor, be sure to ask about security measures.
6. Potential for Extra Charges - If you’re not converting all your HR
processes to an online platform, you may find yourself paying for some
unnecessary services. Some payroll vendors package their offerings,
potentially giving you access to services currently handled by other third

(113)
parties or that you manage in house using other systems. There may also be
extra charges for things like report generation or support services.

Payroll processing software programs have their limitations, but they also have
their benefits. The technology pros as WiseGeek.org point out the fact that
payroll processing software helps to streamline the entire payroll process for a
business. What's more, using payroll processing software enables a company to
not only calculate wages due to employees, but also helps a business organize
and archive important records. Even such things as reimbursing employees for
expenses may be easier when payroll software is used.

8.2DIFFICULTIES ENCOUNTERED

Some of the major challenges in managing could be as follows:


1. Payroll System Management
A disciplined framework is required to manage an system in an organization. It
requires the association to work off one all-inclusive strategy separated into
applicable parts and regions of obligation. The administration duty at different
levels needs to comprehend the contracting; estimation advancement and
examination process great and apply it reliably. Besides the executives needs to
value that exhibition the board isn't an occasion yet something that is overseen
day by day however recorded and revealed at specific occasions through
appraisals and reviews.
2. Lack of Alignment :
Because of several organizational processes being created in isolation this
challenge is the absence of alignment. By various groups of people with
different frameworks being used it developed a link between budgeting,
operational planning and Strategy development. The lacks of alignment has in
performance management system between organizational delivery, individual

(114)
performance and departmental performance thus all frameworks default back to
money related estimations.

3. Managing poor performance :


The poor performance management is generally consider as reactive action, yet
much of the time it is deferred and along these lines transforms into an
exchange that is hard to make significant. Another reason for which it cannot
manage the poor performance on time is the lack of collection of required
measurement data and evidence and valid measurements.
4. Leadership and Management commitment:
To deliver a comprehensive performance management system management and
Leadership challenges has a large effect on aligning and integrating a
management system. For achieving a workable performance system to perform
success the understanding and commitment of management and leadership are
required.
5. Lack of Measurements:
In the organization at much level where poor measures are created and in much
of the time targets are set yet no pertinent measure is set up this challenge can
occur. In different cases no information can be gathered or is kept as proof to
follow performance.

(115)
8.3FUTURE ENHANCEMENT :
Our system is developed based on demand of user’s satisfaction and facilities.
In our system we have used the modern web technologies to make our system
fast, convenient and efficient for all of the personnel mentioned. Due to time
and cost constraint it was not possible to fulfill all requirements and
functionalities those were planned. But in future these planned functionalities
and more improvement will be possible to pursue. The functionalities to be
implemented are :

 More Accessible Payroll Solutions :


People working from home are making up a greater percentage of the
workforce. Many payroll professionals work on location mainly because that's
where their payroll software is housed. With new technology advances, payroll
data entry can be done from anywhere, so why not from home? To do this, all
you need is an Internet connection and a Web browser. Using a Web-based
payroll solution has many advantages. By working with a Web browser, users
don't have to worry about loading software onto their computers. Instead, a Web
server delivers logic and data required to process payroll to you. Payroll
professionals can work at home or spread out the processing to multiple
locations. That means offices in Denver, Dallas, and Seattle can all process their
own payroll, helping to eliminate check distribution problems, correction of
lastminute time entries and setup issues. Because the Web-server is managed
centrally by the IT staff -- either a home office if using an in-house solution or
by the vendor if using an outsourced solution-- IT resources are usually
reduced. There are no client computers to update or fix, and because the payroll
system runs on a Web server, only the server needs to be updated and
maintained.

(116)
 Paperless Payroll :
Sometimes distributing the payroll process can cause difficulties with actually
delivering paychecks to employees. Many employees electronically transfer
funds directly into their bank accounts, but some employees do not have bank
accounts. According to some estimates, 65 percent of the population are "un-
banked" workers, some of whom opt for paper checks and often pay high
cashing fees as a result. Recently, as an alternative to checks, payroll cards
(sometimes called stored-value-cards) have helped to alleviate some of the
problems for these "un-banked" workers. Funds are electronically transferred to
an employee's payroll card account instead of a checking account. Fees and
rules for these cards vary widely, making it difficult to know which card offers
the most value for an organization and its employees. As with most
technologies, this industry will also be transformed in coming years. Smart-card
technologycards with electronic chips embedded in them-will offer more value
to the card holder but also a greater threat to personal information. For example,
the credit industry is already examining how to use payment, account balance
and purchasing habit information to learn more about the card holder. This
information may help supplement poor credit score information with "living"
financial information.

 Workflow and Automation :


Automation will step up productivity by allowing you to electronically perform
tasks previously done on paper. For example, managers typically fill out
paperwork, requesting a salary increase for their outstanding employee. This
paperwork may go through a series of manager approvals before it is changed in
the payroll system. Managers therefore have to deal with filling out and tracking
the paperwork. In addition, payroll professionals must manually enter the salary
changes into the payroll system. Workflow automation will save organizations
enormous resources for such business processes. Instead of filling out endless

(117)
paperwork, managers can simply open their payroll console and initiate a salary
increase process. They can select the employee from a company list and
electronically fill out the appropriate forms, based on the current information in
the payroll system.Managers fill in the new salary field and attach the most
recent employee performance review documents to the workflow record.

 More Interactive Payroll Technology :


So how do managers and employees interact with the payroll system in the first
place? In the future, payroll and HR systems won’t be limited to payroll and HR
professionals, another reason why payroll technology will become more
accessible via the Web. In the future, managers and employees will be
integrated into payroll technology.

(118)
9.BIBLIOGRAPHY
&
REFERENCES

(119)
BIBLIOGRAPHY AND REFERENCES

9.1REFERENCE BOOKS :

1) C++ in One Hour a Day, Sams Teach Yourself 8th Edition

2) C++ Primer

3) Object Oriented Programming In C++

4) C++17 — The Complete Guide: First Edition

5) SQL Programming

6) MySQL Novice To Ninja

9.2OTHER REFERENCES :

1) www.123seminarsonly.com

2) www.freeprojectz.com

3) www.lnu.diva-portal.org

4) www.slideshare.net

5) www.irjet.net

6) www.bestengineeringprojects.com

(120)

You might also like