【发布时间】:2015-01-16 12:03:48
【问题描述】:
我是编程新手。 (非常) 我正在尝试创建一个统计计算器。 我不担心公式,也不担心我还需要输入什么。 cmets 在那里,因为那些是我尝试过的东西。(没有工作)这是一个菜单驱动的程序。 我选择“a”进入系列菜单,再次选择“a”输入数字。 我正在尝试修复代码以接受未知值的 ArrayList。 这样人们可以输入任意数量的数字,并且程序的其余部分将继续正常运行。我现在将其设置为 5 个数组。
(1) 有没有办法修复代码以接受 ArrayList?使用 cmets 你可以看到我尝试过的东西。当我现在运行它时,它编译并运行良好,但是当我使用 ArrayList 时出现错误。我真的需要一些帮助。我被困住了。在进入下一个案例之前,我正在处理这一部分。我希望它只提示用户输入数字列表,然后根据要求使用它来执行计算器中的其余功能。请帮忙。这可能很简单,但它杀死了我。
(2) 另外,当我运行代码并到达可以输入第一个数字的位置时,它会一直带我回到主菜单。我希望它留在子菜单/系列菜单中,直到用户选择“q”。
import java.util.Scanner; // Scanner is in the java.util package
//import java.util.ArrayList;
//import java.util.List;
class FloatWrapper {
public float value;
public FloatWrapper(float param) {
value = param;
}
}
public class BasicCalculator {
public static void main(String[] args) {
int menuOption = 0;
//List myList = new ArrayList();
double[] myList = new double[5];
//ArrayList<integer> myList = new ArrayList<>();
int counter = 0;
while (menuOption != 'q')
do {
menuOption = mainMenu();
switch (menuOption) {
case 'a':
{
switch (seriesmenu()) {
case 'a':
myList[counter] = dataInput();
counter++;
break;
case 'q':
mainMenu();
break;
default:
seriesmenu();
}
}
break;
//case 'b' :
//case 'c' :
//case 'd' :
//case 'e' :
case 'f':
display(myList);
break;
//case 'g' :
//case 'h' :
//case 'i' :
//case 'j' :
case 'q':
System.exit(0);
return;
}
}
while (menuOption != 'q');
}
//Main Menu Display
static char mainMenu() {
Scanner input = new Scanner(System.in);
System.out.println("\n\nBASIC CALCULATOR");
System.out.println(" a. Insert Series");
System.out.println(" b. Mean");
System.out.println(" c. Median");
System.out.println(" d. Mode");
System.out.println(" e. Standard Deviation\n");
System.out.println(" f. Show Series");
System.out.println(" g. Show Elements Greater than Mean");
System.out.println(" h. Show Elements Less than Mean");
System.out.println(" i. Show Series in Order");
System.out.println(" j. Show Full Report\n");
System.out.println(" q. Quit");
System.out.print("Insert option: ");
return (input.next().charAt(0));
}
//Menu to insert values
static char seriesmenu() {
Scanner input = new Scanner(System.in);
System.out.println("\n\nSeries Options");
System.out.println(" a. Enter New Number");
System.out.println(" q. Back to Calculator");
System.out.print("Insert option: ");
return (input.next().charAt(0));
}
//Reads input from keyboard (menu, values, etc)
static double dataInput() {
Scanner scanner = new Scanner(System.in);
Scanner input = new Scanner(System.in);
System.out.print(" Enter a Number: ");
double i = input.nextInt();
return i;
}
//displays array
static void display(double[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
这是我的更新代码,但我遇到了很多错误,我想我想回到原来的再试一次。
import java.util.Scanner; // Scanner is in the java.util package
import java.util.ArrayList;
import java.util.List;
class FloatWrapper{
public float value;
public FloatWrapper(float param){
value=param;
}
}
public class BasicCalculator {
ArrayList<Integer> myArrayList = new ArrayList<>();
public static void main(String[] args)
{
int menuOption = 0;
//List myList = new ArrayList();
double [] myList = new double [10];
int counter =0;
//while(menuOption != 'q')
do{
menuOption = mainMenu();
switch(menuOption)
{
case 'a':
{
do{
seriesOption = seriesmenu();
switch(seriesmenu())
{
case 'a' :
myList[counter] = dataInput();
counter++;
break;
case 'q':
mainMenu();
break;
default:
seriesmenu();
} while (seriesOption != 'q');
}break;
//case 'b' :
//case 'c' :
//case 'd' :
//case 'e' :
case 'f' : display(myList);
break;
//case 'g' :
//case 'h' :
//case 'i' :
//case 'j' :
case 'q': System.exit(0);
return;
}
}
while(menuOption != 'q');
}
//Main Menu Display
static char mainMenu()
{
Scanner input=new Scanner(System.in);
System.out.println("\n\nBASIC CALCULATOR");
System.out.println(" a. Insert Series");
System.out.println(" b. Mean");
System.out.println(" c. Median");
System.out.println(" d. Mode");
System.out.println(" e. Standard Deviation\n");
System.out.println(" f. Show Series");
System.out.println(" g. Show Elements Greater than Mean");
System.out.println(" h. Show Elements Less than Mean");
System.out.println(" i. Show Series in Order");
System.out.println(" j. Show Full Report\n");
System.out.println(" q. Quit");
System.out.print("Insert option: ");
return(input.next().charAt(0));
}
//Menu to insert values
static char seriesmenu()
{
Scanner input=new Scanner(System.in);
System.out.println("\n\nSeries Options");
System.out.println(" a. Enter New Number");
System.out.println(" q. Back to Calculator");
System.out.print("Insert option: ");
return(input.next().charAt(0));
}
//Reads input from keyboard (menu, values, etc)
static double dataInput()
{
Scanner scanner = new Scanner(System.in);
Scanner input=new Scanner(System.in);
System.out.print(" Enter a Number: ");
//double i = input.nextInt();
int i = input.nextInt();
myArrayList.add( i );
return i;
}
//displays array
static void display(double [] args)
{
for (int i = 0; i < args.length ; i++)
{
System.out.println(args[i]);
}
}
}
【问题讨论】:
-
如果您出于几个不同的原因取消注释
mylist,您会看到一个错误 - 1)integer不是 Java 中的类型,您可能需要Integer和 2) 您可以'不要在该方法的范围内声明两种名称为myList的变量。 -
but when I use the ArrayList I get an error.您当然应该指定异常详细信息(错误消息、堆栈跟踪、引发异常的行)。
标签: java arrays netbeans arraylist statistics