【发布时间】: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。