Trouble with payroll program in Java

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • HardToHandle
    New Member
    • Nov 2011
    • 1

    Trouble with payroll program in Java

    Hello,

    I am a novice programmer and I was given the following task: write a Payroll class that uses the following arrays as fields : employeeId (holds 7 integers that are initialized, I placed them in my code below), hours and payRate (both are doubles and hold 7 numbers). I need a default constructor, getEmployeeId accessor, setHours and setPayRate mutators, and getGrossPay, which accepts employeeId as an argument and returns gross pay for the employee given.
    The program then should display the number of each employee and ask for the employee's hours and pay rate, and then display the employee's number and gross pay. This is the code I have so far:

    Code:
     import java.util.Scanner;
    
    
    class Payroll
    {
        private String [] employeeId;
        private double [] hours;
    	 private double [] payRate;
        
         public Payroll()
         {
            employeeId = new String [] { "5658845", "4520125", "7895122" , "8777541", "8451277", "1302850", "7580489" };
            hours = new double[7];
    		  payRate = new double[7];
         }
        
         public String [] getEmployeeId () 
         {
         return employeeId;
         }
        
         public void setHours (double [] hrs)
         {
          hours = hrs;
         }
    	  
    	  public void setPayRate (double [] rate)
    	  {
    	  payRate = rate;
    	  }
        
         public int getGrossPay (int employeeId)
         {
           int index = 0;
            for(int i = 0; i < employeeId; i++)
             {
              if (employeeId [i].equalsIgnoreCase (employeeId) )
              {
                 index = i;
                  break;
              }
              
               
             }
            
             return hours [index] * payRate [index]; 
    
              
              
            }
    
    
    }
        
        
    
        
        
        
    
    
    public class PayrollDriver
    {
       public static void main (String args[])
        {
         Scanner in = new Scanner (System.in);
        
         Payroll pay = new Payroll();
        
         String [] EmployeeId = Payroll.getEmployeeId();
        
         double [] localHours = new double [EmployeeId.length];
        
         for(double i = 0; i < EmployeeId.length; i++)
          {
            System.out.println ("Please enter the hours worked on " + EmployeeId[i]);
             localHours[i] = in.nextDouble();
          }
          
          pay.setHours(localHours);
    		
    		
    		
    		 double [] localPayRate = new double [EmployeeId.length];
        
         for(double i = 0; i < EmployeeId.length; i++)
          {
            System.out.println ("Please enter the pay rate for Employee " + EmployeeId[i]);
             localPayRate[i] = in.nextDouble();
          }
          
          pay.setPayRate(localPayRate);
    
    		
    		
    		
    		
          
          for (int i = 0; i < employeeId.length; i++)
          {
             System.out.print("The gross pay for Employee " + EmployeeId[i]); //"The gross pay for employee Id
            System.out.println( " is " + pay.getHours(EmployeeId[i])* pay.getPayRate(EmployeeId[i]) ); //Display gross pay          
          }
        
        }
        
    }
    Those are the errors I get:

    Code:
     PayrollDriver.java:47: array required, but int found
              if (employeeId [i].equalsIgnoreCase (employeeId) )
                             ^
    PayrollDriver.java:56: possible loss of precision
    found   : double
    required: int
             return hours [index] * payRate [index]; //hours [i] * payrate [i];
                                  ^
    PayrollDriver.java:80: non-static method getEmployeeId() cannot be referenced from a static context
         String [] EmployeeId = Payroll.getEmployeeId();
                                       ^
    PayrollDriver.java:86: possible loss of precision
    found   : double
    required: int
            System.out.println ("Please enter the hours worked on " + EmployeeId[i]);
                                                                                 ^
    PayrollDriver.java:87: possible loss of precision
    found   : double
    required: int
             localHours[i] = in.nextDouble();
                        ^
    PayrollDriver.java:98: possible loss of precision
    found   : double
    required: int
            System.out.println ("Please enter the pay rate for Employee " + EmployeeId[i]);
                                                                                       ^
    PayrollDriver.java:99: possible loss of precision
    found   : double
    required: int
             localPayRate[i] = in.nextDouble();
                          ^
    PayrollDriver.java:109: cannot find symbol
    symbol  : variable employeeId
    location: class PayrollDriver
          for (int i = 0; i < employeeId.length; i++)
                              ^
    PayrollDriver.java:112: cannot find symbol
    symbol  : method getHours(java.lang.String)
    location: class Payroll
            System.out.println( " is " + pay.getHours(EmployeeId[i])* pay.getPayRate(EmployeeId[i]) ); //Display gross pay          
                                            ^
    PayrollDriver.java:112: cannot find symbol
    symbol  : method getPayRate(java.lang.String)
    location: class Payroll
            System.out.println( " is " + pay.getHours(EmployeeId[i])* pay.getPayRate(EmployeeId[i]) ); //Display gross pay          
                                                                         ^
    10 errors
    Any help would be gladly appreciated, I know there is something important I am missing somewhere. Thanks in advance!
Working...