java编写程序求一元二次方程的根

如题所述

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Equation {
JLabel l1 = new JLabel("请输入一元二次方程各项的系数:", JLabel.CENTER);
JTextField t1 = new JTextField(10);
JTextField t2 = new JTextField(10);
JTextField t3 = new JTextField(10);
JButton but1 = new JButton("求解");
JButton but2 = new JButton("重置");

public Equation() {
JFrame f = new JFrame();
l1.setFont(new Font("华文行楷", Font.PLAIN, 24));
l1.setForeground(Color.blue);
JLabel l2 = new JLabel("二次项系数:");
JLabel l3 = new JLabel("一次项系数:");
JLabel l4 = new JLabel("常数项 :");
Container c = f.getContentPane();
c.setLayout(new GridLayout(6, 1));
JPanel p2 = new JPanel(new FlowLayout());
JPanel p3 = new JPanel(new FlowLayout());
JPanel p4 = new JPanel(new FlowLayout());
JPanel p5 = new JPanel(new FlowLayout());
JPanel p6 = new JPanel(new FlowLayout());

p2.add(l1);
p3.add(l2);
p3.add(t1);
p4.add(l3);
p4.add(t2);
p5.add(l4);
p5.add(t3);
p6.add(but1);
p6.add(but2);
c.add(p2);
c.add(p3);
c.add(p4);
c.add(p5);
c.add(p6);
f.setTitle("求一元二次方程的解");
f.setBounds(200, 200, 400, 280);
f.setVisible(true);
f.setResizable(false);

// 设置按钮but1的按钮事件
but1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (t1.getText().equals("") | t2.getText().equals("")
| t3.getText().equals("")) {
JOptionPane.showMessageDialog(null, "请输入方程各项的系数!", "警告",
JOptionPane.WARNING_MESSAGE);
}
double a = Double.parseDouble(t1.getText());
double b = Double.parseDouble(t2.getText());
double c = Double.parseDouble(t3.getText());
double m = Math.pow(b, 2) - 4 * a * c;
double n1 = (-b + Math.sqrt(m)) / 2 * a;
double n2 = (-b - Math.sqrt(m)) / 2 * a;
if (m < 0) {
JOptionPane.showMessageDialog(null, "该方程无实根", "提示信息",
JOptionPane.INFORMATION_MESSAGE);
} else if (m == 0) {
JOptionPane.showMessageDialog(null, "该方程有两个相等的实根" + '\n'
+ "x1 = x2 = " + n1, "提示信息",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "该方程有两个不相等的实根" + '\n'
+ "x1 = " + n1 + " " + "x2=" + n2, "提示信息",
JOptionPane.INFORMATION_MESSAGE);
}
}
});
// 设置按钮but2的按钮事件
but2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
t1.setText("");
t2.setText("");
t3.setText("");
}
});
}

public static void main(String args[]) {
Equation e = new Equation();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-06-11
import java.math.*;
public class demo{
/*
* 定义构造函数,写入A,B,C的值.
*/
private int a,b,c;
private Vector vector;

public demo(int a,int b,int c){
this.a = a;
this.b = b;
this.c = c;
}
public Vector test(){

if(b*b<4*a*c){
System.out.println("无跟");
vector.add("空");
}
else if(b*b=4*a*c){
int i = (-b-cbrt(b^2-4*a*c))/2/a
System.out.println("只有一个根"+i);
vector.add(i);
}
else if(b*b>4*a*c){
double x1=(-b-cbrt(b^2-4*a*c))/2/a
double x2=(-b+cbrt(b^2-4*a*c))/2/a
vector.add(x1);
vector.add(x2);
}
}

}

应该就是这个样子,我印象中写的,没有调试,你按照这个思路去改改本回答被提问者采纳
第2个回答  2008-06-11
比如 方程是 x平方+3x+2=0;
public class Test
{
public static void main(String []args)
{
double a=1;//二次项系数
double b=3;//一次项系数
double c=2;//常数项
double s=b*b-4*a*c;
if(s<0)
{
System.out.print("b*b-4ac<0,方程无解!");
return;
}
double ss=Math.sqrt(s);
double x1=(-1*b-ss)/(2*a);
double x2=(-1*b+ss)/(2*a);
System.out.println("x1="+x1);
System.out.println("x2="+x2);
}
}
第3个回答  2019-03-03
import
java.math.*;
public
class
demo{
/*
*
定义构造函数,写入A,B,C的值.
*/
private
int
a,b,c;
private
Vector
vector;
public
demo(int
a,int
b,int
c){
this.a
=
a;
this.b
=
b;
this.c
=
c;
}
public
Vector
test(){
if(b*b<4*a*c){
System.out.println("无跟");
vector.add("空");
}
else
if(b*b=4*a*c){
int
i
=
(-b-cbrt(b^2-4*a*c))/2/a
System.out.println("只有一个根"+i);
vector.add(i);
}
else
if(b*b>4*a*c){
double
x1=(-b-cbrt(b^2-4*a*c))/2/a
double
x2=(-b+cbrt(b^2-4*a*c))/2/a
vector.add(x1);
vector.add(x2);
}
}
}
应该就是这个样子,我印象中写的,没有调试,你按照这个思路去改改

java编写程序求一元二次方程的根
else if(b*b=4*a*c){ int i = (-b-cbrt(b^2-4*a*c))\/2\/a System.out.println("只有一个根"+i);vector.add(i);} else if(b*b>4*a*c){ double x1=(-b-cbrt(b^2-4*a*c))\/2\/a double x2=(-b+cbrt(b^2-4*a*c))\/2\/a vector.add(x1);vector.add(x2);} ...

用JAVA编程求一元二次方程的根,一元二次方程的系数从键盘输入
java.util.Scanner;import org.junit.Test;public class MyTest { \/ 用JAVA编程求一元二次方程的根,一元二次方程的系数从键盘输入 测试用例:a b c 0 1 2 3 10 0 -100 10 0 100 10 50 0 10 -50 0 1 0 0 \/ Test public void test1(){ Double a;Double b;Double c;Scanner s ...

如何用java编写一元二次方程的求根问题
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("不是二次方程", EquationExcept...

java编程求解一元二次方程,abc用户输入,并确保b*b-*a*c大于等于0,求大...
1)简介 一元二次方程 ax2+bx+c=0 的a、b、c三个参数由用户自行定义,通过该程序输出该一元二次方程的根。 对于该程序需要在“应声虫”的基础上进行参数的自定义,在定义完成后需要通过求根公式实现结果的输出,其中Math.sqrt()为对括号的内容进行开平方根。 2)任务代码 关于该程序的代码如下:i...

Java编程:用文本数据流的方式输入a、b、c,求一元二次方程的根。
public static void main(String[] args){ double x1,x2; double a,b,c;InputStreamReader ins = new InputStreamReader (System.in);BufferedReader br = new BufferedReader (ins);a = 0; b = 0; c = 0; x1= 0; x2= 0;try { System.out.println("Please input a(user ENTER ...

Java 如何编程实现一元二次方程的求解
\/\/求解一元二次方程ax^2+bx+c=0的实根和复根,Test类是主类 class OnceBasicQuadraticEquation \/\/求解一元二次方程ax^2+bx+c的实根和复根的类,其中getRoot()方法求根和显示根 { private double a; \/\/方程的二次项系数 private double b; \/\/方程的一次项系数 private static double...

java用方法 计算一元二次方程的实数根
} public static void main(String[] args) { double a = 1; double b = -3; double c = 2; double[] x = root(a, b, c); System.out.printf("x1=%f,x2=%f", x[0], x[1]); }输出 0.0 原因:Java 中参数是按值传递。实参 x1、x2 传递给方法 root ...

java求一元二次方程的根
import java.util.Scanner;public class Test30009{ public static void main(String args[]){ int repeat, ri;int a,b,c,d;double x1 = 0,x2;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri = 1; ri <= repeat; ri++){ a=in.nextInt();b=in.nextInt();c=in...

JAVA编写一个关于一元二次方程根的类
else\/\/一元一次方程 { \/\/result = "该方程有一个实数根:\\n"+(-c\/b);\/\/result = "该方程有一个实数根:\\n"+Math.round(-c\/b*1000)\/1000.0;result = "该方程有一个实数根:\\n"+df.format((-c\/b));} } else { double delta;delta = b*b-4*a*c;if(delta>0){ \/\/double...

java 求一元二次方程的根
Function aa=new Function(2.0,6.0,3.0);\/\/System.out.println(boo);System.out.println(b);\/\/你可以多写这样的语句进行测试 if(boo){ System.out.println("方程的1根是"+aa.calculator1());System.out.println("方程的2根是"+aa.calculator2());} else { System.out.println("方程无...

相似回答