在Java中创建复数类

时间:2017-04-27 20:00:17

标签: java

我是java和编程的新手。 我目前正在做复杂的数字。我知道网上可能有这个答案,但是如果我使用了正确的算法等,它也会显示出来,所以我试图避免在这里找到其他答案。

我的主要问题是我在制作Divide课时遇到了麻烦,因为在复数除法中我们将返回一个分数作为答案,我无法弄清楚如何让程序返回它计算的2个陈述,有人可以建议可以做些什么吗?这是除法代码的一部分,当我检查第1部分和第2部分时,它工作正常,但是如何在使用该类调用时返回它们。

我附上了我制作的完整代码,我知道可以调整它以减少编码,但这不是我目前关注的问题。

提前感谢您的帮助。

class complexN {

    int R, I;

    complexN(int R, int I) {
        this.R = R;
        this.I = I;
    }

    complexN AddCN(complexN A) {
        return new complexN(this.R + A.R, this.I + A.I);
    }

    complexN SubCN(complexN A) {
        int AnsR = this.R - A.R;
        int AnsI = this.I - A.I;
        complexN Sum = new complexN(AnsR, AnsI);
        return Sum;
    }

    complexN MulCN(complexN A) {
        int AnsI = (this.R * A.I) + (this.I * A.R);
        int AnsR = (this.R * A.R) - (this.I * A.I);

        complexN Sum = new complexN(AnsR, AnsI);
        return Sum;
    }

    complexN DivCN(complexN A) {
        complexN ComCon = new complexN(A.R, (A.I * -1));
        complexN part1 = new complexN(this.R, this.I).MulCN(ComCon);
        complexN part2 = A.MulCN(ComCon);

        return part1;

    }

    void print() {
        String i = (this.I == 1 ? "" : (this.I == -1 ? "-" : "" + this.I));
        if (this.R != 0 && this.I > 0) {
            System.out.println(this.R + "+" + i + "i");
        }
        if (this.R != 0 && this.I < 0) {
            System.out.println(this.R + i + "i");
        }
        if (this.R != 0 && this.I == 0) {
            System.out.println(this.R);
        }
        if (this.R == 0 && this.I != 0) {
            System.out.println(i + "i");
        }
        if (this.R == 0 && this.I == 0) {
            System.out.println("0");
        }
    }
}

class complex {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        complexN z1 = new complexN(5, 2);
        complexN z2 = new complexN(3, -4);

        System.out.print("z1 = ");
        z1.print();
        System.out.print("z2 = ");
        z2.print();
        System.out.println("---------");
        z1.DivCN(z2).print();
    }
}

0 个答案:

没有答案