如何使用扫描仪输入二维数组?

时间:2014-02-19 05:17:33

标签: arrays multidimensional-array java.util.scanner

我正在参加在线Java课程并尝试第二次作业。第一个任务并不困难,但这个任务只是超越顶级。老实说,我不知道从哪里开始。问题是这个类是在线的,基本的说明是阅读这些章节然后编写程序。因为我的导师不在身体上,所以没有多少指导。

我之前从未使用过扫描仪或创建了二维数组。我的导师给出了关于他的骨架程序的每个区域做什么的说明,但我不知道从哪个开始。

你的任务是实现一个类似的方案来存储任意数量的术语的多项式,例如 输入每个术语的术语数和组件(系数,变量和指数) 键盘。 要实现交互式输入,我们将使用java.utils中定义的Java类Scanner 标准包装。 Scanner类可以在Java中用于从文件中读取数据类型。自输入 console(键盘)被视为名为System.in的文件,我们可以为该输入流创建一个Scanner 作为新的Scanner(System.in),如下所示。使用其方法定义Scanner对象后 next()你可以从文件/键盘中读取字符串。 以下不完整的程序是您的任务。你应该完成而不改变 现有代码。 您的输出应该是用户输入的多项式的项,用+符号分隔。 下面代码中的其他说明,您将更改这些说明以实现所请求的功能。

import java.util.Scanner;
public class Polynomials {


public static void storeTerm (int coeff, String var, int exp, String poly[][], int 
where){

//ENTER THE COEFFICIENT, VARIABLE AND EXPONENT INTO THE
//ARRAY POLY THAT REPRESENTS THE POLYNOMIAL, AT POSITION "where" 
//THAT RANGES BETWEEN INDEX 0 AND POLY.LENGTH-1 

} 

public static void printTerm (String [] term) {

//PRINTS EACH TERM 
//IF THE EXPONENT OF THE VARIABLE IS 1 DOE NOT PRINT THE EXPONENT
//IF THE EXPONENT IS 0, PRINT ONLY THE COEFFCIENT
//IF THE COEFFICIENT IS 1, DO NOT PRINT IT, UNLESS IT IS THE ONLY COMPONENT OF 
//THE TERM

} 

public static void printPolynomial(String terms[][]){

//CALL printTerm in a loop to print all terms separated by + signs

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
int numberTerms = 0;


System.out.println("How many terms?");
numberTerms = sc.nextInt();

//ENTER HERE THE CODE TO CREATE THE TWO DIMENSIONAL ARRAY NEEDED TO STORE THE TERMS
//OF THE POLYNOMIAL 

if (numberTerms <= 0) 

System.out.println("Error: Polynomials must have at least one term");

else {


String coeff = "", variable="", exponent="";



for (int i = 1; i<= numberTerms; i++) {

System.out.println("Enter the coeffcient for term " + i);
coeff = sc.next();
System.out.println("Enter the variable name:");
variable = sc.next();
System.out.println("Enter the expoenent for this term");
exponent = sc.next();


//CALL METHOD storeTerm TO INPUT THIS NEW TERM INTO THE ARRAY WRITE THE CORRECT 
//CALL TO storeTerm HERE


} 

printPolynomial(terms); 

}//endf if 



}//end main

}//end class 

再次没有寻找答案。从哪里开始。然后我会发布我的结果。

1 个答案:

答案 0 :(得分:0)

二维数组进入的位置并不完全明显,因为结构暗示了一系列术语。

您需要在Java中定义一个数据结构,以保存每个术语的信息。

根据描述,似乎输入是3x ^ 2 + 5y ^ 7形式的多项式,而不是xy + 3y ^ 2z ^ 3。