Im coding a program in JAVA and need help with a few areas in my code. I only ne
ID: 3694759 • Letter: I
Question
Im coding a program in JAVA and need help with a few areas in my code. I only need help in my PayrollApp class, not my Payroll (model) class. I will post both both though so you have it for reference. I will comment out the areas that I need help with and the specifics in the PayrollApp class. Here is the Payroll class (model):
import java.text.DecimalFormat;
public class Payroll {
private String name; // Employee name
private int idNumber; // 6-digit ID number
private double payRate; // Hourly pay rate
private double hoursWorked; // Number of hours worked
/**
* The constructor initializes an object with
* default variables.
*/
public Payroll(){
name = "no name has been entered";
idNumber = 0;
payRate = 0.0;
hoursWorked = 0.0;
}// end default constructor
/**
The constructor initializes an object with the
employee's name, ID number, hourly pay, and hours worked.
@param n The employee's name.
@param i The employee's ID number.
*/
public Payroll(String n, int i, double pay, double hours)
{
name = n;
idNumber = i;
payRate = pay;
hoursWorked = hours;
}// end multi argument constructor
/**
The setName sets the employee's name.
@param n The employee's name.
*/
public void setName(String n)
{
name = n;
}// end setName method
/**
The setIdNumber sets the employee's ID number.
@param i The employee's ID number.
*/
public void setIdNumber(int i)
{
idNumber = i;
}//end setIdNumber method
/**
The setPayRate sets the employee's pay rate.
@param p The employee's pay rate.
*/
public void setPayRate(double p)
{
payRate = p;
}// end setPayRate method
/**
The setHoursWorked sets the number of hours worked.
@param h The number of hours worked.
*/
public void setHoursWorked(double h)
{
hoursWorked = h;
}// end setHoursWorked method
/**
The getName returns the employee's name.
@return The employee's name.
*/
public String getName()
{
return name;
}// end getName method
/**
The getIdNumber returns the employee's ID number.
@return The employee's ID number.
*/
public int getIdNumber()
{
return idNumber;
}// end getIdNumber method
/**
The getPayRate returns the employee's pay rate.
@return The employee's pay rate.
*/
public double getPayRate()
{
return payRate;
}// end getPayRate method
/**
The getHoursWorked returns the hours worked by the
employee.
@return The hours worked.
*/
public double getHoursWorked()
{
return hoursWorked;
}// end getHoursWorked
/**
The getGrossPay returns the employee's gross pay.
@return The employee's gross pay.
*/
public double getGrossPay()
{
return hoursWorked * payRate;
}// end getGrossPay
/**
* The toString method returns the display of each
* employee's information entered by the user.
* @return The employee's information to display
*/
public String toString(){
DecimalFormat df = new DecimalFormat ("$#,###,###.00");
return ("Employee Name: " + name + " Employee ID Number: " + idNumber
+ " The employee's pay for the week: " + df.format(getGrossPay()));
}// end toString method
}// end class
here is the PayrollApp class that needs work
public class PayrollApp {
public static void main(String [] args){
Scanner s = new Scanner(System.in);
String name = "";
int x;
int input = 0;
int id = 0;
double pay = 0;
double hours = 0;
ArrayList < Payroll > object = new ArrayList<Payroll>();
Payroll [] employee = new Payroll[10000000];
try{
for (int i = 0; i < employee.length; i++){
System.out.print("Please choose from the following choices below:"
+ " 1) Create a new Employee content list"
+ " 2) Quit (Exit the program) "
+ " Choice: ");
input = s.nextInt();
if(input == 1){
employee[i] = new Payroll(name, id, pay, hours);
System.out.print(" Please enter the employee's first name: ");
name = s.next();
employee[i].setName(name);
int error;
String in;
do{
System.out.print(" Please enter employee's 6-digit ID number (123456): ");
in = s.next();
error = 0;
try{
id = Integer.parseInt(in);
employee[i].setIdNumber(id);
}
catch (NumberFormatException k){
System.out.println(" " + in + " is not a number (Integer). Please re-enter employee's ID number (ex. 13465).");
error++;
}
catch (InputMismatchException t){
System.out.println(" " + in + " is not a number (Integer). Please re-enter employee's ID number (ex. 13465).");
error++;
}
}while (error != 0);
do{
System.out.print(" Please enter employee's hourly pay: ");
in = s.next();
error = 0;
try{
pay = Double.parseDouble(in);
employee[i].setPayRate(pay);
}
catch (NumberFormatException k){
System.out.println(" " + in + " is not a number (Double). Please re-enter employee's hourly wage (8.75).");
error++;
}
catch (InputMismatchException t){
System.out.println(" " + in + " is not a number (Double). Please re-enter employee's hourly wage (8.75).");
error++;
}
}while (error != 0 );
do{
System.out.print(" Please enter amount of hours worked this by the employee: ");
in = s.next();
error = 0;
try{
hours = Double.parseDouble(in);
employee[i].setHoursWorked(hours);
}
catch (NumberFormatException k){
System.out.println(" " + in + " is not a number (Double). Please re-enter total hours "
+ "employee has worked this week (52.0).");
error++;
}
catch (InputMismatchException t){
System.out.println(" " + in + " is not a number (Double). Please re-enter total hours "
+ "employee has worked this week (52.0).");
error++;
}
}while(error != 0);
System.out.println(" CURRENT EMPLOYEE...:");
System.out.println(employee[i].toString() + " ");
object.add(employee[i]);
}
else if(input == 2){
System.out.println(" Contents of array list... ");
for (int j = 0; j < object.size(); j++){
System.out.println(object.get(j).toString() + " ");
}//end inner for loop
//Once all output is shown, prompt the user to enter a 6-digit idNumber – if found, delete that employee from your ArrayList and indicate that the employee has been deleted from the ArrayList. If not found, display an appropriate error message and allow user to re-enter until a valid id number is entered.
//Allow the user to enter in one more employee and place the employee at the END of the ArrayList. Again use your toString method to display all current employees in the ArrayList.
}
else{
System.out.println(" *Invalid option chosen. Please re-select.*");
}
}// end outer for loop
}
catch(InputMismatchException e){
System.out.println("invalid user input. Please try again.");
}
}// end main
}// end PayrollApp class
Explanation / Answer
import java.text.DecimalFormat;
import java.util.*;
import java.io.*;
class Payroll {
private String name; // Employee name
private int idNumber; // 6-digit ID number
private double payRate; // Hourly pay rate
private double hoursWorked; // Number of hours worked
/**
* The constructor initializes an object with
* default variables.
*/
public Payroll(){
name = "no name has been entered";
idNumber = 0;
payRate = 0.0;
hoursWorked = 0.0;
}// end default constructor
/**
The constructor initializes an object with the
employee's name, ID number, hourly pay, and hours worked.
@param n The employee's name.
@param i The employee's ID number.
*/
public Payroll(String n, int i, double pay, double hours)
{
name = n;
idNumber = i;
payRate = pay;
hoursWorked = hours;
}// end multi argument constructor
/**
The setName sets the employee's name.
@param n The employee's name.
*/
public void setName(String n)
{
name = n;
}// end setName method
/**
The setIdNumber sets the employee's ID number.
@param i The employee's ID number.
*/
public void setIdNumber(int i)
{
idNumber = i;
}//end setIdNumber method
/**
The setPayRate sets the employee's pay rate.
@param p The employee's pay rate.
*/
public void setPayRate(double p)
{
payRate = p;
}// end setPayRate method
/**
The setHoursWorked sets the number of hours worked.
@param h The number of hours worked.
*/
public void setHoursWorked(double h)
{
hoursWorked = h;
}// end setHoursWorked method
/**
The getName returns the employee's name.
@return The employee's name.
*/
public String getName()
{
return name;
}// end getName method
/**
The getIdNumber returns the employee's ID number.
@return The employee's ID number.
*/
public int getIdNumber()
{
return idNumber;
}// end getIdNumber method
/**
The getPayRate returns the employee's pay rate.
@return The employee's pay rate.
*/
public double getPayRate()
{
return payRate;
}// end getPayRate method
/**
The getHoursWorked returns the hours worked by the
employee.
@return The hours worked.
*/
public double getHoursWorked()
{
return hoursWorked;
}// end getHoursWorked
/**
The getGrossPay returns the employee's gross pay.
@return The employee's gross pay.
*/
public double getGrossPay()
{
return hoursWorked * payRate;
}// end getGrossPay
/**
* The toString method returns the display of each
* employee's information entered by the user.
* @return The employee's information to display
*/
public String toString(){
DecimalFormat df = new DecimalFormat ("$#,###,###.00");
return ("Employee Name: " + name + " Employee ID Number: " + idNumber
+ " The employee's pay for the week: " + df.format(getGrossPay()));
}// end toString method
}// end class
public class HelloWorld{
public static void main(String [] args){
Scanner s = new Scanner(System.in);
String name = "";
int x;
int input = 0;
int id = 0;
double pay = 0;
double hours = 0;
ArrayList < Payroll > object = new ArrayList<Payroll>();
Payroll [] employee = new Payroll[10000000];
try{
for (int i = 0; i < employee.length; i++){
System.out.print("Please choose from the following choices below:"
+ " 1) Create a new Employee content list"
+ " 2) Delete a new Empoyee) "
+ " 3) Quit (Exit the program) "
+ " Choice: ");
input = s.nextInt();
if(input == 1){
employee[i] = new Payroll(name, id, pay, hours);
System.out.print(" Please enter the employee's first name: ");
name = s.next();
employee[i].setName(name);
int error;
String in;
do{
System.out.print(" Please enter employee's 6-digit ID number (123456): ");
in = s.next();
error = 0;
try{
id = Integer.parseInt(in);
employee[i].setIdNumber(id);
}
catch (NumberFormatException k){
System.out.println(" " + in + " is not a number (Integer). Please re-enter employee's ID number (ex. 13465).");
error++;
}
catch (InputMismatchException t){
System.out.println(" " + in + " is not a number (Integer). Please re-enter employee's ID number (ex. 13465).");
error++;
}
}while (error != 0);
do{
System.out.print(" Please enter employee's hourly pay: ");
in = s.next();
error = 0;
try{
pay = Double.parseDouble(in);
employee[i].setPayRate(pay);
}
catch (NumberFormatException k){
System.out.println(" " + in + " is not a number (Double). Please re-enter employee's hourly wage (8.75).");
error++;
}
catch (InputMismatchException t){
System.out.println(" " + in + " is not a number (Double). Please re-enter employee's hourly wage (8.75).");
error++;
}
}while (error != 0 );
do{
System.out.print(" Please enter amount of hours worked this by the employee: ");
in = s.next();
error = 0;
try{
hours = Double.parseDouble(in);
employee[i].setHoursWorked(hours);
}
catch (NumberFormatException k){
System.out.println(" " + in + " is not a number (Double). Please re-enter total hours "
+ "employee has worked this week (52.0).");
error++;
}
catch (InputMismatchException t){
System.out.println(" " + in + " is not a number (Double). Please re-enter total hours "
+ "employee has worked this week (52.0).");
error++;
}
}while(error != 0);
System.out.println(" CURRENT EMPLOYEE...:");
System.out.println(employee[i].toString() + " ");
object.add(employee[i]);
}
else if(input == 3){
System.out.println(" Contents of array list... ");
for (int j = 0; j < object.size(); j++){
System.out.println(object.get(j).toString() + " ");
}//end inner for loop
System.exit(0);
}
else if(input==2)
{
String inputID;
int empid;
int error;
boolean found=false;
do{
System.out.print(" Please enter employee's 6-digit ID number (123456): ");
inputID = s.next();
error = 0;
try{
empid = Integer.parseInt(inputID);
for (int j = 0; j < object.size(); j++){
if(object.get(j).getIdNumber()==empid)
{
found=true;
object.remove(j);
}
}//end inner for loop
if(found)
{
System.out.println("Employee found Found.Deleted it sucessfully");
//dipslay elements
System.out.println(" Contents of array list... ");
for (int j = 0; j < object.size(); j++){
System.out.println(object.get(j).toString() + " ");
}//end inner for loop
}
else
System.out.println("Id doesn't exist.Enter a valid emp id");
}
catch (NumberFormatException k){
System.out.println(" " + inputID + " is not a number (Integer). Please re-enter employee's ID number (ex. 13465).");
error++;
}
catch (InputMismatchException t){
System.out.println(" " + inputID + " is not a number (Integer). Please re-enter employee's ID number (ex. 13465).");
error++;
}
}while (error != 0 || found==false);
}
else{
System.out.println(" *Invalid option chosen. Please re-select.*");
}
}// end outer for loop
}
catch(InputMismatchException e){
System.out.println("invalid user input. Please try again.");
}
}// end main
}// end PayrollApp class
Hi, i have modified the program in a muc more meaningful way.
In the question,you asked me to proivide code for adding and deleting a employee.
Instead of providing the above in Quit code, i created a new option to delete a empoyee
and adding an employee already exists.
Please feel free to reach me if, any concerns.