孤儿屯救助站

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class QuadraticEquationSolverGUI extends JFrame implements ActionListener {
    private JLabel labelTitle, labelA, labelB, labelC, labelResult;
    private JTextField fieldA, fieldB, fieldC, fieldResult;
    private JButton buttonSolve;

    public QuadraticEquationSolverGUI() {
        // 设置程序窗口基本属性
        setTitle("Quadratic Equation Solver");
        setSize(300, 200);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建程序主窗口中的各个组件
        labelTitle = new JLabel("Quadratic Equation Solver");
        labelTitle.setFont(new Font("Arial", Font.BOLD, 16));
        labelTitle.setHorizontalAlignment(JLabel.CENTER);

        labelA = new JLabel("a:");
        labelB = new JLabel("b:");
        labelC = new JLabel("c:");

        fieldA = new JTextField();
        fieldB = new JTextField();
        fieldC = new JTextField();
        fieldResult = new JTextField();
        fieldResult.setEditable(false);

        labelResult = new JLabel("Result:");

        buttonSolve = new JButton("Solve");
        buttonSolve.addActionListener(this);

        // 将各个组件添加到程序窗口中
        JPanel panel = new JPanel(new GridLayout(5, 2));
        panel.add(labelA);
        panel.add(fieldA);
        panel.add(labelB);
        panel.add(fieldB);
        panel.add(labelC);
        panel.add(fieldC);
        panel.add(labelResult);
        panel.add(fieldResult);
        panel.add(buttonSolve);

        Container container = getContentPane();
        container.setLayout(new BorderLayout());
        container.add(labelTitle, BorderLayout.NORTH);
        container.add(panel, BorderLayout.CENTER);

        // 在程序主窗口中显示考生基本信息
        JLabel labelInfo = new JLabel("学号:xxx,姓名:xxx");
        labelInfo.setFont(new Font("Arial", Font.PLAIN, 12));
        container.add(labelInfo, BorderLayout.SOUTH);
    }

    // 实现按钮事件处理方法
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == buttonSolve) {
            try {
                // 从输入框中获取方程系数并转换为double类型
                double a = Double.parseDouble(fieldA.getText());
                double b = Double.parseDouble(fieldB.getText());
                double c = Double.parseDouble(fieldC.getText());

                // 调用QuadraticEquationSolver类中的solve方法求解方程,并将结果显示在输出框中
                double[] roots = QuadraticEquationSolver.solve(a, b, c);
                fieldResult.setText(roots[0] + ", " + roots[1]);
            } catch (NumberFormatException ex) {
                // 当输入的系数不合法时,显示错误信息
                JOptionPane.showMessageDialog(this, "Invalid input: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
            }
        }
    }

    // 主程序入口
    public static void main(String[] args) {
        QuadraticEquationSolverGUI gui = new QuadraticEquationSolverGUI();
        gui.setVisible(true);
    }
}

class QuadraticEquationSolver {
    // 定义静态方法solve,用于求解一元二次方程的根
    public static double[] solve(double a, double b, double c) {
        double delta = b * b - 4 * a * c;

// 判断方程是否有解
        if (delta < 0) {
            throw new IllegalArgumentException("Equation has no real roots");
        }
// 计算方程的根
        double x1 = (-b + Math.sqrt(delta)) / (2 * a);
        double x2 = (-b - Math.sqrt(delta)) / (2 * a);
        return new double[] {x1, x2};
    }
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值