首页 > 编程知识 正文

java实现两个整数的加减乘除,java编写一个类实现复数运算

时间:2023-05-03 15:36:05 阅读:275748 作者:1925

用java实现复数的加减乘除运算

1. 背景

老师在课上布置了几道java编程题,此为其中之一

2. 题目内容

设计一个类Complex,用于封装对复数的下列操作:

(1)一个带参数的构造函数,用于初始化复数成员

(2)一个不带参数的构造函数,调用代参数的构造函数完成对复数成员的初始化。

(3)实现两个复数的加法,减法的静态方法和实例方法。

(4)以复数的标准形式:x+iy 输出此复数

(5) 写两个函数,分别获得复数的实部getReal(),getImage()和虚部。

老师原题如上,自己做了两个复数的加减乘除运算,使用的是实例方法。如果要写静态方法,即类方法,要加static,再根据相应变化修改。区别是:实例方法既可调用实例变量和实例方法,又可调用类变量和类方法。类方法只可调用类变量和类方法。因时间关系,明天还有课,自己就暂且写了实例。

3. 具体代码与解释

package Four;

/**

* @author Kun Sun

* @Date: 2013.10.15

*/

import java.util.Scanner;

public class Complex { // 复数类

double real; // 实部

double image; // 虚部

Complex(){ // 不带参数的构造方法

Scanner input = new Scanner(System.in);

double real = input.nextDouble();

double image = input.nextDouble();

Complex(real,image);

}

private void Complex(double real, double image) { // 供不带参数的构造方法调用

// TODO Auto-generated method stub

this.real = real;

this.image = image;

}

Complex(double real,double image){ // 带参数的构造方法

this.real = real;

this.image = image;

}

public double getReal() {

return real;

}

public void setReal(double real) {

this.real = real;

}

public double getImage() {

return image;

}

public void setImage(double image) {

this.image = image;

}

Complex add(Complex a){ // 复数相加

double real2 = a.getReal();

double image2 = a.getImage();

double newReal = real + real2;

double newImage = image + image2;

Complex result = new Complex(newReal,newImage);

return result;

}

Complex sub(Complex a){ // 复数相减

double real2 = a.getReal();

double image2 = a.getImage();

double newReal = real - real2;

double newImage = image - image2;

Complex result = new Complex(newReal,newImage);

return result;

}

Complex mul(Complex a){ // 复数相乘

double real2 = a.getReal();

double image2 = a.getImage();

double newReal = real*real2 - image*image2;

double newImage = image*real2 + real*image2;

Complex result = new Complex(newReal,newImage);

return result;

}

Complex div(Complex a){ // 复数相除

double real2 = a.getReal();

double image2 = a.getImage();

double newReal = (real*real2 + image*image2)/(real2*real2 + image2*image2);

double newImage = (image*real2 - real*image2)/(real2*real2 + image2*image2);

Complex result = new Complex(newReal,newImage);

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);

}

}

}

package Four;

/**

* @author Kun Sun

* @Date: 2013.10.15

*/

public class MainClass { // 用于测试复数类

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("请用户输入第一个复数的实部和虚部:");

Complex data1 = new Complex();

System.out.println("请用户输入第二个复数的实部和虚部:");

Complex data2 = new Complex();

// 以下分别为加减乘除

Complex result_add = data1.add(data2);

Complex result_sub = data1.sub(data2);

Complex result_mul = data1.mul(data2);

Complex result_div = data1.div(data2);

result_add.print();

result_sub.print();

result_mul.print();

result_div.print();

}

}

4. 测试运行结果截图

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。