如何使用数组和方法运行程序?

时间:2018-03-13 04:30:37

标签: java arrays methods

我的家庭作业有问题。当程序运行时,它一直要求用户两次而不是一次进入经销商,同时在尝试计算总佣金错误时,总销售量也无法使其运行。

Sales
commission
$1 - $5,000
8%
More than $5,000 to $15,000
15%
More than $15,000
20%

问题:

  

编写方法输入并返回经销商数量。在此处执行适当的数据验证。

     

编写一种方法来收集所需的输入数据。在此处执行适当的数据验证。

     

编写一个计算佣金数组的方法。

     

编写一种方法来计算和返回经销商的总销售额。总销售额不包括佣金。

     

编写一种方法来计算和返回经销商的平均销售额。平均销售额不包括佣金。

     

编写一种方法来计算并返回经销商的总佣金。

     

编写一种方法,以表格格式显示所有经销商的经销商名称和销售额以及佣金金额。

     

编写一个接受经销商名称作为参数的方法,并返回给定经销商的佣金金额。如果给定的名称不存在,请发出错误消息。

     

在main方法中,请务必调用方法来执行操作。确保显示您的方法返回的所有计算数据。例如,必须显示总计和平均值,因此可以检查答案。使输出具有描述性,并在所有货币值的小数点后面提供2位数。

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int d = dealers();

        int [] numberDealers = new int [dealers()];
        String [] employeeInfo = new String[numberDealers.length];
        dealerInfo(employeeInfo.length);
        getCommission(d);
        //dealerTotalSales(employeeInfo.length);    
    }

    //Method to get number of dealers from user input
    public static int dealers() {
        Scanner input = new Scanner(System.in); // Scanner for user input
        System.out.println("Enter the number of dealears: "); 

        int numberDealers = input.nextInt();//Read user input
        //Check to see if user is in range
        //While not in range display error message and ask for input again
        while(numberDealers < 0 || numberDealers > 20) 
        {
            System.out.println("Invalid number, Please enter a number dealers 
        from 0 - 20!");
            numberDealers = input.nextInt();
        }
        return numberDealers; //Return number of Dealers
    }
    public static void dealerInfo(int dealer) {
        Scanner input = new Scanner(System.in); // Scanner for user input
        String[] dealersName = new String [dealer];
        double[] dealerSales = new double [dealer];


        for (int i = 0; i < dealer; i++) 
        {
            System.out.println("\nEnter the name of dealer: ");
            dealersName[i] = input.next();

            System.out.println("\nEnter the sales for dealer:  ");
            dealerSales[i] = input.nextDouble();

            System.out.println("Name     "  +  "Sales");    
            System.out.println(dealersName[i] + "       " + dealerSales[i]);
        }   



    }

    public static void getCommission( int totalSales) {
        double commission = 0.0;
        double commissionRate ;
        if( totalSales >0 && totalSales < 5000) {
            commission = 0.10;
            //System.out.print(commission);
        }else if(totalSales < 15000 ){
            commission = 0.15;
            //System.out.print(commission);

        }else {
            commission = 0.20;  
            //System.out.print(commission);

        }
        commissionRate = commission + totalSales;
        System.out.println("\n"+commissionRate );

    }





    public static double dealerTotalSales(int[] numDealers)
    {
        double totalSales = 0.0;
        for (int i = 0; i < numDealers.length; i++) {
            totalSales = totalSales + numDealers[i];    
        }
        return totalSales;
    }
}

1 个答案:

答案 0 :(得分:1)

要求您两次输入经销商数量的原因是因为您在主要功能中两次调用dealer()函数。你可以通过替换

来解决这个问题
int [] numberDealers = new int [dealers()];

int [] numberDealers = new int [d];