有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将数组从方法复制到主方法

我被要求编写一个程序,在main方法中需要三个数组。该程序应该根据用户输入的工资率和小时数计算给定员工ID的工资总额。此外,它还要求我编写一个带有三个数组参数的calculateWages方法:小时、工资率和工资,该方法通过乘以相应的小时和工资率来计算和存储每个员工的工资

您的程序应显示每个员工编号,并要求用户输入该员工的工时和工资率。在获得所有员工的工时和工资率后,您的程序应调用calculateWages。接下来,您的程序应该显示每个员工的身份证号码和工资总额。注:雇员人数和最低工资均应命名为常量

    public static void main(String[] args) 
{
    double[] employeeID = {5658845, 4520125, 7895122, 8777541, 8451277,1302850, 7580489};   //Employee IDs of which we are calculating gross wages for
    double[] payRate = new double[7];
    double[] employeeWages = new double[7];
    double[] employeeHours = new double[7];
    Scanner keyboard = new Scanner(System.in);      //Needed for keyboard input



    for (int i = 0; i<employeeID.length; i++)
    {
        System.out.println("Employee ID: " + employeeID[i]);
        System.out.print("Enter the number of hours worked: ");
        employeeHours[i]=keyboard.nextDouble();

        //Get and validate hours from user.
        while(employeeHours[i]<0)
        {
            System.out.println("Error. Hours worked must not be negative.");
            System.out.print("Please enter hours worked: ");
            employeeHours[i]=keyboard.nextDouble();
        }   
        //Get and validate pay rate from employees.
        System.out.print("Enter the pay rate of employee: ");
        payRate[i]=keyboard.nextDouble();
        while(payRate[i]<10.24)
        {
            System.out.println("Error. Minimum pay rate must be at least $10.24");
            System.out.print("Please enter the pay rate: ");
            payRate[i]=keyboard.nextDouble();
        }
    }
    calculateWages(employeeWages, employeeHours, payRate);
    System.out.println("Gross Wages:");
    System.out.println();
    for(int i=0;i<employeeID.length;i++)
    {
        System.out.printf("%-9d%-7s",employeeID[i],employeeWages[i]);
    }

}
    public static String[] calculateWages(double[] employeeWages, double[] inputHours,double[] payRate)
    {   
    String[] formatWage = new String[7];
    DecimalFormat formatter = new DecimalFormat("$###.00");
    for(int i = 1;i<employeeWages.length;i++)
        {
        employeeWages[i]=inputHours[i]*payRate[i];
        formatWage[i]=formatter.format(employeeWages[i]);
        }
    return formatWage;
    }
}

共 (1) 个答案

  1. # 1 楼答案

    calculateWages正在返回一个数组,因此请将数组设置为等于它

    String [] result = calculateWages(employeeWages, employeeHours, payRate);