复数的运算(类和对象)java

这篇博客介绍了如何使用Java进行复数的运算,包括相加、相减和相乘。通过输入复数的实部和虚部以及指定的运算符,程序将输出简化后的复数结果。
Problem Description
设计一个类Complex,用于封装对复数的下列操作:
成员变量:实部real,虚部image,均为整数变量;
构造方法:无参构造方法、有参构造方法(参数2个)
成员方法:含两个复数的加、减、乘操作。
    复数相加举例: (1+2i)+(3+4i)= 4 + 6i
    复数相减举例: (1+2i)-(3+4i)= -2 - 2i
    复数相乘举例: (1+2i)*(3+4i)= -5 + 10i
要求:对复数进行连环运算。
Input

输入有多行。
第一行有两个整数,代表复数X的实部和虚部。
后续各行的第一个和第二个数表示复数Y的实部和虚部,第三个数表示操作符op: 1——复数X和Y相加;2——复数X和Y相减;3——复数X和Y相乘。

Output

计算数据输出其简化复数形式,如:-2-2i、-4、-3i、1+2i、0。

Sample Input
1 1
3 4 2
5 2 1
2 -1 3
0 2 2
Sample Output
5-7i
Hint
输入与输出形式示例:
如果输入:
2 3
-2 1 1
则输出:4i
如果输入:
1 2
-1 -2 1
则输出:0

复数的输出形式示例:
实部  虚部   输出形式
  0     0      0
  -4    0      -4
  0     4      4i
  3     2     3+2i
  3    -2     3-2i
Source
import java.util.*;


	public class Main {
	    public static void main(String args[]) {
	        Scanner sc = new Scanner(System.in);
	        int n = sc.nextInt();
	        int m = sc.nextInt();
	        Complex cc = new Complex(n,m);
	        while(sc.hasNext())
	        {
	        	n = sc.nextInt();
	        	m = sc.nextInt();
	        	int o = sc.nextInt();
	        	if(o == 1)
	        		cc.add(n,m);
	        	else if(o==2)
	        		cc.sub(n, m);
	        	else if(o==3)
	        		cc.mul(n, m);
	        	
	        }
	        if(cc.real == 0 && cc.image == 1)
	        	System.out.println("i");
	        else if(cc.real == 0 && cc.image == -1)
	        	System.out.println("-i");
	        else if(cc.real == 0 && cc.image != 0)
	        	System.out.println(cc.image + "i");
	        else if(cc.real == 0 && cc.image == 0)
	        	System.out.println("0");
	        else if(cc.real != 0 && cc.image == 0)
	        	System.out.println(cc.real);
	        else if(cc.real != 0 && cc.image == 1)
	        	System.out.println(cc.real+"+i");
	        else if(cc.real != 0 && cc.image == -1)
	        	System.out.println(cc.real + "-i");
	        else if(cc.real != 0 && cc.image > 0)
	        	System.out.println(cc.real+"+"+cc.image+"i");
	        else if(cc.real != 0 && cc.image < 0)
	        	System.out.println(cc.image+"-"+cc.image+"i");
	    
		
		
		
}
}
class Complex {
	public int real;
	public int image;
	
	public Complex(int real, int image) {
		super();
		this.real = real;
		this.image = image;
	}
	
	public void add(int n,int m)
	{
		real = real + n;
		image = image + m;
		
	}
	
	public void sub(int n,int m)
	{
		real = real - n;
		image = image - m;
		
	}
	
	public void mul(int n,int m)
	{
		int h = real*n - image*m;
		image = real*m + image*n;
		real = h;
	}
}




1. 编写一个实现复数运算复数ComplexNumber的属性: m_dRealPart:实部,代表复数的实数部分。 m_dImaginPart:虚部,代表复数的虚数部分。 复数ComplexNumber的方法: ComplexNumber():构造函数,将实部、虚部都置为0。 ComplexNumber(double r,double i):构造函数,创建复数对象的同时完成复数的实部、虚部的初始化,r为实部的初值,i为虚部的初值。 getRealPart():获得复数对象的实部。 getImaginPart():获得复数对象的虚部。 setRealPart(double d):把当前复数对象的实部设置为给定的形式参数的数字。 setImaginaryPart(double d):把当前复数对象的虚部设置为给定的形式参数的数字。 complexAdd(ComplexNumber c):当前复数对象与形式参数复数对象相加,所得的结果也是复数值,返回给此方法的调用者。 complexAdd(double c):当前复数对象与形式参数实数对象相加,所得的结果仍是复数值,返回给此方法的调用者。 complexMinus(ComplexNumber c) :当前复数对象与形式参数复数对象相减,所得的结果也是复数值,返回给此方法的调用者。 complexMinus(double c) :当前复数对象与形式参数实数对象相减,所得的结果仍是复数值,返回给此方法的调用者。 complexMulti(ComplexNumber c):当前复数对象与形式参数复数对象相乘,所得的结果也是复数值,返回给此方法的调用者。 complexMulti(double c):当前复数对象与形式参数实数对象相乘,所得的结果仍是复数值,返回给此方法的调用者。 toString():把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中分别为实部虚部的数据。 2. 编写Java Application程序使用上题定义的,检查定义是否正确。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值