Java 使用二维并行阵列存储数据
我应该让多达16位客人从这样的菜单上点葡萄酒: 程序必须是模块化的。要下订单,必须向客人展示产品类型列表,然后根据产品类型进行变更。订单处理完毕后,我必须提交一份最终报告,其中包括:酒厂生产的总量、订购最多的葡萄酒产品类型以及订购次数最多的葡萄酒产品/变体组合 我不知道如何创建一个方法来搜索计数器数组中最有序的产品类型,然后创建另一个方法来搜索计数器数组中最有序的产品/变体组合。这就是我需要帮助的地方Java 使用二维并行阵列存储数据,java,arrays,Java,Arrays,我应该让多达16位客人从这样的菜单上点葡萄酒: 程序必须是模块化的。要下订单,必须向客人展示产品类型列表,然后根据产品类型进行变更。订单处理完毕后,我必须提交一份最终报告,其中包括:酒厂生产的总量、订购最多的葡萄酒产品类型以及订购次数最多的葡萄酒产品/变体组合 我不知道如何创建一个方法来搜索计数器数组中最有序的产品类型,然后创建另一个方法来搜索计数器数组中最有序的产品/变体组合。这就是我需要帮助的地方 import javax.swing.JOptionPane; public class
import javax.swing.JOptionPane;
public class Wine_Taste{
public static void main(String[] args){
String[]wines = {"Riesling", "Chardonnay", "Sauvignon Blanc", "Merlot"};
String[][]wineTypes=
{{"Dry- $4.50", "Off Dry-$4.00", "Sweet- $5.00",},
{"Apple- $6.00", "Lemon-$5.50","Vanilla- $6.00"},
{"Lime-$4.50", "Lemongrass- $6.50","Coconut- $7.00"},
{"Plum- $5.00", "Black Cherry- $7.50","Chocolate- $6.00"}};
}
double[][]prices= {{4.50, 4.00, 5.00},
{6.00, 5.50, 6.00},
{4.50, 6.50, 7.00},
{5.00, 7.50, 6.00}};
int[][]counter ={{0,0,0},
{0,0,0},
{0,0,0},
{0,0,0}};
counter = go(wines,wineTypes,counter,prices);
public static int[][] go(String[] wines, String[][] wineTypes, int[][] counter, double[][] prices){
go2(counter);
double totalCost = 0;
String user;
int x =0;
while (x<=16){
for(int i = 0;i<wines.length;i++){
JOptionPane.showMessageDialog(null,wines[i]);
}
user = JOptionPane.showInputDialog("choose wine 0-3");
int i = Integer.parseInt(user);
for(int j=0;j<wineTypes[i].length;j++){
JOptionPane.showMessageDialog(wineTypes[i][j]);
}
user = JOptionPane.showInputDialog("choose option 0-3");
int j = Integer.parseInt(user);
totalCost += prices[i][j];
counter[i][j]++;
user = JOptionPane.showInputDialog("Order more? y/n");
if (user.equals("y")){
x++;
else{
JOptionPane.showMessageDialog(totalCost);
}
}
}
return counter;
}
}
}
import javax.swing.JOptionPane;
公共级葡萄酒{
公共静态void main(字符串[]args){
字符串[]葡萄酒={“雷司令”、“霞多丽”、“长相思”、“梅洛”};
字符串[][]葡萄酒类型=
{{{“干货-4.50美元”、“干货-4.00美元”、“甜货-5.00美元”},
{“苹果-6.00美元”、“柠檬-5.50美元”、“香草-6.00美元”},
{“酸橙-4.50美元”、“柠檬草-6.50美元”、“椰子-7.00美元”},
{“李子-5.00美元”、“黑樱桃-7.50美元”、“巧克力-6.00美元”};
}
双[]价格={{4.50,4.00,5.00},
{6.00, 5.50, 6.00},
{4.50, 6.50, 7.00},
{5.00, 7.50, 6.00}};
int[][]计数器={{0,0,0},
{0,0,0},
{0,0,0},
{0,0,0}};
柜台=go(葡萄酒、葡萄酒类型、柜台、价格);
公共静态int[]go(String[]wines,String[]wineTypes,int[]counter,double[]prices){
go2(柜台);
双重总成本=0;
字符串用户;
int x=0;
虽然(x我不会这样设计程序。遵循一些基本的面向对象开发原则,您可以拥有一个葡萄酒类,其中包含葡萄酒类型、价格等,例如:
public class Wine {
String name;
String type;
double price;
public Wine(String name, String type, double price) {
super();
this.name = name;
this.type = type;
this.price = price;
}
//+getters setters
}
然后,您可以拥有一个order类,该类保存特定于订单的数据,如订购的葡萄酒、总价等
如果出于任何原因,您希望继续使用多个(不容易管理)数组的方法,那么我猜您可以创建一个哈希图,其中键是葡萄酒名称和流行度值。订购新葡萄酒时,您可以增加一个。您可以按如下方式增加:
如果出于任何原因您不想或不能使用这种方法,那么您可以创建两个函数:getPopularProductVarCombo()用于每种葡萄酒的最有序类型,getMostPopular()用于所有葡萄酒中最流行的类型
要实现getMostPopular,必须找到数组的最大值
实现getPopularProductVarCombo()的步骤然后找到每行的最大值。您可能需要的任何其他信息都可以通过类似的方式获取。这里没有实际问题……无论如何,我的建议是不要在只剩下3个小时的时间内离开编程实践。对不起,我忘了提我的问题。而且,今天有些事情出了问题,通常在周日晚上到期,我想我强烈建议你学习如何正确缩进代码。我不能使用对象:(我不能使用hashmaps,我不能使用break,我不能使用system.exit,我只能使用JOptionPane…我应该告诉你