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

/*
常用的对话框的类:
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);
            }
        }
    }
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值