窗体程序计算一元二次方程
来源:互联网 发布:女生风油精滴下体 知乎 编辑:程序博客网 时间:2024/05/22 15:19
问题描述:
设计一个一元二次方程类,包含三个属性(方程的3个系数),包含计算器求根的方法。
窗体中使用三个文本框和一个文本区,其中三个文本框用来输入方程的系数;文本区用来显示方程的根。
窗体中有一个按钮,用户点击该按钮后,程序获取三个系数构建仿佛方程对象,并调用方法计算方程的根在文本区中显示。
1.定义一元二次方程类SquareEquation
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 errerCode){super(msg);this.errorCode=errorCode;}public int getErroeCode(){return errorCode;}}
2.定义窗体类EquationFrame,继承自JFrame
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().getDefaultToolkit().getScreenSize();Dimension frmSize=this.getSize();this.setLocation((scnSize.width-frmSize.width)/2, (scnSize.height-frmSize.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");}}}
3.测试类
public class Text {public static void main(String args[]){new EquationFrame();}}
4.运行结果
阅读全文
0 0
- 窗体程序计算一元二次方程
- 计算一元二次方程的程序
- Java实训——编写一个窗体程序,用于计算一元二次方程。
- Java 组件及事件处理实训 实训2:编写一个窗体程序,用于计算一元二次方程
- 一元二次方程C#程序
- C#一元二次方程的程序;
- 【c++程序】求解一元二次方程
- C++计算一元二次方程的跟
- 让计算机来计算一元二次方程等式
- c语言:一元二次方程的计算
- C#程序,求一元二次方程的根
- 编写程序求一元二次方程的根
- 一元二次方程
- 一元二次方程
- 一元二次方程
- 一元二次方程
- 一元二次方程
- 一元二次方程
- Windows驱动开发之入门篇(一)
- mysql/Java服务端对emoji(utf8mb4编码)的支持有关的问题
- 百度地图api 常用demo
- python configParser模块详解(转载)
- Java线程面试题 Top 50 (转载)
- 窗体程序计算一元二次方程
- 主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
- 使用百度地图JavaScript API构建离线地图应用(完整教程)
- Excel 统计符合条件不重复的个数
- Xenial中安装sougou拼音遇到不兼容问题
- 百度地图调用及电子围栏设置
- 一图看懂运维工程师必备技能~
- oracle 11g rac开启归档日志和闪回
- 将html页改成jsp的两种方式