解一元二次方程(基于对话框)

来源:互联网 发布:常见的网络攻击类型有 编辑:程序博客网 时间:2024/05/22 06:47

/*
常用的对话框的类:
JOptionPane.showInputDialog(null, text, title,value)
JOptionPane类可显示可包含文本、按钮等的消息框。
JOptionPane.showInputDialog方法返回用户输入的字符串。
显示在输入对话框中的标题、消息及图标等由传递给该方法的参数确定,参数text是要在输入对话框中显示的字符串,参数 title是要在输入对话框的标题栏中显示的字符串,参数value为要显示的图标,值为JOptionPane类常量。第1个参数的值为null表示对话框显示在屏幕中央。
value 通常为:JOptionPane.QUESTION_MESSAGE,其值为3;
JOptionPane.showMessageDilog(a,b,c,d);一般a 为null,b为要显示在对话框的值,c为对话框的标题,d为JOptionPane.INFORMATION_MESSAGE;

另外:对浮点型数据的精度处理,保留小数点位数。
如保留两位小数。
String.format(“%.2f”,value);
*/

package 一元二次方程;import java.awt.*;import javax.swing.*;import java.util.Scanner;public class Formula {    public static void main(String[] args)    {        String input_a=JOptionPane.showInputDialog(null, "请输入二次项的系数a:");        String input_b=JOptionPane.showInputDialog(null,"请输入一次项的系数b:");        String input_c=JOptionPane.showInputDialog(null,"请输入常数项的系数c:");        int a=Integer.parseInt(input_a);  //输入的字符串转化为整数        int b=Integer.parseInt(input_b);        int c=Integer.parseInt(input_c);        if(a==0)        {            if(b==0){                if(c==0)               JOptionPane.showMessageDialog(null,"无穷多个","所求方程"+a+"*x^2"+"+"+b+"*x"+"+"+c+"=0"+"的解为:",                       JOptionPane.INFORMATION_MESSAGE);                else                    JOptionPane.showMessageDialog(null,"无解","所求方程"+a+"*x^2"+"+"+b+"*x"+"+"+c+"=0"+"的解为:",                            JOptionPane.INFORMATION_MESSAGE);            }            else                JOptionPane.showMessageDialog(null, "x="+-c/(b*1.0),"所求方程"+a+"*x^2"+"+"+b+"*x"+"+"+c+"=0"+"的解为:",                        JOptionPane.INFORMATION_MESSAGE);        }        else        {            int d=b*b-4*a*c;            if(d>0)            {                double dd=Math.sqrt(d);                JOptionPane.showMessageDialog(null, "x1="+ String.format("%.2f", (-b+dd)/(2.0*a))+                        "\n x2="+ String.format("%.2f",(-b-dd)/(2.0*a)),                "所求方程"+a+"*x^2"+"+"+b+"*x"+"+"+c+"=0"+"的解为:",JOptionPane.INFORMATION_MESSAGE);            }            else if(d==0)            {                JOptionPane.showMessageDialog(null, "x1=x2="+String.format("%.2f",-b/(2.0*a) ),                "所求方程"+a+"*x^2"+"+"+b+"*x"+"+"+c+"=0"+"的解为:",JOptionPane.INFORMATION_MESSAGE);            }            else            {                double dd=Math.sqrt(-d);                JOptionPane.showMessageDialog(null, "x1="+String.format("%.2f", -b/(2.0*a))+"+"+String.format("%.2f",dd/(2.0*a))+"i\n"                +"x2="+String.format("%.2f",-b/(2.0*a))+"-"+String.format("%.2f",dd/(2.0*a))+"i",                "所求方程"+a+"*x^2"+"+"+b+"*x"+"+"+c+"=0"+"的解为:",JOptionPane.INFORMATION_MESSAGE);            }        }    }}

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

0 0
原创粉丝点击