【问题标题】:How to get a program to run with arrays and methods? [closed]如何让程序与数组和方法一起运行? [关闭]
【发布时间】:2018-03-13 04:30:37
【问题描述】:

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

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;
    }
}

【问题讨论】:

  • int d = dealers(); int [] _ = new int[ dealers() ]; 你打电话给dealers() 两次......你被问到经销商的数量两次。学习使用调试器。
  • 在提问之前了解如何引入上下文是值得的。提到“经销商”,但没有让我们知道他们是谁或他们是什么(汽车经销商?卡片经销商?毒贩?)。然后添加了一些销售佣金信息,但没有任何有关其相关性的信息,然后家庭作业被转储,没有任何序言或格式。最好说你有一个家庭作业问题,然后显示问题本身,然后定义你的术语,然后解释你遇到的问题,然后按顺序显示代码。
  • 经销商用于获取名称的方法,佣金是为了从输入的经销商销售中获得佣金。我遇到的问题是,当我运行程序时,它会打印 0。

标签: java arrays methods


【解决方案1】:

它要求您输入经销商数量两次的原因是因为您在主函数中调用了两次 Dealers() 函数。你可以通过替换来解决这个问题

int [] numberDealers = new int [dealers()];

int [] numberDealers = new int [d];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 2016-06-20
    • 2016-12-20
    • 2021-05-19
    相关资源
    最近更新 更多