我的家庭作业有问题。当程序运行时,它一直要求用户两次而不是一次进入经销商,同时在尝试计算总佣金错误时,总销售量也无法使其运行。
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;
}
}
答案 0 :(得分:1)
要求您两次输入经销商数量的原因是因为您在主要功能中两次调用dealer()函数。你可以通过替换
来解决这个问题int [] numberDealers = new int [dealers()];
与
int [] numberDealers = new int [d];