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

Create an abstract Employee business class with these private instance variables

ID: 3728247 • Letter: C

Question

Create an abstract Employee business class with these private instance variables: Employee number:
Last name: First name:
Email address: Social security number:
1000 – 9999 numeric present
present present
111111111 – 999999999 numeric Include two constructors, an empty constructor, and one that accepts all
parameters, and a get and a set method for each of the instance variables. Include in this abstract class an abstract method called calcPay. The abstract method should accept a double parameter and return a double. You will also need to override the toString() method that will displays all the above fields in a formatted version (make it look nice).
Create two subclasses that extend Employee, one for hourly employee, and one
for salary employee. Both subclasses should override the abstract method in Employee. Hourly subclass: The hourly subclass should contain an instance variable for
number of hours worked, two constructors that call the super class, and a get and set method for the instance variable. Hourly rate should be a constant that cannot be changed and set at 15.75. The calcPay method should accept the number of hours worked as the parameter, and calculate an hourly employee’s pay by multiplying the number of hours worked by the hourly rate.
Salary subclass: The salary subclass should contain an instance variable for
yearly salary, two constructors that call the super class, and a get and set method for that instance variable. The calcPay method should accept a yearly salary as the parameter, and calculate a monthly salary by dividing the yearly salary by twelve months.
The presentation class should ask for the employee number, last name, first
name, email address and social security number. The presentation class’s main method should consist almost entirely of method calls. Error checking should be done on all user-entered fields using a Validation class. Those values should be passed to the Employee class. The application class should also ask if the employee is hourly or salary. Based on that answer; determine which calcPay method to call in order to calculate pay. If the employee is hourly, the application should prompt the user for the number of hours worked. That value should be passed to the hourly subclass by calling the setmethod. If the employee is salary, the application should prompt the user for a yearly salary. That value should be passed to the salary subclass by calling the set method. The application class should display all of the user’s information by calling the toString() method along with their formatted pay by calling the appropriate methods in the business classes. The user should be prompted as to whether they would like to calculate pay for another employee. If the answer is “Y” in either upper or lower case, the application should start again at the beginning.

employee.java:

package business;

import presentation.Java03;

public class Employee extends Java03

{

    //Setting names for the presentation class

    private int empNumber;

    private String lastName;

    private String firstName;

    private String email;

    private int ssNumber;

    private int hoursWorked;

    private double hourlyRate = 15.75;

    private double totalPay = 0;

    

    

    

    

    //assigning preliminary values

    public void employee()

    {

        empNumber = 0;

        lastName = "";

        firstName = "";

        email = "";

        ssNumber = 0;

    }

    

    //building constructor

    public void employee(int empNumber, String lastName, String firstName, String email, int ssNumber)

    {

        this.empNumber = empNumber;

        this.lastName = lastName;

        this.firstName = firstName;

        this.email = email;

        this.ssNumber = ssNumber;

        this.hoursWorked = hoursWorked;

    }

    

    //setting getters and setters

    public int getEmpNumber() {

        return empNumber;

    }

    

    //*****************************************

    public void setEmpNumber(int empNumber) {

        this.empNumber = empNumber;

    }

    //*****************************************

    public String getLastName() {

        return lastName;

    }

    //*****************************************

    public void setLastName(String lastName) {

        this.lastName = lastName;

    }

    //*****************************************

    public String getFirstName() {

        return firstName;

    }

    //*****************************************

    public void setFirstName(String firstName) {

        this.firstName = firstName;

    }

    //*****************************************

    public String getEmail() {

        return email;

    }

    //*****************************************

    public void setEmail(String email) {

        this.email = email;

    }

    //*****************************************

    public int getSsNumber() {

        return ssNumber;

    }

    //*****************************************

    public void setSsNumber(int ssNumber) {

        this.ssNumber = ssNumber;

    }

    

    

    //*****************************************

    public int getHoursWorked() {

        return hoursWorked;

    }

    

    //*****************************************

    public void setHoursWorked(int hoursWorked) {

        this.hoursWorked = hoursWorked;

        

    }

    

    //taking the hourly rate and multiplying it by the time worked to get total pay

    public double totalPayMethod()

    {

        totalPay = hourlyRate * hoursWorked;

        return totalPay;

    }

    //returning the information to the presentation class

    public String toString()

    {

        return "Employee Number: " + empNumber + " " +

             "Last Name: " + lastName + " " +

             "First Name: " + firstName + " "+

             "Social Security Number: " + ssNumber + " " +

             "total Pay: " + totalPay + " ";       

    }

    

}

SalaryEmployee.java:

package business;

import presentation.Java03;

public class SalaryEmployee extends Java03{

    //Setting names for the presentation class

        private int empNumber;

        private String lastName;

        private String firstName;

        private String email;

        private int ssNumber;

        private double salary;

        private double totalPay;

        

        //assigning preliminary values

        public void employee()

        {

            empNumber = 0;

            lastName = "";

            firstName = "";

            email = "";

            ssNumber = 0;

            totalPay = 0;

            salary = 0;

        }

        

        //building constructor

        public void salaryEmployee(int empNumber, String lastName, String firstName, String email, int ssNumber, double salary, double totalPay)

        {

            this.empNumber = empNumber;

            this.lastName = lastName;

            this.firstName = firstName;

            this.email = email;

            this.ssNumber = ssNumber;

            this.salary = salary;

            this.totalPay = totalPay;

        }

        

        //building getters and setters

        public int getEmpNumber() {

            return empNumber;

        }

        //**********************************************

        public void setEmpNumber(int empNumber) {

            this.empNumber = empNumber;

        }

        //**********************************************

        public String getLastName() {

            return lastName;

        }

        //**********************************************

        public void setLastName(String lastName) {

            this.lastName = lastName;

        }

        //**********************************************

        public String getFirstName() {

            return firstName;

        }

        //**********************************************

        public void setFirstName(String firstName) {

            this.firstName = firstName;

        }

        //**********************************************

        public String getEmail() {

            return email;

        }

        //**********************************************

        public void setEmail(String email) {

            this.email = email;

        }

        //**********************************************

        public int getSsNumber() {

            return ssNumber;

        }

        //**********************************************

        public void setSsNumber(int ssNumber) {

            this.ssNumber = ssNumber;

        }

        

        //**********************************************

        public double getSalary() {

            return salary;

        }

    

        //**********************************************

        public void setSalary() {

            this.salary = salary;

        }

        

        //**********************************************

        public double getTotalPay() {

            return totalPay;

        }

    

        //**********************************************

        public void setTotalPay() {

            this.totalPay = totalPay;

        }

        

        

        //taking salary and dividing it by 12 months to see what the monthly pay was

        public double totalPayMethod()

        {

            totalPay = salary / 12;

            

        return totalPay;

        }

        

        //Sending the information back to the presentation class

        public String toString()

        {

            return "Employee Number: " + empNumber + " " +

                 "Last Name: " + lastName + " " +

                 "First Name: " + firstName + " "+

                 "Social Security Number: " + ssNumber + " " +

                 "total Pay: " + totalPay + " ";       

        }

        

    }

java03:

package presentation;

import java.util.Scanner;

public abstract class Java03 {

    public static void main(String[] args) {

        

        Scanner sc = new Scanner(System.in);

        

        

        //having the user input the information into the calculator and then asking at the end if they would like to continue

        do

        {

            

        

        String answer = "";

        System.out.println("Welcome to the Employee Pay Rate Calculator");

        System.out.print("Is the employee on Salary?");

        answer = sc.nextLine();

        boolean errorCheck = false;

        

        if (answer.equalsIgnoreCase("y")) {

            //setting variables for Salary Employee

            

            String empNum;

            String lastName;

            String firstName;

            String email;

            String ssNumber;

        

        //Getting Employee number and ensuring its an integer and within range of 1000 and 9999 and is numerical

        do

        {

            int min = 1000;

            int max = 9999;

            System.out.print("Please enter the Employee Number");

            empNum = sc.nextLine();

            errorCheck = Validation.isInteger(empNum, "Employee Number") && Validation.isWithinRangeInteger(empNum, min, max, "Employee Number");

            

        }while(!errorCheck);    

        int empNumInt = Integer.parseInt(empNum);

        //Getting Employee's last name and ensuring the string is there

        do

        {

            System.out.print("Please enter the Employee's Last Name");

            lastName = sc.nextLine();

            errorCheck = Validation.isStringPresent(lastName, "Last Name");

            

        }while(!errorCheck);

        

        //Getting Employee's first Name and ensuring the string is there

        do

        {

            System.out.print("Please enter the Employee's First Name");

            firstName = sc.nextLine();

            errorCheck = Validation.isStringPresent(firstName, "First Name");

            

        }while(!errorCheck);

        

        //Getting Email address and ensuring the string is there

        do

        {

            System.out.print("Please enter the Employee's Email Address");

            email = sc.nextLine();

            errorCheck = Validation.isStringPresent(email, "Email Address");

            

        }while(!errorCheck);

        

        //Getting Social Security Number and ensuring its a 9 digit number and an integer

        do

        {

            int min = 111111111;

            int max = 999999999;

            

            System.out.print("Please enter the Employees Social Security Number");

            ssNumber = sc.nextLine();

            errorCheck = Validation.isInteger(ssNumber, "Social Security Number");

            errorCheck = Validation.isWithinRangeInteger(ssNumber, min, max, "Social Security Number");

            

            

            System.out.println("The employee number is: " + Employee.getEmpNumber() );

            

            

            

            

            System.out.print("would you like to continue?");

            answer = sc.nextLine();

        

        }while(answer.equalsIgnoreCase("y"));

        }

        

        

        

        

        

        

        

        

        

        

        

        else

            

        {

        //Setting variables for the Calculator

    

        String empNum;

        String lastName;

        String firstName;

        String email;

        String ssNumber;

            

            do

            {

                int min = 1000;

                int max = 9999;

                System.out.print("Please enter the Employee Number");

                empNum = sc.nextLine();

                errorCheck = Validation.isInteger(empNum, "Employee Number") && Validation.isWithinRangeInteger(empNum, min, max, "Employee Number");

                

            }while(!errorCheck);    

            int empNumInt = Integer.parseInt(empNum);

            //Getting Employee's last name

            do

            {

                System.out.print("Please enter the Employee's Last Name");

                lastName = sc.nextLine();

                errorCheck = Validation.isStringPresent(lastName, "Last Name");

                

            }while(!errorCheck);

            

            

            System.out.print("would you like to continue?");

            answer = sc.nextLine();

            

    }while(answer.equalsIgnoreCase("y"));

}

}

}

Validation.java:

package presentation;

import java.text.NumberFormat;

import java.time.LocalDate;

import java.time.format.DateTimeParseException;

import java.math.*;

public class Validation

{

//*****************************************

/*this method tests to see if the user entered data into a String field.

You pass this method a String, then call a method from the String class called isEmpty()

if nothing is in the field, it will display an error message and return false, if the field is not empty

it will return a true

*/

public static boolean isStringPresent(String stringData, String title)

{

       if(stringData.isEmpty())

        {

            System.out.println(title + " must be present, please re-enter: ");

            return false;

        }

        

        return true;

}

//******************************************

/*This method tests to make sure that no characters are entered into a numeric field.

* The method accepts the data as a String, passes that data along with the field name to this method.

* Within the try statement, the String is parsed(changed to an integer). If there are no characters

* in the field, it returns a true(the data is good).

* If there are characters in the field, it drops to the catch statement, displays an error message,

* and returns a false.

*/

    public static boolean isInteger(String intData, String title)

    {

        try

        {

            int i = Integer.parseInt(intData);

            return true;

        }

        catch (NumberFormatException e)

        {

         System.out.println(title + " must be an integer. Please re-enter.");

            return false;

        }

    }

    

//******************************************

/*This method tests to make sure that the user entered a valid range into the field.

* For example if you wanted to test an age, and the requirement was a minimum of 18 years old,

* that would be your min, and the maximum age couldn't be more than 120, that would be your max.

* This method accepts what the user entered as a String, then parses it to an Integer.

* You pass the min and max values that you want tested and a String that explains what is being tested.

* In my example above, the String that you pass would probably hold "Age", so that the error message

* would say "Age must be between 18 and 120, Please re-enter"

* The integer is tested to make sure that it falls with the ranges, if it does, it returns a true, if

* it does not, it returns a false.

*/

    public static boolean isWithinRangeInteger(String intData, int min, int max, String title)

    {

        int i = Integer.parseInt(intData);

        if (i < min | i > max)

        {

            System.out.println(title + " must be between " + min + " and " + max + ". " + " Please re-enter.");

            return false;

        }

        return true;

    }

//**************************************************

    //method that tests for numeric data for a long integer

    public static boolean isLong(String longData, String title)

    {

        try

        {

            long i = Long.parseLong(longData);

            return true;

        }

        catch (NumberFormatException e)

        {

         System.out.println(title + " must be an integer. Please re-enter.");

            return false;

        }

    }

    //method that tests a range using a long integer

    public static boolean isWithinRangeLong(String longData, long min, long max, String title)

    {

        long i = Long.parseLong(longData);

        if (i < min | i > max)

        {

            System.out.println(title + " must be between " + min + " and " + max + ". " + " Please re-enter.");

            return false;

        }

        return true;

    }

    

//This method is the same as isInteger, but tests a double

    public static boolean isDouble(String doubleData, String title)

    {

        try

        {

            double d = Double.parseDouble(doubleData);

            return true;

        }

        catch (NumberFormatException e)

        {

         System.out.println(title + " must be a numeric value. Please re-enter.");

            return false;

        }

    }

    

//******************************************

//This method is the same as isWithinRangeInteger, but tests a double

    public static boolean isWithinRangeDouble(String doubleData, double min, double max, String title)

    {

        double d = Double.parseDouble(doubleData);

        if (d < min | d > max)

        {

            System.out.println(title + " must be between " + min + " and " + max + ". " + " Please re-enter.");

            return false;

        }

        return true;

    }

//******************************************

//This method accepts a String argument, then tests it for a valid date

    public static boolean isDateValid(String date)

    {       

        try

        {

            

            LocalDate parsedDate = LocalDate.parse(date);//parses the String into a LocalDate object

            

                        

            return true;

        }

        catch (DateTimeParseException e)

        {

            System.out.println("Date must be in this format: yyyy-mm-dd & must be a valid date " + ". " + "Please re-enter.");

        

            return false;

        }

    }

//**************************************************

/*This method allows you to round a number half up, which means

* that if you have a number for example 222.875, it rounds it to 222.88.

* The 2 in the setScale method is how many decimal places you want.

* This returns a BigDecimal object.

* BigDecimal rounds, but it doesn't format, that why I have the method below it that does both.

*/

public static BigDecimal formatRound(double number)

{

     BigDecimal decimalRound = new BigDecimal(number);

     return decimalRound = decimalRound.setScale(2, RoundingMode.HALF_UP);       

}

//**************************************************************

/*This method both rounds by using the BigDecimal class and formats the

* number by using one of the NumberFormat class methods. You can use one of the

* two methods of the NumberFormat class that either adds a dollar sign

* or leaves the dollar sign off but still formats($2,211.55 or 2,211.55)

* This method returns a String

*/

   public static String formatAndRound(double number)

   {

        NumberFormat num = NumberFormat.getCurrencyInstance();//dollar sign

        //NumberFormat num = NumberFormat.getNumberInstance();//no dollar sign

        BigDecimal decimalRound = new BigDecimal(number);

        return num.format(decimalRound = decimalRound.setScale(2, RoundingMode.HALF_UP));

}

    

}

Explanation / Answer

In all the classes commented information are provided.

Employee class:

package CHEGG;

public abstract class Employee {

//Setting names for the presentation class

private int empNumber;

private String lastName;

private String firstName;

private String email;

private int ssNumber;

private double totalPay = 0;

//assigning preliminary values

public Employee()

{

empNumber = 0;

lastName = "";

firstName = "";

email = "";

ssNumber = 0;

}

//building constructor

public Employee(int empNumber, String lastName, String firstName, String email, int ssNumber)

{

this.empNumber = empNumber;

this.lastName = lastName;

this.firstName = firstName;

this.email = email;

this.ssNumber = ssNumber;

}

//setting getters and setters

public int getEmpNumber() {

return empNumber;

}

//*****************************************

public void setEmpNumber(int empNumber) {

this.empNumber = empNumber;

}

//*****************************************

public String getLastName() {

return lastName;

}

//*****************************************

public void setLastName(String lastName) {

this.lastName = lastName;

}

//*****************************************

public String getFirstName() {

return firstName;

}

//*****************************************

public void setFirstName(String firstName) {

this.firstName = firstName;

}

//*****************************************

public String getEmail() {

return email;

}

//*****************************************

public void setEmail(String email) {

this.email = email;

}

//*****************************************

public int getSsNumber() {

return ssNumber;

}

//*****************************************

public void setSsNumber(int ssNumber) {

this.ssNumber = ssNumber;

}

//taking the hourly rate and multiplying it by the time worked to get total pay

// abstract method

abstract double calcPay(double val);

//returning the information to the presentation class

public String toString()

{

return "Employee Number: " + empNumber + " " +

"Last Name: " + lastName + " " +

"First Name: " + firstName + " "+

"Email id: " + email + " "+

"Social Security Number: " + ssNumber + " ";

}

}

SalEmployee class:

package CHEGG;

public class SalEmployee extends Employee{

private double salary ;

public SalEmployee() {

super();

setSalary(0.0);

}

public SalEmployee(int empNumber,String lastName,String firstName,String email,

int ssNumber,double salary) {

super(empNumber,lastName,firstName,email,ssNumber);

this.setSalary(salary);

}

@Override//calculates the monthly salary

double calcPay(double val) {

return val/12;

}

public double getSalary() {

return salary;

}

public void setSalary(double salary) {

this.salary = salary;

}

}

HourlyEmployee class:

package CHEGG;

public class HourlyEmployee extends Employee{

private int hoursWorked;

private final double hourlyRate = 15.75;

public HourlyEmployee() {

super();

setHoursWorked(0);

}

public HourlyEmployee(int empNumber,String lastName,String firstName,String email,

int ssNumber,int hoursWorked) {

super(empNumber,lastName,firstName,email,ssNumber);

this.setHoursWorked(hoursWorked);

}

@Override

double calcPay(double val) {

// TODO Auto-generated method stub

return (hourlyRate * val);

}

public int getHoursWorked() {

return hoursWorked;

}

public void setHoursWorked(int hoursWorked) {

this.hoursWorked = hoursWorked;

}

}

Main Class: The two different sub class are invoked according to user request

package CHEGG;

import java.util.Scanner;

public class Presentation {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String answer = "";

//having the user input the information into the calculator and then asking at the end if they would like to continue

do{

System.out.println("Welcome to the Employee Pay Rate Calculator");

System.out.print("Is the employee on Hourly basis?");

answer = sc.nextLine();

boolean errorCheck = false;

if (answer.equalsIgnoreCase("y")) {

System.out.println("Hourly calculator");

//setting variables for Salary Employee

String empNum;

String lastName;

String firstName;

String email;

String ssNumber;

//Getting Employee number and ensuring its an integer and within range of 1000 and 9999 and is numerical

do

{

int min = 1000;

int max = 9999;

System.out.print("Please enter the Employee Number");

empNum = sc.nextLine();

errorCheck = Validation.isInteger(empNum, "Employee Number") && Validation.isWithinRangeInteger(empNum, min, max, "Employee Number");

}while(!errorCheck);   

int empNumInt = Integer.parseInt(empNum);

//Getting Employee's last name and ensuring the string is there

do

{

System.out.print("Please enter the Employee's Last Name");

lastName = sc.nextLine();

errorCheck = Validation.isStringPresent(lastName, "Last Name");

}while(!errorCheck);

//Getting Employee's first Name and ensuring the string is there

do

{

System.out.print("Please enter the Employee's First Name");

firstName = sc.nextLine();

errorCheck = Validation.isStringPresent(firstName, "First Name");

}while(!errorCheck);

//Getting Email address and ensuring the string is there

do

{

System.out.print("Please enter the Employee's Email Address");

email = sc.nextLine();

errorCheck = Validation.isStringPresent(email, "Email Address");

}while(!errorCheck);

//Getting Social Security Number and ensuring its a 9 digit number and an integer

do

{

int min = 111111111;

int max = 999999999;

System.out.println("Please enter the Employees Social Security Number");

ssNumber = sc.nextLine();

errorCheck = Validation.isInteger(ssNumber, "Social Security Number");

errorCheck = Validation.isWithinRangeInteger(ssNumber, min, max, "Social Security Number");

}while(!errorCheck);

// System.out.println("The employee number is: " + Employee.getSsNumber() );

int ssNumberInt = Integer.parseInt(ssNumber);

System.out.println("Please enter the No of Hours worked");

int hoursWorked=Integer.parseInt(sc.nextLine());

Employee hemp=new HourlyEmployee(empNumInt,lastName,firstName,

email,ssNumberInt,hoursWorked);

System.out.println(hemp);

System.out.println("Total Hourly Pay:"+hemp.calcPay(hoursWorked));

}

else

{

//setting variables for Salary Employee

System.out.println("Monthly calculator");

String empNum;

String lastName;

String firstName;

String email;

String ssNumber;

//Getting Employee number and ensuring its an integer and within range of 1000 and 9999 and is numerical

do

{

int min = 1000;

int max = 9999;

System.out.print("Please enter the Employee Number");

empNum = sc.nextLine();

errorCheck = Validation.isInteger(empNum, "Employee Number") && Validation.isWithinRangeInteger(empNum, min, max, "Employee Number");

}while(!errorCheck);   

int empNumInt = Integer.parseInt(empNum);

//Getting Employee's last name and ensuring the string is there

do

{

System.out.print("Please enter the Employee's Last Name");

lastName = sc.nextLine();

errorCheck = Validation.isStringPresent(lastName, "Last Name");

}while(!errorCheck);

//Getting Employee's first Name and ensuring the string is there

do

{

System.out.print("Please enter the Employee's First Name");

firstName = sc.nextLine();

errorCheck = Validation.isStringPresent(firstName, "First Name");

}while(!errorCheck);

//Getting Email address and ensuring the string is there

do

{

System.out.print("Please enter the Employee's Email Address");

email = sc.nextLine();

errorCheck = Validation.isStringPresent(email, "Email Address");

}while(!errorCheck);

//Getting Social Security Number and ensuring its a 9 digit number and an integer

do

{

int min = 111111111;

int max = 999999999;

System.out.println("Please enter the Employees Social Security Number");

ssNumber = sc.nextLine();

errorCheck = Validation.isInteger(ssNumber, "Social Security Number");

errorCheck = Validation.isWithinRangeInteger(ssNumber, min, max, "Social Security Number");

}while(!errorCheck);

// System.out.println("The employee number is: " + Employee.getSsNumber() );

int ssNumberInt = Integer.parseInt(ssNumber);

System.out.println("Enter the Annual salary");

int sal=Integer.parseInt(sc.nextLine());

Employee hemp=new SalEmployee(empNumInt,lastName,firstName,

email,ssNumberInt,sal);//salary subclass is called

System.out.println(hemp); // to string implementation

System.out.println("Total Monthly Pay:"+hemp.calcPay(sal));

}

System.out.println("Do you want to calculate another employee sal?");

answer = sc.nextLine();

}while(answer.equalsIgnoreCase("y"));

}

}

Validation class:

package CHEGG;


import java.text.NumberFormat;

import java.time.LocalDate;

import java.time.format.DateTimeParseException;

import java.math.*;

public class Validation

{

//*****************************************

/*this method tests to see if the user entered data into a String field.

You pass this method a String, then call a method from the String class called isEmpty()

if nothing is in the field, it will display an error message and return false, if the field is not empty

it will return a true

*/

public static boolean isStringPresent(String stringData, String title)

{

if(stringData.isEmpty())

{

System.out.println(title + " must be present, please re-enter: ");

return false;

}

return true;

}

//******************************************

/*This method tests to make sure that no characters are entered into a numeric field.

* The method accepts the data as a String, passes that data along with the field name to this method.

* Within the try statement, the String is parsed(changed to an integer). If there are no characters

* in the field, it returns a true(the data is good).

* If there are characters in the field, it drops to the catch statement, displays an error message,

* and returns a false.

*/

public static boolean isInteger(String intData, String title)

{

try

{

int i = Integer.parseInt(intData);

return true;

}

catch (NumberFormatException e)

{

System.out.println(title + " must be an integer. Please re-enter.");

return false;

}

}

//******************************************

/*This method tests to make sure that the user entered a valid range into the field.

* For example if you wanted to test an age, and the requirement was a minimum of 18 years old,

* that would be your min, and the maximum age couldn't be more than 120, that would be your max.

* This method accepts what the user entered as a String, then parses it to an Integer.

* You pass the min and max values that you want tested and a String that explains what is being tested.

* In my example above, the String that you pass would probably hold "Age", so that the error message

* would say "Age must be between 18 and 120, Please re-enter"

* The integer is tested to make sure that it falls with the ranges, if it does, it returns a true, if

* it does not, it returns a false.

*/

public static boolean isWithinRangeInteger(String intData, int min, int max, String title)

{

int i = Integer.parseInt(intData);

if (i < min | i > max)

{

System.out.println(title + " must be between " + min + " and " + max + ". " + " Please re-enter.");

return false;

}

return true;

}

//**************************************************

//method that tests for numeric data for a long integer

public static boolean isLong(String longData, String title)

{

try

{

long i = Long.parseLong(longData);

return true;

}

catch (NumberFormatException e)

{

System.out.println(title + " must be an integer. Please re-enter.");

return false;

}

}

//method that tests a range using a long integer

public static boolean isWithinRangeLong(String longData, long min, long max, String title)

{

long i = Long.parseLong(longData);

if (i < min | i > max)

{

System.out.println(title + " must be between " + min + " and " + max + ". " + " Please re-enter.");

return false;

}

return true;

}

//This method is the same as isInteger, but tests a double

public static boolean isDouble(String doubleData, String title)

{

try

{

double d = Double.parseDouble(doubleData);

return true;

}

catch (NumberFormatException e)

{

System.out.println(title + " must be a numeric value. Please re-enter.");

return false;

}

}

//******************************************

//This method is the same as isWithinRangeInteger, but tests a double

public static boolean isWithinRangeDouble(String doubleData, double min, double max, String title)

{

double d = Double.parseDouble(doubleData);

if (d < min | d > max)

{

System.out.println(title + " must be between " + min + " and " + max + ". " + " Please re-enter.");

return false;

}

return true;

}

//******************************************

//This method accepts a String argument, then tests it for a valid date

public static boolean isDateValid(String date)

{

try

{

LocalDate parsedDate = LocalDate.parse(date);//parses the String into a LocalDate object

return true;

}

catch (DateTimeParseException e)

{

System.out.println("Date must be in this format: yyyy-mm-dd & must be a valid date " + ". " + "Please re-enter.");

return false;

}

}

//**************************************************

/*This method allows you to round a number half up, which means

* that if you have a number for example 222.875, it rounds it to 222.88.

* The 2 in the setScale method is how many decimal places you want.

* This returns a BigDecimal object.

* BigDecimal rounds, but it doesn't format, that why I have the method below it that does both.

*/

public static BigDecimal formatRound(double number)

{

BigDecimal decimalRound = new BigDecimal(number);

return decimalRound = decimalRound.setScale(2, RoundingMode.HALF_UP);

}

//**************************************************************

/*This method both rounds by using the BigDecimal class and formats the

* number by using one of the NumberFormat class methods. You can use one of the

* two methods of the NumberFormat class that either adds a dollar sign

* or leaves the dollar sign off but still formats($2,211.55 or 2,211.55)

* This method returns a String

*/

public static String formatAndRound(double number)

{

NumberFormat num = NumberFormat.getCurrencyInstance();//dollar sign

//NumberFormat num = NumberFormat.getNumberInstance();//no dollar sign

BigDecimal decimalRound = new BigDecimal(number);

return num.format(decimalRound = decimalRound.setScale(2, RoundingMode.HALF_UP));

}

}

Sample Output:

Welcome to the Employee Pay Rate Calculator
Is the employee on Hourly basis?y
Hourly calculator
Please enter the Employee Number1212
Please enter the Employee's Last Namesouma
Please enter the Employee's First Namedutta
Please enter the Employee's Email Addressassa@gail.com
Please enter the Employees Social Security Number
111111115
Please enter the No of Hours worked
10
Employee Number: 1212
Last Name: souma
First Name: dutta
Email id: assa@gail.com
Social Security Number: 111111115

Total Hourly Pay:157.5
Do you want to calculate another employee sal?
y
Welcome to the Employee Pay Rate Calculator
Is the employee on Hourly basis?n
Monthly calculator
Please enter the Employee Number1231
Please enter the Employee's Last Namemai
Please enter the Employee's First Nameali
Please enter the Employee's Email Addressasli@yaho.com
Please enter the Employees Social Security Number
111111116
Enter the Annual salary
120
Employee Number: 1231
Last Name: mai
First Name: ali
Email id: asli@yahoo.com
Social Security Number: 111111116

Total Monthly Pay:10.0
Do you want to calculate another employee sal?

The codes are self explainitory and information were given in comments.

note: In case of any concern kindly let me know.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote