二次方程式求解项目

时间:2019-06-18 02:55:18

标签: java swing

你好,我正在做一个小项目来求解二次方程。我有2个问题 1.当方程式没有根并且消息对话框应该像代码中那样出现时,出现了问题。我输入了数字,但没有任何反应。 2.有什么方法可以像真正的计算器一样操作,例如,我输入a = 4和b = 7和c = 5然后按计算(不是a = 4.00,b = 7.00,c = 5.00),但是结果将始终显示为double变量。

我尝试在“ try”部分中更改变量,但是事情并没有按照我想要的方式进行。这是我的代码:

JButton btnReset = new JButton("reset");
    btnReset.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            a.setText(null);
            b.setText(null);
            c.setText(null);
            txtx1.setText(null);
            txtx2.setText(null);
            txtx.setText(null);

        }
    });
    btnReset.setBounds(312, 37, 89, 23);
    contentPane.add(btnReset);

    JButton btnCalculate = new JButton("calculate");
    btnCalculate.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            String A=a.getText();
            String B=b.getText();
            String C=c.getText();
            try {
                double aa=Double.parseDouble(A);
                double bb=Double.parseDouble(B);
                double cc=Double.parseDouble(C);
                double delta=bb*bb-4*aa*cc;
                double candelta=(double) Math.sqrt(delta);
                if(candelta>0) {
                    double x1=(-bb-candelta)/2*aa;  
                    double x2=(-bb+candelta)/2*aa;
                    txtx1.setText(String.valueOf(x1));
                    txtx2.setText(String.valueOf(x2));
                }
                if(candelta==0) {
                    txtx1.setText(null);
                    txtx2.setText(null);
                    double x=-bb/(2*aa);
                    txtx.setText(String.valueOf(x));
                }
                if(candelta<0) {
                    JOptionPane.showMessageDialog(btnCalculate, "No roots", "Result", JOptionPane.INFORMATION_MESSAGE);
                }
                if(aa==0) {
                    txtx1.setText(null);
                    txtx2.setText(null);
                    double x = -1*cc/bb;
                    txtx.setText(String.valueOf(x));
                }
                    }
            catch(NumberFormatException xNumberFormat){
                JOptionPane.showMessageDialog(btnCalculate, "Invalid numbers", "Result", JOptionPane.INFORMATION_MESSAGE);
            }
        }
    });
    btnCalculate.setBounds(312, 90, 89, 23);
    contentPane.add(btnCalculate);

我希望我的问题得到解决。谢谢您的所有帮助,非常感谢。

0 个答案:

没有答案