Java復數運算


描述

創建一個復數類Complex,用來執行復數的算數運算,並編寫一個程序來測試該類。

(1)該類有兩個成員變量,即實部(realPart)和虛部(imaginaryPart),均為實數類型

(2)定義一個構造函數,用來對類的對象進行初始化,構造函數的函數原理為:

       Complex(double realPart,double imaginaryPart);

(3)定義一個add成員函數,實現兩個復數的加法

       Complex add(Complex);

(4)定義一個sub成員函數,實現兩個復數的減法

       Complex sub(Complex);

(5)定義一個mul成員函數,實現兩個復數的乘法

       Comple mul(Complex);

(6)定義一個div成員函數,實現兩個復數的除法

       Complex div(Complex);

(7)定義一個print成員函數,打印當前復數運算結果,打印格式為:3.0+2.0i或-3.0-2.0i

測試用的main函數如下:

public static void main(String[] a) {
        Scanner input = new Scanner(System.in);
        int x1,y1,x2,y2;
        x1=input.nextInt();
        y1=input.nextInt();
        x2=input.nextInt();
        y2=input.nextInt();
        Complex c1 = new Complex(x1, y1);
        Complex c2 = new Complex(x2, y2);
        Complex c3=c1.add(c2);
        Complex c4=c1.sub(c2);
        Complex c5=c1.mul(c2);
        Complex c6=c1.div(c2);
        c3.print();
        c4.print();
        c5.print();
        c6.print();
    }

 

輸入

輸入占1行,分別是4個整數,用來構造兩個復數

輸出

輸出占4行,分別為兩個復數運算后的結果。

難度

入門

輸入示例

3 4 1 -2

輸出示例

4.0+2.0i
2.0+6.0i
11.0-2.0i
-1.0+2.0i
import java.util.Scanner;

public class Complex {
    double realPart;
    double imaginaryPart;
    public static void main(String[] a) {
        Scanner input = new Scanner(System.in);
        int x1,y1,x2,y2;
        x1=input.nextInt();
        y1=input.nextInt();
        x2=input.nextInt();
        y2=input.nextInt();
        Complex c1 = new Complex(x1, y1);
        Complex c2 = new Complex(x2, y2);
        Complex c3=c1.add(c2);
        Complex c4=c1.sub(c2);
        Complex c5=c1.mul(c2);
        Complex c6=c1.div(c2);
        c3.print();
        c4.print();
        c5.print();
        c6.print();
    }

    public double getRealPart() {
        return realPart;
    }

    public void setRealPart(double realPart) {
        this.realPart = realPart;
    }

    public double getImaginaryPart() {
        return imaginaryPart;
    }

    public void setImaginaryPart(double imaginaryPart) {
        this.imaginaryPart = imaginaryPart;
    }

    private void Complex(double realPart,double imaginaryPart){     // 供不帶參數的構造方法調用
        this.realPart=realPart;
        this.imaginaryPart=imaginaryPart;
    }

    Complex(double realPart, double imaginaryPart){
        this.realPart=realPart;
        this.imaginaryPart=imaginaryPart;
    }

    Complex add(Complex a) {
        double real2 = a.getRealPart();
        double image2 = a.getImaginaryPart();
        double newReal = realPart + real2;
        double newImage = imaginaryPart + image2;
        Complex result = new Complex(newReal, newImage);
        return result;
    }

    Complex sub(Complex a){
        double real2 = a.getRealPart();
        double image2 = a.getImaginaryPart();
        double newReal = realPart - real2;
        double newImage = imaginaryPart - image2;
        Complex result = new Complex(newReal,newImage);
        return result;
    }

    Complex mul(Complex a) {
        double real2 = a.getRealPart();
        double image2 = a.getImaginaryPart();
        double newReal =  realPart*real2 - imaginaryPart*image2;
        double newImage = imaginaryPart*real2 + realPart*image2;
        Complex result = new Complex(newReal, newImage);
        return result;
    }

    Complex div(Complex a) {
        double real2 = a.getRealPart();
        double image2 = a.getImaginaryPart();
        double newReal = (realPart*real2 + imaginaryPart*image2)/(real2*real2 + image2*image2);
        double newImage = (imaginaryPart*real2 - realPart*image2)/(real2*real2 + image2*image2);
        Complex result = new Complex(newReal, newImage);
        return result;
    }

    public void print() {
        if (imaginaryPart > 0) {
            System.out.println(realPart + "+" + imaginaryPart + "i");
        } else if (imaginaryPart < 0) {
            System.out.println(realPart + "" + imaginaryPart + "i");//注意!
        } else {
            System.out.println(realPart);
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM