我被困在这里只有一个编程代码:以下是说明:http://my.fit.edu/~akhademzadeh2011/courses/cse1001/f2012/ass/ass04.pdf
而且,这是我的代码:
import java.util.*;
public class PantherSolver {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String input;
String p = "0| |";
int signcontrol = 1;
input = GUI(p);
int firstnumber = inputmethod(input);
int firstsign = sign(input,signcontrol);
String secondp = p1(firstsign,firstnumber,p);
String input2 = GUI(secondp);
}
public static String p1(int firstsign,int firstnumber, String p) {
if (firstsign>0) {
p = "0| "+ firstnumber +" |";
}
else {
p = "0| -"+ firstnumber +" |";
}
return p;
}
public static String GUI1(String secondp) {
Scanner kb = new Scanner(System.in);
String newinput = kb.nextLine();
System.out.println(" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
System.out.println(" ========================================");
System.out.println(secondp);
System.out.println("1|--------------------------------------|");
System.out.println("2| OFF +/- AC |");
System.out.println("3| 1 2 3 4 5 , |");
System.out.println("4| 6 7 8 9 0 SOLVE |");
System.out.println(" ========================================");
System.out.println(" Key: " + newinput +"");
return newinput;
}
public static String GUI(String p) {
Scanner kb = new Scanner(System.in);
System.out.println(" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
System.out.println(" ========================================");
System.out.println(p);
System.out.println("1|--------------------------------------|");
System.out.println("2| OFF +/- AC |");
System.out.println("3| 1 2 3 4 5 , |");
System.out.println("4| 6 7 8 9 0 SOLVE |");
System.out.println(" ========================================");
String input1=kb.nextLine();
System.out.println(" Key: " + input1 +"");
return input1;
}
public static int inputmethod(String input) {
Scanner kb = new Scanner(System.in);
int a = 0;
if (input.length()==2) {
if((input.charAt(0)=='0')||(input.charAt(0)=='1')) {
;
}
else if((input.charAt(0)=='2') && !((input.charAt(1)==('0'))||(input.charAt(1)==('1'))||(input.charAt(1)==('2'))||(input.charAt(1)==('S'))||(input.charAt(1)==('T'))||(input.charAt(1)==('U'))||(input.charAt(1)==('V'))||(input.charAt(1)==('W'))||(input.charAt(1)==('X'))||(input.charAt(1)==('Y'))||(input.charAt(1)==('Z')))) {
;
}
else if((input.charAt(0)=='3') && !((input.charAt(1)==('0'))||(input.charAt(1)==('2'))||(input.charAt(1)==('4'))||(input.charAt(1)==('6'))||(input.charAt(1)==('8'))||(input.charAt(1)==('T'))||(input.charAt(1)==('U')))) {
;
}
else if((input.charAt(0)=='4') && !((input.charAt(1)==('0'))||(input.charAt(1)==('2'))||(input.charAt(1)==('4'))||(input.charAt(1)==('6'))||(input.charAt(1)==('8'))||(input.charAt(1)==('U'))||(input.charAt(1)==('V'))||(input.charAt(1)==('W'))||(input.charAt(1)==('X'))||(input.charAt(1)==('Y'))||(input.charAt(1)==('Z')))) {
;
}
else if ((input.equals("20")) || (input.equals("21")) ||(input.equals("22")) ||(input.equals("2S")) ||(input.equals("2T")) ||(input.equals("2U")) ||(input.equals("2V")) ||(input.equals("2X")) ||(input.equals("2Y")) ||(input.equals("2Z")) ||(input.equals("30")) ||(input.equals("32")) ||(input.equals("34")) ||(input.equals("36")) ||(input.equals("38")) ||(input.equals("40")) ||(input.equals("42")) ||(input.equals("44")) ||(input.equals("46")) ||(input.equals("48")) ||(input.equals("4U")) ||(input.equals("4V")) ||(input.equals("4W")) ||(input.equals("4X")) ||(input.equals("4Y")) ||(input.equals("4Z"))) {
switch(input) {
case "20":
case "21":
case "22":
OFF();
break;
case "2X":
case "2Y":
case "2Z":
main(null);
break;
case "30":
a = 1;
break;
case "32":
a = 2;
break;
case "34":
a = 3;
break;
case "36":
a = 4;
break;
case "38":
a = 5;
break;
case "40":
a = 6;
break;
case "42":
a = 7;
break;
case "44":
a = 8;
break;
case "46":
a = 9;
break;
case "48":
a = 0;
break;
case "4U":
case "4V":
case "4W":
case "4X":
case "4Y":
case "4Z":
solve();
break;
}
}
else {
System.out.println("Invalid key.");
System.out.println(" Key: " + input+"");
inputmethod(input);
}
}
else {
System.out.println("Invalid key.");
System.out.println(" Key: " + input +"");
inputmethod(input);
}
return a;
}
public static int sign (String input, int signcontrol) {
int sign1 = signcontrol;
if ((input.equals("2S")) ||(input.equals("2T")) ||(input.equals("2U")) ||(input.equals("2V"))) {
sign1 = sign1 * -1;
}
else {
sign1=1;
}
return sign1;
}
public static void OFF() {
System.exit(0);
}
public static void solve() {
}
}
我从哪里开始?我被困在很多地方。有人可以指导我吗?首先,我遇到了这些方法的问题。我使用了几种方法来显示“Panther Solver”并获得输入。
作业要求显示“Panther Solve”,然后用户选择他/她想要的数字。 IE“32”表示2.但这非常棘手。如果用户在数字之前选择+/-符号,则将他/她关于输入的值更改为负数。但是它不会立即显示负号,而是仅在他/她选择数字后显示。
每次选择数字并按Enter键时,屏幕几乎会重新加载,并在答案键中显示您输入的内容。在“0”行中,它还显示您刚刚选择的内容。
如果在选择数字后选择+/-符号,则不会发生任何事情。如果选择任何与输入无关的有效密钥,则不会发生任何事情。就像二次方程一样,用a,b,c,你输入你的第一个响应(a),然后输入逗号,然后转到b,然后是逗号,然后是c,然后是求解。每次输入时,都会评估输入。
在输入中,如果需要,所有字母必须大写,否则您将返回“无效密钥”。此外,对于等式,如果a = 0,则返回“Error”。
我还必须使用i。
制定虚数的解决方案我被困在所有部分。我的问题是,我在代码中从哪里开始。 我的第一个问题是首先显示“Panther Solver”,然后接受输入。下一个评估为负/正号,如果它在数字之后或之前。如果它来了,什么都不做。如果之前,请将值更改为负值。
另一个是试图在主要声明中为所有这些做出循环。因为对于二次方程中的“a”,用户可能想要输入“100”。所以我必须循环。
最后,在“0”行,我必须显示以前的用户输入,就像实际的计算器一样。我很难做到这一点,并使其适合。例如,“a”从输入的两个空格开始。显然输入了很多输入,“a”向左移动。
由于
答案 0 :(得分:2)
与所有初学者一样,如果不能将问题分解成足够小的块,那么问题就太难了。
忘记用户输入和界面。获得基本求解器算法,使用您知道答案的硬连线输入。写下来,测试它,把它放在一边。然后开始开发另一个类,它只处理获取输入值并将它们传递给实际完成工作的类。
如果您发现自己被太多细节所淹没,请将问题简化为可以处理的较小部分。然后将它们编织在一起以解决您的大问题。
这是呼叫分解。它是解决所有问题的基础,尤其是编程和计算机科学。
为了善良,它正在解决二次方程。豹?不必要地混淆。
不要被这个名字所迷惑。忘记所有那些花哨的输出并让基本求解器工作。您需要关注特殊情况: