Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 66

Table of Contents

Table of Contents 2
Problem Statement 3
Functional Requirements 5
Non-Functional Requirements 6
Pseudocode 7
Technical Documentation 24
Program Code (C/C++) 25
File Design 39
White Box Testing 40
Results of Whitebox Testing 42
Functional Testing 45
User Documentation 53
Problem Statement

Rashelia Ramdeen Transport & General Contractors, is a well-known business, for civil and
infrastructural works and the supply of a wide variety of aggregates & building materials within
the construction and civil engineering industry of Trinidad & Tobago.

The company, being experienced and well established nationwide, has a numerous amount of job
offers and vacancies towards the public each year, due to the expansion of the construction &
infrastructural sector of the country.

The company currently comprises of 150 employees. The management have been recording the
employees’ payroll and generating the employees’ pay slips manually, by the use of a pen, paper
and calculator.

The staff of the accounting department, have reported to management that the present manual
style of processing & analyzing the employees’ payroll data has become very tedious and
frustrating, as they must physically hand-write each persons’ credentials on every pay slip sheet
and make calculations, for each working week.

This method is also time-consuming, which may lead to a delay with the processing of pay slips
and also errors may be prevalent and can produce inconsistent information. 

To create a possible solution for this problem, the management and staff of Rashelia Ramdeen
Transport & General Contractors would like an efficient, computerized system of processing and
analyzing the various data from these employees, for mass production of their pay slips at the
end of working periods. 
Sample Pay Slip:
Functional Requirements

A new innovative program must be developed in the C/C++ Programming Language to


fulfill the following functional requirements, for an efficient payroll system:

● Store the employees’ names, ages, date of pay, National Insurance ID, Pay As You Earn
ID, Health Surcharge IDs & values, hours & days worked, hourly rate of pay and their
respective gross & net salary amounts earned, in an employee structure array and an
“Add Employee” procedure to prompt the user for this data should be developed.

● Calculate the:

⮚ “Gross Salary” by multiplying the ‘hourly rate of pay’ by the amount of ‘hours worked’
and then multiplying the product by the ‘days worked’.
⮚ “Net Salary” after deducting the following values, from the employees’ “Gross Salary”:

● National Insurance (NIB)


● Pay As You Earn (PAYE)
● Health Surcharge

● Export the Employees’ data from the array to a text file called “Employees’ Database”
and add a function to Import data from the text file to store into the program’s array, for
viewing.

● Develop a function, to display all of the employees’ records within the database of the
program, precisely and as well as another procedure to sort these records by the
employees’ “Net Salary” values, in descending order, via using the “Bubble Sort”
method.
Non-Functional Requirements

To enhance the design of the program, the following quality system attributes, such as its
performance and usability are included within the program:

● User Friendly Menu Driven Interface:


- The program should be designed in a menu-driven format by using the “Switch-Case”
function, displaying the various options for the user to easily choose from.

● Data Validation:
- As the program prompts the user for data, the inputs must be verified, by procedures to
ensure that it meets the desired output. This is to guarantee that all the information in the
employees’ database is accurate and precisely entered by the user.

● Environment of the Program:


- A suitable welcome and exit screen must be displayed as well as transitioning from one
screen to the other as the program prompts the user for data. This should be accomplished
by the use of the “System” – ‘cls’ and ‘pause’ functions. The text and background of the
program should also be modified with the use of the “System” – ‘color’ function, these
attributes will enhance the design of the program and increase the friendly usability.
Pseudocode

DECLARE MAX_EMPS 50

Narrative Description:
- The two structures below are the pay date struct which stores the information of day,
month and year in an array and the employee struct, which stores the employee’s data in
an array, to be declared.
STRUCT Pay Date
int day
int month
int year
STRUCT Employee
char fname[30]
char lname[30]
int hrs
int days
int rate
int insuranceNo
int insuranceValue
int payeValue
int payeNo
int healthValue
int healthNo
int grossSalary
int netSalary

DECLARE employee emp[MAX_EMPS]


DECLARE int num_emps = 0
Narrative Description:
- It is a procedure to add a new employee to the payroll database by prompting the user
for the employee's first & last name, hours & days worked, hourly pay rate, NIB, PAYE
& Health Surcharge numbers, value for deduction and as well as the date in which the
employee was paid, with various validation. This function also contains a validation in
the beginning,to ensure that the maximum numbers of employees in the array have not
been reached, and if so, it outputs an error message, by the use of an "if" condition */

FUNCTION add_employee()
BEGIN
system ("cls")
system ("color 4E")

if (num_emps == MAX_EMPS)
then
OUTPUT ("Error: maximum number of employees reached")
end if

DECLARE char tempFname [31]


DECLARE char tempLname [31]
DECLARE int tempHrs = 0
DECLARE int tempDays = 0
DECLARE int tempRate = 0
DECLARE char tempNib[16]
DECLARE char tempPaye[16]
DECLARE char tempHealth[16]
DECLARE char valid

OUTPUT ("SECTION 2 - Employee's Date of Pay")


OUTPUT ("Please ensure that the date in which the Employee had received his/ her salary")
OUTPUT ("is precise and as well, the format of the date,")
OUTPUT ("should be stated correctly (DD/MM/YYYY),thank you!")

OUTPUT("Enter date, in which the Salary was received , in the format: DD/MM/YYYY ")
DECLARE int day, month, year
while (INPUT("%d/%d/%d", &day, &month, &year)
!= 3 || day < 1 || day > 31 || month < 1 || month > 12|| year < 1900 || year > 2050)
do
OUTPUT ("Error: invalid date format. Please enter the date in the format
DD/MM/YYYY: ")
DECLARE c
while ((c = getchar()) != '' && c != EOF)

emp[num_emps].date.day = day
emp[num_emps].date.month = month
emp[num_emps].date.year = year
system ("pause")
system ("cls")

OUTPUT ("SECTION 1 - First & Last Names and Hours & Days Worked")
OUTPUT ("Please ensure that the Employee's First & Last Names ")
OUTPUT ("are spelt correctly and the amount of letters in ")
OUTPUT ("his/her names, should not exceed 30 characters,")
OUTPUT ("as well as their work days and hours, which should not ")
OUTPUT ("exceed seven (7) days, per week or twelve (12) hours, per day.")
OUTPUT ("and their rate of pay should be over minimum wage. thank you!")
DECLARE valid = 'N'
do
OUTPUT("Enter First Name: ")
INPUT("%s", tempFname)

if (strlen(tempFname) > 30)


then
valid = 'N'
OUTPUT("Error: first name must be no more than 30 characters")
else
valid = ‘Y’
endif
while (valid == 'N')
strcpy (emp[num_emps].fname, tempFname)

DECLARE valid = 'N'


do
OUTPUT("Enter Last Name: ")
INPUT("%s", tempLname)

if (strlen(tempLname) > 30)


then
valid = 'N'
OUTPUT("Error: last name must be no more than 30 characters")
else
valid = 'Y'
endif
while (valid == 'N')
strcpy(emp[num_emps].lname, tempLname)
DECLARE valid = 'N'
do
OUTPUT("Enter Hours Worked per Day: )
INPUT("%d", &tempHrs)
if (tempHrs > 12)
then
OUTPUT("Error: Employee's work hours should not be more than twelve (12), per
day!")
OUTPUT("SLAVERY WAS ABOLISHED YEARS AGO!!!")
else
valid = 'Y’
endif
while (valid == 'N')
emp[num_emps].hrs = tempHrs

DECLARE valid = 'N'


do
OUTPUT("Enter Days Worked per Week: ")
INPUT("%d", &tempDays)
if (tempDays > 7)
then
OUTPUT("Error: Employee's work days should not be more than seven (7), per week!")
OUTPUT("WHY DO THEY WORK ON SUNDAYS???")
else
valid = 'Y'
endif

while
(valid == 'N')
emp[num_emps].days = tempDays

DECLARE valid = 'N'


do
OUTPUT("Enter the Hourly Rate of Pay : $")
INPUT("%d", &tempRate)

if (tempRate < 18)


then
OUTPUT("Error: Employee's hourly rate of pay should not be under minimum wage!")
OUTPUT("DO NOT SUFFER D PEOPLE!!!)
else
valid = 'Y'
endif
while
(valid == 'N')
emp[num_emps].rate = tempRate

DECLARE emp[num_emps].grossSalary = emp[num_emps].days * (emp[num_emps].hrs *


emp[num_emps].rate)

DECLARE emp[num_emps].payeValue = 10
DECLARE emp[num_emps].healthValue =
DECLARE emp[num_emps].insuranceValue = 11
system ("pause")

system ("cls")
system ("color 4F")

OUTPUT ("SECTION 2 - National Insurance, Pay As You Earn & Health Surcharge ID#")
OUTPUT ("Please ensure that the Employee's NIB, PAYE & Health Surcharge IDs are")
OUTPUT ("correct and the amount of numbers in")
OUTPUT (" the identification, should not exceed 15 numbers,thank you!")

DECLARE valid = 'N’


do
OUTPUT("Enter NIB number: ")
INPUT("%s", &tempNib)

if (strlen(tempNib) > 15) // check if NIB is more than 15 digits


then
OUTPUT("Error: NIB number must be no more than 15 digits")
else
valid = ‘Y’
endif
while
(valid == 'N')
emp[num_emps].insuranceNo = atol(tempNib)

DECLARE valid = ;N’


do
OUTPUT ("Enter PAYE number: ")
INPUT( "%s", &tempPaye)

if (strlen(tempPaye) > 15)


OUTPUT("Error: PAYE number must be no more than 15 digits")
else
valid = 'Y'
endif
while
(valid == 'N')
emp[num_emps].payeNo = atol(tempPaye)

DECLARE valid = 'N'

do
OUTPUT("Enter Health Surcharge number: ")
INPUT("%s", &tempHealth)
if (strlen(tempHealth) > 15)
then
OUTPUT("Error: Health Surcharge number must be no more than 15 digits")
else
valid = 'Y'
endif
while
(valid == 'N')
emp[num_emps].healthNo = atol(tempHealth)
system ("pause")
system("cls")
system("color 2F")

OUTPUT("SECTION 3 - NIB, PAYE & Health Surcharge Weekly Rates for Deduction")
OUTPUT("Please ensure that the Employee's NIB, PAYE & Health Surcharge values are")
OUTPUT("correct and if the amount stated is not, according to your ")
OUTPUT(" National Insurance Board's Insurance system, feel free to ammend the taxes thank
you!")

DECLARE char response

OUTPUT("Pay As You Earn Rate: $%d", emp[num_emps].payeValue)


OUTPUT("Health Surchage Rate: $%d", emp[num_emps].healthValue)
OUTPUT("NIS Rate: $%d", emp[num_emps].insuranceValue)
OUTPUT("Are these Tax Rates correct? Please enter your response (Y/N):")
INPUT(" %c", &response)

DECLARE int tempTax


if (response == 'N' || response == 'n')
then
OUTPUT("Enter new Pay As You Earn Rate: $")
INPUT("%d", &tempTax)
emp[num_emps].payeValue = tempTax

OUTPUT("Enter new Health Surchage Rate: $")


INPUT("%d", &tempTax)
emp[num_emps].healthValue = tempTax
OUTPUT("Enter new NIS Rate: $")
INPUT("%d", &tempTax)
emp[num_emps].insuranceValue = tempTax

emp[num_emps].netSalary = emp[num_emps].grossSalary - (emp[num_emps].insuranceValue +


emp[num_emps].payeValue + emp[num_emps].healthValue)
else
emp[num_emps].netSalary = emp[num_emps].grossSalary -
(emp[num_emps].insuranceValue + emp[num_emps].payeValue +
emp[num_emps].healthValue);

system("pause")
num_emps++

OUTPUT("Employee added successfully!")


system("pause")
END

Narrative Description:
- This procedure sorts employees by salary in descending order, by the use of a nested
"for"loop condition combined with an "if" statement, which is commonly known as the
"Bubble Sort" function, which is an algorithm that works, by repeatedly swapping the
adjacent elements if they are in the wrong order (descending order).

FUNCTION sort_employees()
BEGIN
system ("cls")
system ("color 42")
DECLARE int i, j
for (i = 0 i < num_emps-1 i++)
do
for (j = 0 j < num_emps-i-1 j++)
do
if (emp[j].netSalary < emp[j+1].netSalary)
then
Employee temp = emp[j]
emp[j] = emp[j+1]
emp[j+1] = temp
endif
OUTPUT("Employees sorted by total salary")
system ("pause")
END

Narrative Description:
- This procedure, displays all of the employees which were stored in the employees’ array.

FUNCTION display_all_employees()
BEGIN
system ("cls")
system ("color 24")
DECLARE int i
for (i = 0 i < num_emps i++)
do
OUTPUT("Employee #%d", i + 1)
OUTPUT("Pay Date : %02d/%02d/%04d", emp[i].date.day, emp[i].date.month,
emp[i].date.year)
OUTPUT("First Name: %s", emp[i].fname)
OUTPUT("Last Name : %s", emp[i].lname)
OUTPUT("Gross Salary : $%d", emp[i].grossSalary)
OUTPUT("NIB Number : #%d", emp[i].insuranceNo)
OUTPUT("NIB Value Deduction : $%d", emp[i].insuranceValue)
OUTPUT("PAYE Number : #%d", emp[i].payeNo)
OUTPUT("PAYE Value Deduction : $%d", emp[i].payeValue)
OUTPUT("Health Surcharge Number : #%d", emp[i].healthNo)
OUTPUT("Health Surcharge Value Deduction : $%d", emp[i].healthValue)
OUTPUT("Total Net Salary : $%d", emp[i].netSalary)
system ("pause")
END
Narrative Description:
- This procedure takes all of the data entered by the user for the employees' records and
'sends or 'exports them to a .txt file named "Employee_Database.txt" The file is called by
the function "FILE *outputFile = fopen (name.txt/w) where the "w" variable opens the
file in write mode. It also includes a validation if the file could not be opened and prints
an error message

FUNCTION export_employees_to_file()
BEGIN
system ("color 4F")
FILE *outputFile = fopen("Employee_Database.txt", "w")

if (outputFile == NULL)
then
OUTPUT("Error: could not open file for writing")
return
OUTPUT(outputFile, "%d", num_emps)
for (int i = 0 i < num_emps i++)
do
OUTPUT(outputFile, "%s", emp[i].fname)
OUTPUT(outputFile, "%s", emp[i].lname)
OUTPUT(outputFile, "%d", emp[i].hrs)
OUTPUT(outputFile, "%d", emp[i].days)
OUTPUT(outputFile, "%d", emp[i].rate)
OUTPUT(outputFile, "%d", emp[i].insuranceNo)
OUTPUT(outputFile, "%d", emp[i].insuranceValue)
OUTPUT(outputFile, "%d", emp[i].payeNo)
OUTPUT(outputFile, "%d", emp[i].payeValue)
OUTPUT(outputFile, "%d", emp[i].healthNo)
OUTPUT(outputFile, "%d", emp[i].healthValue)
OUTPUT(outputFile, "%d", emp[i].grossSalary)
OUTPUT(outputFile, "%d", emp[i].netSalary)
OUTPUT(outputFile, "%02d/%02d/%04d", emp[i].date.day, emp[i].date.month,
emp[i].date.year)
OUTPUT(outputFile, "")
CLOSE (outputFile)

OUTPUT("Exported %d records to file %s", num_emps, "Employee_Database.txt")


END

Narrative Description:
- This procedure retrieves the data entered by the user from the employees' .txt file named
"Employee_Database.txt" and the program 'receives or 'imports them this file, to store
the data into the employee array. The file is called by the function "FILE *inputFile =
fopen (name.txt/w) where the "w" variable opens the file in write mode. It also includes a
validation if the file could not be opened and prints an error message

FUNCTION import_employees_from_file()
BEGIN
system ("color 42")
FILE *inputFile = fopen("Employee_Database.txt", "r")
if (inputFile == NULL) {
OUTPUT("Error: could not open file for reading")
return
DECLARE int num_imported = 0
INPUT(inputFile, "%d", &num_imported)

for (int x = 0 x < num_imported x++)


do
INPUT(inputFile, "%s", emp[x].fname)
INPUT(inputFile, "%s", emp[x].lname)
INPUT(inputFile, "%d", &emp[x].hrs)
INPUT(inputFile, "%d", &emp[x].days)
INPUT(inputFile, "%d", &emp[x].rate)
INPUT(inputFile, "%d", &emp[x].insuranceNo)
INPUT(inputFile, "%d", &emp[x].insuranceValue)
INPUT(inputFile, "%d", &emp[x].payeNo)
INPUT(inputFile, "%d", &emp[x].payeValue)
INPUT(inputFile, "%d", &emp[x].healthNo)
INPUT(inputFile, "%d", &emp[x].healthValue)
INPUT(inputFile, "%d", &emp[x].grossSalary)
INPUT(inputFile, "%d", &emp[x].netSalary)
INPUT(inputFile, "%d/%d/%d", &emp[x].date.day, &emp[x].date.month,
&emp[x].date.year)
CLOSE (inputFile)
num_emps = num_imported

OUTPUT("Imported %d records from file %s", num_imported, "Employee_Database.txt")


END
Narrative Description:
This procedure displays a list of options for the user to select from, in a menu-driven style
format. It uses the 'Switch-Case' statement, which is a control-flow procedure to excecute the
block of code from multiple 'cases' from a matching condition (choices), similarly to the 'if-else'
conditional statement.

FUNCTION main_menu()
BEGIN
system ("cls")
system ("color 47")
DECLARE int choice
while (1)

system("cls")
OUTPUT("MAIN MENU")
OUTPUT("******************************************")
OUTPUT("1. Add New Employee")
OUTPUT("******************************************")
OUTPUT("2. Sort Employees by Total Salary")
OUTPUT("******************************************")
OUTPUT("3. Display All Employees")
OUTPUT("******************************************")
OUTPUT("4. Export Employees")
OUTPUT("******************************************")
OUTPUT("5. Import Employees")
OUTPUT("******************************************")
OUTPUT("6. Exit")
OUTPUT("******************************************")
OUTPUT("Please Enter your choice: ")
INPUT("%d", &choice)
do
switch (choice)
{
case 1:
add_employee()
break
case 2:
sort_employees()
break
case 3:
display_all_employees()
break
case 4:
export_employees_to_file()
break
case 5:
import_employees_from_file()
break
case 6:
goodbye()
return
else
default:
OUTPUT("Invalid choice")
system ("pause")
BEGIN of main
DECLARE int main (void)
welcome()
main_menu()
END of main
Technical Documentation

The following portrays a Hierarchical Input Process Output Chart (HIPO), which organizes the
payroll program’s system modules (tasks) into a hierarchy (levels), according to the “Top-
Down” principle of problem-solving:
Program Code (C/C++)
File Design
Variable Name Data Length Description Sample Data
Type
Employee Structure Array
fname char 30 Stores the employee’s first name John
in the array
lname char 30 Stores the employee’s last name Dickinson
in the array
hrs int 2 Stores the number of days worked 8
by the employee in the array
days int 1 Stores the number of days worked 5
by the employee in the array
rate int 2 Stores the hourly pay rate of 40
employee in the array
insuranceNo int 16 Stores employee’s NIS ID in the 11254
array
payeNo int 16 Stores employee’s PAYE ID in 15425
the array
healthNo int 16 Stores employee’s Health 14525
Surcharge ID in the array
insuranceValue int 4 Stores employee’s NIS Deduction 11
in the array
payeValue int 4 Stores employee’s PAYE 10
Deduction in the array
healthValue int 4 Stores employee’s Health 5
Surcharge Deduction in the array
grossSalary int 4 Stores employee’s Gross Salary 1550
value (before deduction of taxes)
in the array
netSalary int 4 Stores employee’s Net Salary 1524
value (after deduction of taxes) in
the array
Pay Date Structure Array
PayDate date int 10 Stores the date in which the 11/11/2022
(2+2+4+ employee was paid in the format
3) DD/MM/YYYY, with the day,
month & year separated by
slashes
day int 2 Stores the day in which the 11
employee was paid
month int 2 Stores the month in which the 11
employee was paid
year int 4 Stores the year in which the 2022
employee was paid

White Box Testing

Employee Structure Array

Variable Data Length Test Test Data Results


Name Type
Expected Actual

first_name char 30 Normal John Accepted Accepted


string Extreme abcdefghijklmnopqrstuvwxyzabcd Accepted Accepted
Abnormal abcdefghijklmnopqrstuvwxyzabcde Rejected Rejected

last_name char 30 Normal Dickson Accepted Accepted


string Extreme abcdefghijklmnopqrstuvwxyzabcd Accepted Accepted
Abnormal abcdefghijklmnopqrstuvwxyzabcde Rejected Rejected

hrs int 2 Normal 8 Accepted Accepted


Extreme 12 Accepted Accepted
Abnormal 13 Rejected Rejected

days int 2 Normal 5 Accepted Accepted


Extreme 7 Accepted Accepted
Abnormal 8 Rejected Rejected

rate int 2 Normal 22 Accepted Accepted


Extreme 18 Accepted Accepted
Abnormal 17 Rejected Rejected

insuranceNo int 16 Normal 11254 Accepted Accepted


Extreme 123456789123456 Accepted Accepted
Abnormal 1234567891234567 Rejected Rejected

payeNo int 16 Normal 15425 Accepted Accepted


Extreme 123456789123456 Accepted Accepted
Abnormal 1234567891234567 Rejected Rejected

healthNo int 16 Normal 14525 Accepted Accepted


Extreme 123456789123456 Accepted Accepted
Abnormal 1234567891234567 Rejected Rejected

insuranceValu int 4 Normal 11 - -


e
Extreme - - -
Abnormal - - -

payeValue int 4 Normal 10 - -


Extreme - - -
Abnormal - - -

healthValue int 4 Normal 5 - -


Extreme - - -
Abnormal - - -

Pay Date Structure Array

Variable Data Length Test Test Data Results


Name Type
Expected Actual

day int 2 Normal 11 Accepted Accepted


Extreme 31 Accepted Accepted
Abnormal 32 Rejected Rejected

month int 2 Normal 11 Accepted Accepted


Extreme 12 Accepted Accepted
Abnormal 13 Rejected Rejected

year int 4 Normal 2022 Accepted Accepted


Extreme 2050 Accepted Accepted
Abnormal 2051 Rejected Rejected
Results of Whitebox Testing

Date Format Test

Normal Data Test - Accepted

Extreme Data Test - Accepted

Abnormal Data Test - Rejected


First & Last Names, Hours & Days Worked and Pay Rate Tests

Normal Data Test - Accepted

Extreme Data Test - Accepted


Abnormal Data Test - Rejected
NIB, PAYE & Health Surcharge ID Numbers Lenght Tests;

Normal Data Test - Accepted

Extreme Data Test - Accepted

Abnormal Data Test - Rejected

Functional Testing
Add Employee Function:
Test 1: Adds Employee’s details to the employee array structure, with user-defined criteria:
Display All Employees:
Test 2: Displays all of the employee which were added to the system and currently stored in the
program
Sort Employees by Pay Value:
Test 2: Sorts all of the employees who have been added to the system accordingly to their net
salary value in descending order by the use of a bubble sort.

Before:
After:
Export Data to External File:
Test 3: This function takes all of the data entered by the user for the employees' records and
'sends or 'exports them to a .txt file named "Employee_Database.txt"
Before:
After:

User Documentation

How to add an Employee to be stored into the array:

1. From the main menu, type the number ‘1’ and then press ‘enter’
- Section 1: Salary Date
2. Enter the Employee’s pay date in the format DD/MM/YYYY, followed by clicking
‘enter’
- Section 2: Name, Time Worked & Pay Rate
3. Enter the Employee’s first name, followed by clicking ‘enter’
4. Enter the Employee’s last name, followed by clicking ‘enter’
5. Enter the Employee’s hours worked, followed by clicking ‘enter’
6. Enter the Employee’s days worked, followed by clicking ‘enter’
7. Enter the Employee’s pay rate, followed by clicking ‘enter’
- Section 3: Tax Identification Numbers
8. Enter the Employee’s National Insurance ID, followed by clicking ‘enter’
9. Enter the Employee’s Pay As You Earn ID, followed by clicking ‘enter’
10. Enter the Employee’s Health Surcharge ID, followed by clicking ‘enter’
- Section 4: Tax Deductions
11. Review the tax deduction values and if false, amend the values:
12. Enter the Employee’s updated National Insurance Deduction Value followed by clicking
‘enter’
13. Enter the Employee’s updated Pay As You Earn Deduction, followed by clicking ‘enter’
14. Enter the Employee’s updated Health Surcharge Deduction, followed by clicking ‘enter’
How to Display all Employees’ records which are stored in the array:

1. From the Main Menu’s options, enter the digit ‘2.’


2. Press any key, to return to the main menu.
How to Sort the Employees’ Records by salary value in descending order:
1. After the employees’ records are stored within the program, type any key to return to the
main menu:
2. From the main menu, enter the digit ‘2’ to sort the records.
3. press any key to return to the main menu and select the digit ‘3’ to display all the records
and ensure that it was sorted.
How to Export the Records to an External Text File:
1. Type any key to exit to the main menu.
2. From the main menu, type the digit ‘4’ followed by enter.
3. A validation message will be displayed.
4. Open the file “Employe_Databse.txt” to ensure records were exported.
How to Import the Records to an External Text File:
1. Type any key to exit to the main menu.
2. From the main menu, type the digit ‘5’ followed by enter.
3. A validation message will be displayed.
4. press any key to return to the main menu and select the digit ‘3’ to display all the records
and ensure that it was imported.

You might also like