Thursday, January 16, 2020

Prg420 V10 Week 4 Individual Assignment Essay

PRG420 (Version 10) Ã¢â‚¬â€œ Week 4 Individual- Simple Commission Calculation Program Part 3 Modify the Week Three JavaÃ¢â€ž ¢ application using JavaÃ¢â€ž ¢ NetBeansÃ¢â€ž ¢ IDE to meet these additional and changed business requirements: * The application will now compare the total annual compensation of at least two salespersons. * It will calculate the additional amount of sales that each salesperson must achieve to match or exceed the higher of the two earners. * The application should ask for the name of each salesperson being compared. The JavaÃ¢â€ž ¢ application should also meet these technical requirements: * The application should have at least one class, in addition to the applicationÃ¢â‚¬â„¢s controlling class. * The source code must demonstrate the use of Array or ArrayList. * There should be proper documentation in the source code. Source Code: /** * Program: Simple Commission Calculation Program Part 3 Purpose: to calculates and display the total annual compensation of a salesperson. Programmer: Class: PRG420 Instructor: Creation Date: Programmer Modification Date: Purpose: to add name of sales person and also functionality to manage the list of sales persons an comparing their annual compensation Program Summary: This program will calculate and display the total annual compensation of a salesperson. Here in this program the salary of the salesman and its commission rate is fixe and program accepts sales amount. */ import java.util.ArrayList; import java.util.Scanner; import java.text.NumberFormat; class SalesPerson { private final double fixed_Salary = 35750.00; private final double commission_Rate = 12.0; private final double sales_Target = 125250.00; private String name; private double annual_Sales; //default constructor public SalesPerson() { name = Ã¢â‚¬Å"UnknownÃ¢â‚¬ ; annual_Sales = 0.0; } //parameterized constructor public SalesPerson(String nm,double aSale) { name = nm; annual_Sales = aSale; } //getter method for the name public String getName(){ return name; } //setter method to set name public void setName(String nm){ name = nm; } //getter method for the annual sales public double getAnnualSales(){ return annual_Sales; } //method to set the value of annual sale public void setAnnualSales(double aSale) { annual_Sales = aSale; } //method to calcualte and get commission public double commission (){ double commission = 0; if(annual_Sales>= (sales_Target*(80/100))) {//80% of the sales target if(annual_Sales>= sales_Target){ commission = sales_Target * (commission_Rate/100.0) + (annual_Sales- sales_Target)* (75.0/100.0); } else commission = annual_Sales * (commission_Rate/100.0); } return commission ; } //method to calcualte and get annual compensation public double annualCompensation (){ return fixed_Salary + commission(); } } public class Main { public static void main(String args[]){ //array list to have a collection of sales persons ArrayList sales_Persons = new ArrayList(); //create an object of Scanner calss to get the keyboard input Scanner input = new Scanner(System.in); do{ //prompt the user to enter name System.out.print(Ã¢â‚¬Å"Enter salesperson name (stop to EXIT) : Ã¢â‚¬Å"); String name = input.nextLine().trim(); if(name.equalsIgnoreCase(Ã¢â‚¬Å"stopÃ¢â‚¬ )) break; //creating an object of SalesPerson class SalesPerson sales_Person = new SalesPerson(); //set name of sales person sales_Person.setName(name); //prompt the user to enter the annual sales System.out.print(Ã¢â‚¬Å"Enter the annual sales : Ã¢â‚¬Å"); double sale = input.nextDouble(); //set the value of annual sale of sales person object sales_Person.setAnnualSales(sale); //add sales Person to array list sales_Persons.add(sales_Person); //read a blank line input.nextLine(); } while(true); //getting the 2 minimum annual compensation double min = -1; double secondMin = -1; if(sales_Persons.size()>=3){ //intilization double firstValue = sales_Persons.get(0).annualCompensation(); double secondValue = sales_Persons.get(1).annualCompensation(); //intechanging if in reverse oreder if (firstValue < secondValue) { min = firstValue; secondMin = secondValue; } else { min = secondValue; secondMin = firstValue; } double nextElement = -1; //compring the 2 to n values for (int i = 2; i < sales_Persons.size(); i++) { nextElement = sales_Persons.get(i).annualCompensation(); if (nextElement < min) { secondMin = min; min = nextElement; } else if (nextElement < secondMin) { secondMin = nextElement; } } } //displaying result NumberFormat nf = NumberFormat.getCurrencyInstance(); //All salespersons and their total annual compensation System.out.println(Ã¢â‚¬Å" Ã¢â‚¬ ); System.out.printf(String.format(Ã¢â‚¬Å"%-20s%-20sÃ¢â‚¬ ,Ã¢â‚¬ NameÃ¢â‚¬ , Ã¢â‚¬Å"Total annual compensationÃ¢â‚¬  )); System.out.println(); for(SalesPerson salesperson :sales_Persons){ System.out.printf(String.format(Ã¢â‚¬Å"%-20s%20sÃ¢â‚¬ ,salesperson.getName(), nf.format(salesperson.annualCompensation()))); System.out.println(); } //dipslyaing the all sales persons additional amount of sales other the 2 memebrs who have minimum sales System.out.println(Ã¢â‚¬Å" Ã¢â‚¬ ); for(int i=0; i< sales_Persons.size();i++){ double compensation = sales_Persons.get(i).annualCompensation(); if(compensation == min || compensation == secondMin) continue; System.out.println(Ã¢â‚¬Å"Name of Salesperson : Ã¢â‚¬Å"+sales_Persons.get(i).getName()); System.out.println(Ã¢â‚¬Å"The total annual compensation : Ã¢â‚¬Å"+nf.format(compensation)); System.out.println(Ã¢â‚¬Å"Total Sales Total CompensationÃ¢â‚¬ ); double sale = sales_Persons.get(i).getAnnualSales(); for(double j =sale; j