我在Java课程中,我在开始分配时遇到了极大的困难。我不想要答案,但我真的很感激任何和所有的帮助,以及如何做的基本概述。
超市希望奖励每天最好的顾客,在超市的屏幕上显示顾客的名字。为此,客户的购买金额存储在
ArrayList<Double>
中,客户的名称存储在相应的ArrayList<String>
中。实施方法
public static String nameOfBestCustomer( ArrayList<Double> sales, ArrayList<String> customers)
返回销售量最大的客户名称。
编写一个程序,提示收银员输入所有价格和名称,将它们添加到两个数组列表中,调用您实施的方法,并显示结果。使用0的价格作为哨兵。
答案 0 :(得分:0)
您可以使用扫描仪获取收银员输入的值(购买金额的int和客户名称的字符串,使用条件并抛出异常以保证值的类型)。这些值放在两个ArrayList(整数和字符串列表)中。 超市关闭后,您可以在购买金额列表中使用循环查找最大购买金额及其在列表中的位置,并使用此职位在其他列表中查找最佳客户。
答案 1 :(得分:0)
这是你可以做的:
package com.assignments;
import java.util.ArrayList;
import java.util.Scanner;
public class MaxSalesCustomer {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> customerNameArray = new ArrayList<String>();
ArrayList<Integer> customerSalesValue = new ArrayList<Integer>();
String continueAdding = "Y";
Scanner sc=new Scanner(System.in);
while(continueAdding.equals("Y")){
System.out.println("Please Enter the customer Name:");
String name = sc.next();
customerNameArray.add(name);
System.out.println("Please Enter the sales value:");
Integer sales = sc.nextInt();
customerSalesValue.add(sales);
System.out.println("Do you want to continue 'Y/N' ?" );
continueAdding = sc.next();
}
String maxSalesCustomerName = getMaxSalesCustomerName(customerNameArray,customerSalesValue);
System.out.println(maxSalesCustomerName);
}
public static String getMaxSalesCustomerName(ArrayList<String> customerNameArray,ArrayList<Integer> customerSalesValue){
Integer maxValue = 0;
String maxSalesCustomerName = new String();
for (int i = 0; i < customerSalesValue.size(); i++){
if (maxValue < customerSalesValue.get(i)){
maxValue = customerSalesValue.get(i);
maxSalesCustomerName = customerNameArray.get(i);
}
}
return maxSalesCustomerName;
}
}