复数类Java实现

编写一个复数类,可以进行复数加法和减法运算。编写一个包含main方法的类(应用程序)测试该复数类。要求该复数类至少包含一个无参的构造方法和一个带参的构造方法;数据成员包括复数的实部和虚部,为double类型;包括两个方法,分别实现复数的加法和减法运算。示例输出如图所示。

package com.company;

import javax.swing.*;

class Complex{
    /** 实部 */
    private final double real;
    /** 虚部 */
    private final double image;
    /** 默认构造函数 */
    public Complex(){
        this.real = 0;
        this.image = 0;
    }

    /**
     * 带参构造函数
     * @param real 实部
     * @param image 虚部
     */
    public Complex(double real, double image){
        this.real = real;
        this.image = image;
    }

    /**
     * 复数加法
     * @param other 加数
     * @return 和
     */
    public Complex add(Complex other){
        return new Complex(real + other.real, image + other.image);
    }

    /**
     * 复数减法
     * @param other 减数
     * @return 差
     */
    public Complex minus(Complex other){
        return new Complex(real - other.real, image - other.image);
    }
    @Override
    public String toString(){
        if(real == 0 && image == 0) {
            return "0";
        }
        String r = real == 0 ? "" : String.valueOf(real);
        String i = image == 0 ? "" : image > 0 ? "+" + image + "*i" : image + "*i";
        return r + i;
    }

    /**
     * 显示复数a和复数b做加法和减法的结果
     * @param other 加数和减数
     */
    public void showAddAndMinus(Complex other){
        JOptionPane.showMessageDialog(null, "a = " + this + "\n" +
                "b = " + other + "\n" +
                "a + b = " + add(other) + "\n" +
                "a - b = " + minus(other) + "\n");
    }
}

public class Main {

    public static void main(String[] args) {
        JTextField c1Real = new JTextField(5);
        JTextField c1Image = new JTextField(5);
        JTextField c2Real = new JTextField(5);
        JTextField c2Image = new JTextField(5);
        JPanel jPanel = new JPanel();
        jPanel.add(new JLabel("第一个复数 实部: "));
        jPanel.add(c1Real);
        jPanel.add(new JLabel("虚部: "));
        jPanel.add(c1Image);
        jPanel.add(new JLabel("第二个复数 实部: "));
        jPanel.add(c2Real);
        jPanel.add(new JLabel("虚部: "));
        jPanel.add(c2Image);
        int result = JOptionPane.showConfirmDialog(null, jPanel,"复数运算", JOptionPane.OK_CANCEL_OPTION);
        if (result == JOptionPane.OK_OPTION){
            Complex c1 = new Complex(Double.parseDouble(c1Real.getText()), Double.parseDouble(c1Image.getText()));
            Complex c2 = new Complex(Double.parseDouble(c2Real.getText()), Double.parseDouble(c2Image.getText()));
            c1.showAddAndMinus(c2);
        }
    }

}

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import java.io.*; public class Book{ double sb; double xb; Book(double x,double y){ this.sb=x; this.xb=y; } Book(){ } public static void main(String args[]){ System.out.println("请输入数据:"); double a=0; double b=0; double c=0; double d=0; String s; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入第一个复数的实部:"); try{ s = in.readLine(); a=Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} System.out.println("请输入第一个复述的虚部:"); try{ s = in.readLine(); b =Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} System.out.println("请输入第二个复述的实部:"); try{ s = in.readLine(); c =Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} System.out.println("请输入第二个复述的虚部:"); try{ s = in.readLine(); d =Double.parseDouble(s); } catch(IOException e) { System.out.println("抛掷异常");} Book h; h=new Book(a,b); Book j; j=new Book(c,d); System.out.println("您输入的一个数为:"); toString(h); System.out.println("您输入的二个数为:"); toString(j); Book k; k=new Book(); char z='y'; do{ System.out.println("请选择您要进行的计算:"); System.out.println("1 :进行加法运算"); System.out.println("2 :进行减法运算"); System.out.println("3 :进行修改"); System.out.println("4 :进行乘法运算"); System.out.println("5 :进行除法运算"); System.out.println("6 :查看修改结果"); int i=0; try{ i= Integer.parseInt(in.readLine()); } catch(IOException e) { System.out.println("抛掷异常");} switch(i) { case 1: k.sb=jia(h.sb,j.sb); k.xb=jia(h.xb,j.xb); System.out.println("计算结果的实部为:"+k.sb); System.out.println("计算结果的虚部为:"+k.xb); toString(k); break ; case 2: k.sb=jian(h.sb,j.sb); k.xb=jian(h.xb,j.xb); System.out.println("计算结果的实部为:"+k.sb); System.out.println("计算结果的虚部为:"+k.xb); toString(k); brea

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值