在Java中创建复数类

在Java中创建复数类,java,Java,我是java和编程方面的新手。 我目前正在做复数。我知道网上可能会有一个答案,但是如果我使用了正确的算法等等,它也会暴露出来,所以我尽量避免在这里使用其他答案 我的主要问题是,我的除法类遇到了问题,因为在复数除法中,我们将返回一个分数作为答案,我不知道如何让程序返回它计算的2条语句,有人能告诉我可以做什么吗?这是除法代码的一部分,当我检查第1部分和第2部分时,它可以正常工作,但是当使用该类调用时,如何让它同时返回这两个部分呢 我附上了我制作的完整代码,我知道可以对其进行调整,以减少编码,但这不是

我是java和编程方面的新手。 我目前正在做复数。我知道网上可能会有一个答案,但是如果我使用了正确的算法等等,它也会暴露出来,所以我尽量避免在这里使用其他答案

我的主要问题是,我的除法类遇到了问题,因为在复数除法中,我们将返回一个分数作为答案,我不知道如何让程序返回它计算的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();
    }
}
class complexN{
int R,I;
复合体n(int R,int I){
这个。R=R;
这个。I=I;
}
复合物地址(复合物A){
返回新的complexN(this.R+A.R,this.I+A.I);
}
复合体亚群(复合体A){
int AnsR=这个.R-A.R;
int AnsI=此.I-A.I;
complexN Sum=新的complexN(AnsR,AnsI);
回报金额;
}
复合物(复合物A){
int AnsI=(this.R*A.I)+(this.I*A.R);
int AnsR=(this.R*A.R)-(this.I*A.I);
complexN Sum=新的complexN(AnsR,AnsI);
回报金额;
}
complexN DivCN(complexN A){
complexN ComCon=新的complexN(A.R,(A.I*-1));
complexN part1=新的complexN(this.R,this.I).MulCN(ComCon);
复合物n第2部分=A.MulCN(ComCon);
返回部分1;
}
作废打印(){
字符串i=(this.i==1?”:(this.i==1?”-“:”+this.i));
如果(this.R!=0&&this.I>0){
System.out.println(this.R++“+i++”i);
}
如果(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){
系统输出打印项次(“0”);
}
}
}
阶级情结{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
配合物z1=新的配合物(5,2);
配合物z2=新的配合物(3,-4);
系统输出打印(“z1=”);
z1.print();
系统输出打印(“z2=”);
z2.print();
System.out.println(“-----------”);
z1.DivCN(z2.print();
}
}

你的名字到处都是。在Java中,类在
PascalCase
中,方法和变量在
camelCase
中。请更新您的代码以符合正确的命名约定。这是目前难以辨认的。确实没有遵循命名约定,但我反驳说这是难以辨认的。我认为,由于您的类只有整数精度,因此除法的结果不是精确值是合理的。你可以将R和I存储为双倍,否则你的R和I类型需要是分数。或者根据您的要求,使用双精度标记将其混在一起。请遵守案例惯例。