Java实现复数运算

在这里插入图片描述

package Experiment3;
import java.util.Scanner;

public class Complex {
	
	private double real;   //实部
	private double image;   //虚部
	
	//不带参数的构造函数
	Complex()
	{
		Scanner input = new Scanner(System.in);
		real = input.nextDouble();
		image = input.nextDouble();
	}
	
	//带参数的构造函数
	Complex(double m_real,double m_image)
	{
		 real = m_real;
		 image = m_image;
	}
	
	//得到实部
	public double getReal()
	{
		return real;
	}
	
	//得到虚部
	public double getImage()
	{
		return image;
	}
	
	public void setReal(double m_real)
	{
		this.real = m_real;
	}
	
	public void setImage(double m_image)
	{
		this.image = m_image;
	}
	
	public Complex Add(Complex a)
	{
		double a_real = a.getReal();
		double a_image = a.getImage();
		double b_real = this.real;
		double b_image = this.image;
		double c_real = a_real+b_real;
		double c_image = a_image+b_image;
		Complex result = new Complex(c_real,c_image);
		return result;
	}
	
	public Complex Sub(Complex a)
	{
		double a_real = a.getReal();
		double a_image = a.getImage();
		double b_real = this.real;
		double b_image = this.image;
		double c_real = b_real-a_real;
		double c_image = b_image-a_image;
		Complex result = new Complex(c_real,c_image);
		return result;
	}
	
	public Complex Mul(Complex a)
	{
		double a_real = a.getReal();
		double a_image = a.getImage();
		double b_real = this.real;
		double b_image = this.image;
		double c_real = (a_real*b_real) - (a_image*b_image);
		double c_image = (a_real*b_image) + (a_image*b_real);
		Complex result = new Complex(c_real,c_image);
		return result;
	}
	
	public Complex Div(Complex a)
	{
		double a_real = a.getReal();
		double a_image = a.getImage();
		double b_real = this.real;
		double b_image = this.image;
		double c_real = ((a_real*b_real)+(a_image*b_image))/(a_real*a_real+a_image*a_image);
		double c_image = ((b_image*a_real)-(b_real*a_image))/(a_real*a_real+a_image*a_image);
		Complex result = new Complex(c_real,c_image);
		return result;
	}
	
	public void print()
	{
		if(image>0)
		{
			System.out.println(real+"+"+image+"i");
		}
		else if(image<0)
		{
			System.out.println(real+""+image+"i");
		}	
		else
		{
			System.out.println(real);
		}
	}
	
	public static void main(String[] args)
	{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入第一个复数的实部和虚部:");
		Complex a = new Complex();
		System.out.println("请输入第二个复数的实部和虚部:");
		Complex b = new Complex();
		System.out.print("第一个复数:");
		a.print();
		System.out.print("第二个复数:");
		b.print();
		System.out.println("请选择下面的操作");
		System.out.println("1:加法");
		System.out.println("2:减法");
		System.out.println("3:乘法");
		System.out.println("4:除法");
		int x = input.nextInt();
		while(x!=0)
		{
			switch(x)
			{
			case 1:
				Complex result = a.Add(b);
				System.out.print("加法的结果为:");
				result.print();
				break;
			case 2:
				result = a.Sub(b);
				System.out.print("减法的结果为:");
				result.print();
				break;
			case 3:
				result = a.Mul(b);
				System.out.print("乘法的结果为:");
				result.print();
				break;
			case 4:
				result = a.Div(b);
				System.out.print("除法的结果为:");
				result.print();
				break;
			default:
				System.out.print("请重新输入");
			}
			System.out.println("您可以继续选择操作,否则按0退出");
			x = input.nextInt();
		}	
	}
}

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、付费专栏及课程。

余额充值