Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

JAVA programming through eclipse. 2 Write a payroll processing program. Input wi

ID: 3605707 • Letter: J

Question

JAVA programming through eclipse. 2

Write a payroll processing program. Input will be from a file called “weeklyData.txt”. Each line in the file contains information about one employee. Each item is separated by a space. The items are, in order:

First Name

Last Name

Hourly wage rate (decimal)

Hours

worked (decimal)

# of dependents (whole number)

% of gross withheld for retirement (whole number, ranges from 0 to 10)

Amount donated to United Way (dollar amount)

For each employee listed in this file, read the above data and produce the following detail data:

Regular hours worked and overtime hours worked

Regular pay and overtime pay and gross pay

Pension contribution, United Way contribution

Taxable income

Insurance deduction and Income tax deduction

Net pay

Calculations:

Overtime hours are all hours over 40, the rest are regular hours

Regular pay is the regular hours times the wage rate

Overtime pay is 1.5 times the overtime hours times the wage rate

Gross pay is regular pay plus overtime pay

Retirement is the percentage of the gross

United Way contribution is whatever was read

Taxable income is gross minus both the retirement and united way contributions

Insurance is determined by the number of dependents:

0 is $25.19

1 is $39.02

2 or more is $50.63

Income tax is calculated on taxable income as follows.

The first $300 dollars is not taxed

The next $500 is taxed at 5% of gross

Everything over $800 is taxed at 8.5% of gross

Net pay is gross pay minus the two deductions (retirement, united way, tax and insurance)

The detail output should be to a file called “payroll.txt” formatted nicely, and include the three input values as well as all calculated values. Separate each employee’s detail data in the file as you see fit.

Here are two lines of a sample input file

Kelvin Fowler 37.45 40.00 1

Shea Torres 31.19 49.75 4

and suggested output:

Pay stub for Fowler, Kelvin(Dependents: 1)

Hours: 40.00 (regular: 40.00 Overtime: 0.00)

Hourly Rate: $37.45

Gross pay: $149

8.00 (Regular: $1498.00 Overtime: $0.00)

Deductions:

Insurance: $39.02

Taxes: $84.33

Total Deductions: $123.35

Net Pay: $1374.65

*************************

Pay stub for Torres, Shea (Dependents: 4)

Hours: 49.75 (regular: 40.00 Overtime: 9.75)

Hourly Rate: $31.19

Gross pay: $1703.75 (Regular: $1247.60 Overtime: $456.15)Deductions:

Insurance: $50.63

Taxes: $101.82

Total Deductions: $152.45

Net Pay: $1551.30

*************************

Summary data should include the following (and

should be printed at the end of the detail data in the

output file, as well as to the screen.

# of employees

Total payroll (sum of all gross pay), and of that how much was overtime

Total hours worked, and of that how many were overtime hours

Total retirement contributions

Total United Way contributions

Total insurance premiums

Total taxes withheld

Sample summary from detail data above:

# of employees:    2

Total hours: 89.75

Overtime hours: 9.75

Total gross pay: $3201.75

Overtime pay: $456.15

Total insurance withheld: $89.65

Taxes

withheld: $186.1

Explanation / Answer

import java.io.*; //import the input/output classes so information can be read into the program

import java.text.DecimalFormat; //import decimal format so that the output can be formatted properly.

public class payroll {

    // declare class

    public static void main(String[] args) throws IOException {

        //declare variables

        String employeeName, tempVariable; //tempVariable will be used to store information until it can be parsed into strings

      double hourlyRate, hoursWorked, payroll;

        BufferedReader myIn= new BufferedReader(new InputStreamReader(System.in)); //create stream reader

       

        //get employee name

        System.out.print("Enter the Employee Name:");

        employeeName = myIn.readLine(); // Read input into employee name

        //get hourly rate

        System.out.print("Enter Hourly Rate: ");

        tempVariable = myIn.readLine(); //read string input into the temporary holding area

        hourlyRate = Double.parseDouble(tempVariable); //translate the string into a double so that calculations can be performed

        //get hours worked

        System.out.print("Enter Hours Worked:");

        tempVariable = myIn.readLine();//read string input into the temporary holding area

        hoursWorked = Double.parseDouble(tempVariable);//translate the string into a double

        //calculate the total payroll

        payroll = (double) hourlyRate * hoursWorked;

        DecimalFormat money = new DecimalFormat("$0.00"); //create a format for currency to be displayed properly.

        //display payroll information

        System.out.println("The payroll for " + employeeName);

        System.out.println(money.format(payroll)); //display payroll information using the currency format.

    }

}