Trying to sentinel loop this program.

Posted by roger34 on Stack Overflow See other posts from Stack Overflow or by roger34
Published on 2010-06-07T00:58:37Z Indexed on 2010/06/07 1:12 UTC
Read the original article Hit count: 307

Filed under:
|
|

Okay, I spent all this time making this for class but I have one thing that I can't quite get: I need this to sentinel loop continuously (exiting upon entering x) so that the

 System.out.println("What type of Employee? Enter 'o' for Office " +
 "Clerical, 'f' for Factory, or 's' for Saleperson.  Enter 'x' to exit." ); 

line comes back up after they enter the first round of information. Also, I can't leave this up long on the (very) off chance a classmate might see this and steal the code. Full code following:

    import java.util.Scanner;
    public class Project1 {

    public static void main (String args[]){

    Scanner inp = new Scanner( System.in );
    double totalPay;

    System.out.println("What type of Employee? Enter 'o' for Office " +
    "Clerical, 'f' for Factory, or 's' for Saleperson.  Enter 'x' to exit." );  
    String response= inp.nextLine();



    while (!response.toLowerCase().equals("o")&&!response.toLowerCase().equals("f")
    &&!response.toLowerCase().equals("s")&&!response.toLowerCase().equals("x")){


    System.out.print("\nInvalid selection,please enter your choice again:\n");
        response=inp.nextLine();
   }


     char choice = response.toLowerCase().charAt( 0 );



     switch (choice){

    case 'o':  
         System.out.println("Enter your hourly rate:");
         double officeRate=inp.nextDouble();
         System.out.println("Enter the number of hours worked:");
         double officeHours=inp.nextDouble();
         totalPay = officeCalc(officeRate,officeHours);
         taxCalc(totalPay);
         break;      
    case 'f': 
         System.out.println("How many Widgets did you produce during the week?");
         double widgets=inp.nextDouble();
         totalPay=factoryCalc(widgets);
         taxCalc(totalPay);
         break;
    case 's':
         System.out.println("What were your total sales for the week?");
         double totalSales=inp.nextDouble();
         totalPay=salesCalc(totalSales);
         taxCalc(totalPay);
         break;


 }



     }


     public static double taxCalc(double totalPay){

    double federal=totalPay*.22;

    double state  =totalPay*.055;

    double netPay = totalPay - federal - state;

    federal =federal*Math.pow(10,2);
    federal =Math.round(federal);
    federal= federal/Math.pow(10,2);
    state =state*Math.pow(10,2);
    state =Math.round(state);
    state= state/Math.pow(10,2);
    totalPay =totalPay*Math.pow(10,2);
    totalPay =Math.round(totalPay);
    totalPay= totalPay/Math.pow(10,2);
    netPay =netPay*Math.pow(10,2);
    netPay =Math.round(netPay);
    netPay= netPay/Math.pow(10,2);

    System.out.printf("\nTotal Pay \t: %1$.2f.\n", totalPay);
    System.out.printf("State W/H \t: %1$.2f.\n", state);
    System.out.printf("Federal W/H : %1$.2f.\n", federal);
    System.out.printf("Net Pay \t: %1$.2f.\n", netPay);

        return totalPay;
  }


     public static double officeCalc(double officeRate,double officeHours){


    double overtime=0;
    if  (officeHours>=40)
        overtime = officeHours-40;
    else 
        overtime = 0;
    if  (officeHours >= 40)
        officeHours = 40;
    double otRate = officeRate * 1.5;

    double totalPay= (officeRate * officeHours) + (otRate*overtime);

        return totalPay;
  } 
     public static double factoryCalc(double widgets){

    double totalPay=widgets*.35 +300;

        return totalPay;
    }
     public static double salesCalc(double totalSales){

    double totalPay = totalSales * .05 + 500;

        return totalPay;
   }
    }

© Stack Overflow or respective owner

Related posts about java

Related posts about homework