Test类:
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame。
* 作 者: 雷恒鑫
* 完成日期: 2012 年 11 月 20日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame。
* 输入描述:要求窗口使用三个文本框和一个文本区,其中三个文本框用来显示生更新方程对象的系数,文本区用来显示方程的根。
* 输入描述:窗口中有一个按钮,用户单击按钮后,程序用文本框中的数据修改方程的系数,并将方程的根显示在文本区中。
* 输入描述:最后编写 一个程序执行入口进行测试。
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
package task_one;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new EquationFrame();
}
}
EquationFrame类:
package task_one;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
//要求窗口使用三个文本框和一个文本区,其中三个文本框用来显示生更新方程对象的系数,文本区用来显示方程的根。
//窗口中有一个按钮,用户单击按钮后,程序用文本框中的数据修改方程的系数,并将方程的根显示在文本区中。
public class EquationFrame extends JFrame implements ActionListener{
JTextField text1,text2,text3;
JTextArea text4;
JButton button;
JLabel lable1,lable2,lable3;
public EquationFrame(){
lable1 = new JLabel("方程一次项的系数:");
lable2 = new JLabel("方程二次项的系数:");
lable3 = new JLabel("方程常数次项的系数:");
button = new JButton("确定");
text1 = new JTextField(6);
text2 = new JTextField(6);
text3 = new JTextField(6);
text4 = new JTextArea("方程的根为", 6, 15);
add(lable1);
add(text1);
add(lable2);
add(text2);
add(lable3);
add(text3);
add(button);
add(text4);
button.addActionListener(this);
setLayout(new FlowLayout());
setBounds(500,500,900,500);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
SquareEquation squareEquation = new SquareEquation();
squareEquation.setA(Integer.parseInt(text2.getText()));
squareEquation.setB(Integer.parseInt(text1.getText()));
squareEquation.setC(Integer.parseInt(text3.getText()));
text4.append("方程的第一个根为:"+squareEquation.count_one());
text4.append("方程的第二个根为:"+squareEquation.count_two());
}
}
SquareEquation类:
package task_one;
import java.lang.Math;
//封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,
public class SquareEquation {
private int a,b,c;
public void setA(int a) {
this.a = a;
}
public void setB(int b) {
this.b = b;
}
public void setC(int c) {
this.c = c;
}
public String count_one(){
double m = b *b -4 * a * c;
double d = 0;
try{
d = Math.sqrt(m);
}
catch(Exception e)
{
System.out.println("发生异常:"+e.getMessage());
}
double i = (-b-d)/(2*a);
String s = String.valueOf(i);
return s;
}
public String count_two(){
double m = b *b -4 * a * c;
double d = 0;
try{
d = Math.sqrt(m);
}
catch(Exception e)
{
System.out.println("发生异常:"+e.getMessage());
}
double i = (-b+d)/(2*a);
String s = String.valueOf(i);
return s;
}
}
实验结果: