Problem: Write a Python program that reads from an input file named employees.txt some employee information and produces a salaries report on screen. The input file employees.txt has a number of data lines. Each data line in the input file contains information about one employee including: first name, last name, job code (an integer between 1 and 4), and the number of days worked. The following is an example of what the input file employees.txt can contain: Ali Al-Harthi 3 22 Laila Al-Busaidi 4 25 Salim Al-Hajri 21s Badria Al-Sinani 19 Abir Al-Hinai 1 15 Your program should produce a salaries report on screen using the format shown below. Enter input file name: employee.txt Name Job Code Days Worked Salary (OMR) Ali Al-Harthi 22 660.000 Laila Al-Busaidi 4 25 637.500 Abir Al-Hinai 1 15 600.000 Number of faulty records = 2 Number of valid records = 3 Average salary = 632.500 The salary of each employee is equal to the number of days worked multiplied by the daily pay rate. The daily pay rate depends on the job code as follows. Job Code Daily Pay Rat (RO) 40 35.5 30 4 25.5 If a job code is not between 1 and 4, then your program should consider the data set as a faulty record. The program must calculate the number of faulty records, the

EBK JAVA PROGRAMMING
9th Edition
ISBN:9781337671385
Author:FARRELL
Publisher:FARRELL
Chapter13: File Input And Output
Section: Chapter Questions
Problem 10PE
icon
Related questions
Topic Video
Question
Problem: Write a Python program that
reads from an input file named employees.txt
some employee information and produces a salaries report on
screen.
The input file
employees.txt has a number of data lines. Each data line in the input file contains
information about one employee including: first name, last name, job code (an integer
between 1 and 4), and the number of days worked. The following is an example of what
the input file employees.txt can contain:
Ali Al-Harthi
22
Laila Al-Busaidi
4
25
Salim Al-Hajri
Badria Al-Sinani
2
21s
19
Abir Al-Hinai
1
15
Your program should produce a salaries report on screen using the format shown below.
Enter input file name: employee.txt
Name
Job Code
Days Worked
Salary (OMR)
Ali Al-Harthi
3
22
660.000
Laila Al-Busaidi
4
25
637.500
Abir Al-Hinai
15
600.000
Number of faulty records = 2
Number of valid records = 3
Average salary
= 632.500
The salary of each employee is equal to the number of days worked multiplied by the
daily pay rate. The daily pay rate depends on the job code as follows.
Job Code
Daily Pay Rate
(RO)
1
40
2
35.5
30
4
25.5
If a job code is not between 1 and 4, then your program should consider the data set
as
a faulty record. The program must
calculate the number of faulty records, the
number of valid records and the average salary, and display these information at the
end of the report as shown in the above sample report.
Your program must use the following functions:
printHeader (..) : prints the two lines header of the
table shown in the sample
output
Transcribed Image Text:Problem: Write a Python program that reads from an input file named employees.txt some employee information and produces a salaries report on screen. The input file employees.txt has a number of data lines. Each data line in the input file contains information about one employee including: first name, last name, job code (an integer between 1 and 4), and the number of days worked. The following is an example of what the input file employees.txt can contain: Ali Al-Harthi 22 Laila Al-Busaidi 4 25 Salim Al-Hajri Badria Al-Sinani 2 21s 19 Abir Al-Hinai 1 15 Your program should produce a salaries report on screen using the format shown below. Enter input file name: employee.txt Name Job Code Days Worked Salary (OMR) Ali Al-Harthi 3 22 660.000 Laila Al-Busaidi 4 25 637.500 Abir Al-Hinai 15 600.000 Number of faulty records = 2 Number of valid records = 3 Average salary = 632.500 The salary of each employee is equal to the number of days worked multiplied by the daily pay rate. The daily pay rate depends on the job code as follows. Job Code Daily Pay Rate (RO) 1 40 2 35.5 30 4 25.5 If a job code is not between 1 and 4, then your program should consider the data set as a faulty record. The program must calculate the number of faulty records, the number of valid records and the average salary, and display these information at the end of the report as shown in the above sample report. Your program must use the following functions: printHeader (..) : prints the two lines header of the table shown in the sample output
getData (.) : receives
a string representing line of
read from file.
text
It
validates and returns name, job code and days worked, and
Boolean value of
a
True of the line contains valid data or False if the line contains faulty data.
computeSalary (.) : receives the job code and days worked and computes and returns
the employee salary
main () :Opens input file
for
reading,
reads
data
from
file,
calls
various
functions and prints results
Your program must include code to handle at least two exceptions.
Transcribed Image Text:getData (.) : receives a string representing line of read from file. text It validates and returns name, job code and days worked, and Boolean value of a True of the line contains valid data or False if the line contains faulty data. computeSalary (.) : receives the job code and days worked and computes and returns the employee salary main () :Opens input file for reading, reads data from file, calls various functions and prints results Your program must include code to handle at least two exceptions.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 3 images

Blurred answer
Knowledge Booster
Instruction Format
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT