accept the file name from command argument list: Scanner input=new Scanner(new F
ID: 3852314 • Letter: A
Question
accept the file name from command argument list: Scanner input=new Scanner(new File(args[0]));
Provided Employee File:
public abstract class Employee {
private String firstName;
private String lastName;
private static int employeeID=100;
public Employee(String firstName, String lastName) {
setFirstName(firstName);
setLastName(lastName);
employeeID++;
}
public void setFirstName(String firstName){
this.firstName=firstName;
}
public String getFirstName(){
return firstName;
}
public void setLastName(String lastName){
this.lastName=lastName;
}
public String getLastName(){
return lastName;
}
public int getEmplyeeID(){
return employeeID;
}
public String toString(){
return String.format("%20s%20s", firstName, lastName);
}
public abstract double earnings();
}
Provided payroll2.txt file:
#Steve, Davis, 2000
*John, Kanet, 800, 7000, 0.10
@Thomas, Hill,20,50
*Lisa, Green,800,6000,0.10
*Chasidy , Funderburk,1000,5000,0.08
@Kayleigh , Bertrand, 25, 45
*Zane, Eckhoff,1800,900, 0.09
@Teressa, Bitterman, 15,35
*Yuri, Viera, 600, 5000,0.10
Explanation / Answer
package com.emp;
public abstract class Employee {
private String firstName;
private String lastName;
private static int employeeID = 100;
public Employee(String firstName, String lastName) {
setFirstName(firstName);
setLastName(lastName);
employeeID++;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getFirstName() {
return firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getLastName() {
return lastName;
}
public int getEmplyeeID() {
return employeeID;
}
public String toString() {
return String.format("%s %s %.2f", firstName, lastName, earnings());
}
public abstract double earnings();
}
package com.emp;
public class Manager extends Employee {
private double weeklySalary;
/**
* @param firstName
* @param lastName
* @param employeeID
* @param weeklySalary
*/
public Manager(String firstName, String lastName, double weeklySalary) {
super(firstName, lastName);
this.weeklySalary = weeklySalary;
}
/**
* @return the weeklySalary
*/
public double getWeeklySalary() {
return weeklySalary;
}
/**
* @param weeklySalary
* the weeklySalary to set
*/
public void setWeeklySalary(double weeklySalary) {
this.weeklySalary = weeklySalary;
}
@Override
public double earnings() {
// TODO Auto-generated method stub
return getWeeklySalary();
}
}
package com.emp;
public class CommissionEmployee extends Employee {
double weeklySalary, commissionRate, weeklySales;
/**
* @param firstName
* @param lastName
* @param employeeID
* @param weeklySalary
* @param commissionRate
* @param weeklySales
*/
public CommissionEmployee(String firstName, String lastName,
double weeklySalary, double commissionRate, double weeklySales) {
super(firstName, lastName);
this.weeklySalary = weeklySalary;
this.commissionRate = commissionRate;
this.weeklySales = weeklySales;
}
/**
* @return the weeklySalary
*/
public double getWeeklySalary() {
return weeklySalary;
}
/**
* @return the commissionRate
*/
public double getCommissionRate() {
return commissionRate;
}
/**
* @return the weeklySales
*/
public double getWeeklySales() {
return weeklySales;
}
/**
* @param weeklySalary
* the weeklySalary to set
*/
public void setWeeklySalary(double weeklySalary) {
this.weeklySalary = weeklySalary;
}
/**
* @param commissionRate
* the commissionRate to set
*/
public void setCommissionRate(double commissionRate) {
this.commissionRate = commissionRate;
}
/**
* @param weeklySales
* the weeklySales to set
*/
public void setWeeklySales(double weeklySales) {
this.weeklySales = weeklySales;
}
@Override
public double earnings() {
// TODO Auto-generated method stub
return weeklySalary + (commissionRate * weeklySales);
}
}
package com.emp;
public class HourlyWorker extends Employee {
private double hoursWorked;
private int wage;
/**
* @param firstName
* @param lastName
* @param employeeID
* @param hoursWorked
* @param wage
*/
public HourlyWorker(String firstName, String lastName, double hoursWorked,
int wage) {
super(firstName, lastName);
this.hoursWorked = hoursWorked;
this.wage = wage;
}
/**
* @return the hoursWorked
*/
public double getHoursWorked() {
return hoursWorked;
}
/**
* @return the wage
*/
public int getWage() {
return wage;
}
/**
* @param hoursWorked
* the hoursWorked to set
*/
public void setHoursWorked(double hoursWorked) {
this.hoursWorked = hoursWorked;
}
/**
* @param wage
* the wage to set
*/
public void setWage(int wage) {
this.wage = wage;
}
@Override
public double earnings() {
// TODO Auto-generated method stub
double pay;
if (hoursWorked > 40) {
pay = (40 * wage) + (1.5 * (hoursWorked - 40) * wage);
} else {
pay = wage * hoursWorked;
}
return pay;
}
}
package com.emp;
import java.io.File;
import java.util.Scanner;
public class Payroll {
public static void main(String[] args) {
Scanner scanner = null;
try {
scanner = new Scanner(new File("inputdata.txt"));
Employee[] employees;
int n = 0;
if (scanner.hasNext())
n = Integer.parseInt(scanner.nextLine());
employees = new Employee[n];
char empType;
int i = 0;
while (scanner.hasNext()) {
String line = scanner.nextLine();
empType = line.charAt(0);
//System.out.println(line);
String lineArr[] = line.split(",");
String firstName = lineArr[0].substring(1);
String lastName = lineArr[1];
switch (empType) {
case '#': {
double weeklySalary = Double.parseDouble(lineArr[2].trim());
Manager managers = new Manager(firstName, lastName,
weeklySalary);
employees[i] = managers;
}
break;
case '@': {
int wage = Integer.parseInt(lineArr[2].trim());
int hoursWorked = Integer.parseInt(lineArr[3].trim());
HourlyWorker hourlyWorker = new HourlyWorker(firstName,
lastName, hoursWorked, wage);
employees[i] = hourlyWorker;
}
break;
case '*': {
double weeklySalary = Double.parseDouble(lineArr[2].trim());
double weeklySales = Double.parseDouble(lineArr[3].trim());
double commissionRate = Double.parseDouble(lineArr[4]
.trim());
CommissionEmployee commissionEmployee = new CommissionEmployee(
firstName, lastName, weeklySalary, commissionRate,
weeklySales);
employees[i] = commissionEmployee;
}
break;
default:
break;
}
i++;
}
for (int j = 0; j < employees.length; j++) {
System.out.println(employees[j].getClass() + ": "
+ employees[j]);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
inputdata.txt
9
#Steve, Davis, 2000
*John, Kanet, 800, 7000, 0.10
@Thomas, Hill,20,50
*Lisa, Green,800,6000,0.10
*Chasidy , Funderburk,1000,5000,0.08
@Kayleigh,Bertrand, 25, 45
*Zane, Eckhoff,1800,900, 0.09
@Teressa, Bitterman, 15,35
*Yuri, Viera, 600, 5000,0.10
OUTPUT:
class com.emp.Manager: Steve Davis 2000.00
class com.emp.CommissionEmployee: John Kanet 1500.00
class com.emp.HourlyWorker: Thomas Hill 1100.00
class com.emp.CommissionEmployee: Lisa Green 1400.00
class com.emp.CommissionEmployee: Chasidy Funderburk 1400.00
class com.emp.HourlyWorker: Kayleigh Bertrand 1187.50
class com.emp.CommissionEmployee: Zane Eckhoff 1881.00
class com.emp.HourlyWorker: Teressa Bitterman 525.00
class com.emp.CommissionEmployee: Yuri Viera 1100.00
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.