java使用枚举创建算术表
我在做一些例子时,被这个问题困住了:
您需要开发一个程序,根据用户的开始和结束范围以及表格类型打印乘法或加法表格。 该程序将使用2D数组来计算表格。 该程序将利用该系统。出来printf()方法允许格式化输出。 该程序将有两种具有以下名称和签名的方法: public void createTable(int begin、int finish、TableType TableType) public void printTable() 将提供一个额外的方法来检查传入main的参数(称为argumentCheck())。如果传入的参数有效,此方法将返回true,并将设置数据成员:start、end和tableType。 没有构造函数,也没有任何其他方法(包括重载方法)。 该类将包含表的数据成员(句柄)(类型为float的2D数组)、表的起始值和结束值的起始值和结束值(ints),以及由{MULT,ADD}组成的枚举类型tableType(tableType)
public class ArithmeticTable {
private TableType tableType;
static int start = 1;
static int end = 10;
public enum TableType {
MULT {
int result(int x, int y) {return x * y;}},
ADD {
int result(int x, int y) {return x + y;}}
}
public boolean argumentCheck(String[] args){
if(args.length!=3){
System.err.println("Usage: Main <type> <start> <stop>");
System.err.println("\tWhere <type> is one of +, \"*\"");
System.err.println("\tand <start> is between 1 and 100");
System.err.println("\tand <stop> is between 1 and 100");
System.err.println("\tand start < stop");
return false;
}
if(args[0].charAt(0) == '+')
tableType = TableType.ADD;
else
tableType = TableType.MULT;
int sta;
int sto;
try{
sta = Integer.parseInt(args[1]);
sto = Integer.parseInt(args[2]);
}
catch(NumberFormatException ex){
System.err.println("Usage: Main <type> <start> <stop>");
System.err.println("\tWhere <type> is one of +, -, \"*\", /");
System.err.println("\tand <start> is between 1 and 100");
System.err.println("\tand <stop> is between 1 and 100");
System.err.println("\tand start < stop");
return false;
}
if((sta < 1 || sta > 100)||((sto < 1 || sto > 100))){
System.err.println("Usage: Main <type> <start> <stop>");
System.err.println("\tWhere <type> is one of +, -, \"*\", /");
System.err.println("\tand <start> is between 1 and 100");
System.err.println("\tand <stop> is between 1 and 100");
System.err.println("\tand start < stop");
return false;
}
if(sta >= sto){
System.err.println("Usage: Main <type> <start> <stop>");
System.err.println("\tWhere <type> is one of +, -, \"*\", /");
System.err.println("\tand <start> is between 1 and 100");
System.err.println("\tand <stop> is between 1 and 100");
System.err.println("\tand start < stop");
return false;
}
start = sta;
end = sto;
return true;
}
public void createTable(int begin, int finish, TableType tableType)
{
int i, result;
for(i = begin; i <= finish; i++){
switch(tableType){
case MULT:
result = begin * finish;
break;
case ADD:
result = begin + finish;
break;
default:
result = begin * finish;
break;
}
}
}
public void printTable()
{
}
public static void main(String[] args){
ArithmeticTable table = new ArithmeticTable();
if (table.argumentCheck(args)){
table.createTable(table.start, table.end, table.tableType);
table.printTable();
}
}
}
我试图使枚举具有基本操作数方法,并将符号(“*”和“+”)放入表中。有什么建议吗
# 1 楼答案
这就是你的意思吗