java 二元一次方程式_怎样用java觖二元一次方程

这是一个Java程序,用于解决一元二次方程。程序实现了输入方程系数、计算根、选择保留根号或小数的选项。用户界面包括文本框、按钮和菜单项,可以进行方程的赋值、计算和重置操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*

*一元二次方程解的小程序

*

*想到哪里写到哪里,还未进行代码的优化!初学java肯定有很多问题!  =。=!

*

*已经考虑到很多情况的可能。肯定还存在很多BUG。。。。待测试修改!!

*/

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

import java.lang.Math;

public class MyEquation extends JFrame implements ActionListener{

private double a;

private double b;

private double c;

private double delta;

private JPanel jp = new JPanel();

private JMenu[] jmArray = {new JMenu("文件"),new JMenu("帮助")};

private JMenuItem jmiwenjian = new JMenuItem("退出");

private JMenuItem jmihelp = new JMenuItem("关于");

private JMenuBar jmb = new JMenuBar();

private JLabel[] signArray = {new JLabel("方程赋值:"),new JLabel("运算形式:"),new JLabel("操作栏:"),new JLabel("运算显示栏:")};

private JTextField[] jteArray = {new JTextField(2),new JTextField(2),new JTextField(2)};

private JLabel[] jlbArray = {new JLabel("X^2+"),new JLabel("X+"),new JLabel("=0")};

private JRadioButton[] jraArray = {new JRadioButton("保留根号"),new JRadioButton("保留小数")};

private JButton[] butArray = {new JButton("计算"),new JButton("重置")};

private ButtonGroup bg = new ButtonGroup();

private JTextArea result=new JTextArea(20,60);

private JLabel textState = new JLabel("状态备注:    当前方程未赋值系数!");

//界面布局

public MyEquation() {

jp.setLayout(null);

jmb.add(jmArray[0]);

jmb.add(jmArray[1]);

jmArray[0].add(jmiwenjian);

jmiwenjian.addActionListener(this);

jmArray[1].add(jmihelp);

jmihelp.addActionListener(this);

this.setJMenuBar(jmb);

for(int i=0;i<3;i++)

{

jteArray[i].setBounds(40+i*70,50,30,30);

jlbArray[i].setBounds(80+i*70,50,30,30);

jp.add(jteArray[i]);

jp.add(jlbArray[i]);

jteArray[i].addActionListener(this);//赋值框监听

if(i<2)

{

jraArray[i].setBounds(40+i*120,125,90,30);

bg.add(jraArray[i]);

if(i>1) continue;

butArray[i].setBounds(40+i*130,200,80,40);

jp.add(jraArray[i]);

jp.add(butArray[i]);

jraArray[i].addActionListener(this);//保留根号,保留小数监听

butArray[i].addActionListener(this);//计算按钮,重置按钮监听

}

signArray[i].setBounds(10,20+i*70,80,30);

jp.add(signArray[i]);

}

signArray[3].setBounds(300,20,70,30);

result.setBounds(300,50,200,200);

result.setEditable(false);

jp.add(result);

jp.add(signArray[3]);

jp.setBorder(new TitledBorder("控制栏目"));

this.add(jp);

this.add(textState,BorderLayout.SOUTH);

this.setTitle("一元二次方程的解");

this.setBounds(300,300,550,350);

this.setVisible(true);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//实现几个功能的监听,以及判断,按钮的控制

//if写了很多,考虑到很多种情况的可能,写得乱七八糟的!! =。=!!

public void actionPerformed(ActionEvent e)

{

StringBuffer temp=new StringBuffer("△= b^2-4ac");

StringBuffer temp1=new StringBuffer("");

//菜单选项    1.退出   2.关于

if(e.getSource()==jmiwenjian)

{System.exit(0);}

if(e.getSource()==jmihelp)

{JOptionPane.showMessageDialog (null,"    抄袭无罪,懒人万岁    ","关于",JOptionPane.WARNING_MESSAGE);}

//重置键的功能,3个赋值框置空

if(e.getSource()==butArray[1])

{

for(int j=0;j<3;j++)

{

jteArray[j].setText("");

}

}

//计算功能按钮

if(e.getSource()==butArray[0])

{

//判断赋值框是否为空

if(jteArray[0].getText().equals("")|jteArray[1].getText().equals("")|jteArray[2].getText().equals(""))

{

JOptionPane.showMessageDialog (null,"傻瓜,没系数叫我怎么算啊!","警告",JOptionPane.WARNING_MESSAGE);

}

a=Double.parseDouble(jteArray[0].getText());

b=Double.parseDouble(jteArray[1].getText());

c=Double.parseDouble(jteArray[2].getText());

delta=Math.pow(b,2)-4*a*c;

double x1=(-b+Math.sqrt(delta))/2*a;

double x2=(-b-Math.sqrt(delta))/2*a;

//底层状态赋值栏

getresult((int)a,(int)b,(int)c);

//运算类型是否有选择

if(!jraArray[0].isSelected()&&!jraArray[1].isSelected()){

JOptionPane.showMessageDialog (null,"请选择运算类型!","警告",JOptionPane.WARNING_MESSAGE);

}

//保留小数

if(!jraArray[0].isSelected()&&jraArray[1].isSelected())

{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值