JAVA--第十三周任务一封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame。要求窗口使用三个文本框和一个文本区,其中三个文本框

感言 :没有实现异常,唉唉唉。

 

首先是窗口类

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;


public class EquationFrame extends JFrame implements ActionListener{

	JTextField t1,t2,t3;
	SquareEquation s = new SquareEquation();
	JLabel l1,l2,l3;
	static JTextArea tt;
	JButton b1;
	EquationFrame()
	{
		setLayout(new FlowLayout());
		
		JPanel p = new JPanel();
		
		t1 = new JTextField(10);
		
		t2 = new JTextField(10);
		
		t3 = new JTextField(10);
		
		l1 = new JLabel("二次系数");
		
		l2 = new JLabel("一次系数");
		
		l3 = new JLabel("常数项");
		
		b1 = new JButton("确定");
		
		b1.addActionListener(this);
		
		tt = new JTextArea(48,48);
		
		p.add(l1);
		p.add(t1);
		
		p.add(l2);
		p.add(t2);
		
		p.add(l3);
		p.add(t3);
	
		
		
		p.add(b1);
		
		add(p,BorderLayout.NORTH);
		
		add(tt,BorderLayout.SOUTH);
		
		setBounds(350,350,580,580);
		
		setVisible(true);
		
		validate();
		
		
	}
	

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource()== b1)
	      {
			Double a;
		
		    a =Double.parseDouble(t1.getText());
		
		    s.seta(a);
		    
		    Double b;
			
		    b =Double.parseDouble(t2.getText());
		
		
		    s.setb(b);
		    
		    Double c;
			
		    c =Double.parseDouble(t3.getText());
		
		    s.setc(c);
	

	
		
		if (s.getresult()>0)
		{
			double x1,x2;
			
			x1 = (-s.b+Math.sqrt(s.getresult()))/2*s.a;
			
			x2 = (-s.b-Math.sqrt(s.getresult()))/2*s.a;
			
			tt.append("第一个跟是:"+x1);
			
			tt.append("第二个跟是:"+x2);
		}

		if (s.getresult()==0)
		{
			double x3;
			
			x3 = (-s.b-Math.sqrt(s.getresult()))/2*s.a;
			
			
		tt.append("这个跟是:"+x3);
		}
		
		if  (s.getresult()<0)
		{
			tt.append("没有实根");
		}
		}

		
	}
}


接着是方程类:

public class SquareEquation {

	double a,b,c;
	
	

	
	 double seta(double a)
	 {
		this.a = a;
		 
		return  a; 
	 }
	
	
	 double setb(double b)
	 {
		this.b = b;
		 
		return  b; 
	 }
	 double setc(double c)
	 {
		this.c = c;
		 
		return  c; 
	 }
	double getresult()
	 {
		double result;
		 
		 result = b*b-4*a*c;
		 
		 return result;
		 
	 }
	 double jisuan ()throws excepion
		{
			if(getresult()<0)
			{
				excepion se = new excepion();
				
				throw se;
			}
			return 0;	
			
   }
}
	    
	     
	    
 


 

最后是测试类:

 

public class Text {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		new  EquationFrame();
	}

}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值