糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > java一元二次方程程序设计实验报告_Java 组件及事件处理实训 实训2:编写一个窗体程

java一元二次方程程序设计实验报告_Java 组件及事件处理实训 实训2:编写一个窗体程

时间:2022-11-03 22:49:18

相关推荐

java一元二次方程程序设计实验报告_Java 组件及事件处理实训 实训2:编写一个窗体程

代码:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class EquationFrame extends JFrame implements ActionListener {

SquareEquation equation;

JTextField textA, textB, textC;

JTextArea showRoots;

JButton controlButton;

public EquationFrame() {

equation = new SquareEquation();

textA = new JTextField(8);

textB = new JTextField(8);

textC = new JTextField(8);

controlButton = new JButton("确定");

JPanel pNorth = new JPanel();

pNorth.add(new JLabel("二次项系数:"));

pNorth.add(textA);

pNorth.add(new JLabel("一次项系数:"));

pNorth.add(textB);

pNorth.add(new JLabel("常数项系数:"));

pNorth.add(textC);

pNorth.add(controlButton);

controlButton.addActionListener(this);

getContentPane().add(pNorth, BorderLayout.NORTH);

showRoots=new JTextArea();

JScrollPane scrollPane =new JScrollPane(showRoots);

getContentPane().add(scrollPane,BorderLayout.CENTER);

setSize(630, 160);

Dimension scnSize = Toolkit.getDefaultToolkit().getScreenSize();

Dimension fromSize = this.getSize();

this.setLocation((scnSize.width - fromSize.width) / 2,

(scnSize.height - fromSize.height) / 2);

validate();

setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e) {

try {

double a = Double.parseDouble(textA.getText());

double b = Double.parseDouble(textB.getText());

double c = Double.parseDouble(textC.getText());

equation.setA(a);

equation.setB(b);

equation.setC(c);

showRoots.append("根:" + equation.getRootOne());

showRoots.append("根:" + equation.getRootTwo() + "\n");

} catch (Exception ex) {

showRoots.append(ex.getMessage() + "\n");

}

}

public static void main(String args[]) {

new EquationFrame();

}

}

public class SquareEquation {

double a, b, c;

public void setA(double a) {

this.a = a;

}

public void setB(double b) {

this.b = b;

}

public void setC(double c) {

this.c = c;

}

public double getRootOne() {

double disk = calculateValidDisk();

return (-b + Math.sqrt(disk)) / (2 * a);

}

public double getRootTwo() {

double disk = calculateValidDisk();

return (-b + Math.sqrt(disk)) / (2 * a);

}

private double calculateValidDisk() {

if (a == 0) {

throw new EquationException("不是二次方程",

EquationException.NONE_EQUATION);

}

double disk = b * b - 4 * a * c;

if (disk < 0) {

throw new EquationException("没有实根", EquationException.NO_REAL_ROOT);

}

return disk;

}

}

class EquationException extends RuntimeException {

public static final int NONE_EQUATION = 1;

public static final int NO_REAL_ROOT = 2;

private int errorCode;

public EquationException(String msg, int errorCode) {

super(msg);

this.errorCode = errorCode;

}

public int getErrorCode() {

return errorCode;

}

}运算结果:

java一元二次方程程序设计实验报告_Java 组件及事件处理实训 实训2:编写一个窗体程序 用于计算一元二次方程...

如果觉得《java一元二次方程程序设计实验报告_Java 组件及事件处理实训 实训2:编写一个窗体程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。