Methods Java程序使用参数和方法时出现问题

Methods Java程序使用参数和方法时出现问题,methods,Methods,我被一个编程代码困在这里:以下是说明: 这是我的代码: import java.util.*; public class PantherSolver { public static void main(String[] args) { Scanner kb = new Scanner(System.in); String input; String p = "0| |"; int sig

我被一个编程代码困在这里:以下是说明:

这是我的代码:

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”,然后接受输入。下一个是用正负号计算的,如果它在数字之后或之前。如果它在后面,什么也不要做。如果在之前,请将该值更改为负值

另一个是试图在main语句中为所有这些内容创建一个循环。因为对于二次方程中的“a”,用户可能希望输入“100”。所以我必须循环这个

最后,在“0”行,我必须显示以前的用户输入,就像实际的计算器一样。我很难做到这一点,使它适合。例如,“a”从输入的两个空格开始。显然,输入的输入越多,“a”就会向左移动


谢谢

像所有初学者一样,你没有将问题分解成足够小的块,这让问题变得太难了

忘记用户输入和界面。让基本解算器算法与您知道答案的硬连线输入一起工作。写下它,测试它,然后把它放在一边。然后开始开发另一个只处理获取输入值并将其传递给实际执行工作的类的类

当你发现自己被太多的细节弄得不知所措时,把问题简化成可以处理的小部分。然后将它们结合在一起解决更大的问题

这是呼叫分解。它是解决所有问题的基础,尤其是编程和计算机科学

看在上帝的份上,这是在解一个二次方程。黑豹不必要的混乱

别被这个名字愚弄了。忘记所有那些花哨的输出,让基础解算器工作起来。有一些特殊情况需要您自己关注:

  • 两个真正的根
  • 一个零根,一个实根
  • 两个复共轭根

  • 来自常见问题解答:这个问题太本地化,不太可能帮助任何未来的访问者;它只与一个小的地理区域、一个特定的时间点或一个不适用于全球互联网受众的非常狭窄的情况相关。它来自常见问题解答:我已经做得足够多了。如果你不明白,我现在就放弃这门课。这里没有人欠你任何东西。别抱怨了。