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

本文介绍如何使用Java编程实现复数的加、减、乘、除运算。通过定义一个名为Complex的类,包含带参数和不带参数的构造函数,以及相应的实例方法完成复数操作。代码中还包括了测试类MainClass,用于验证复数运算的正确性。
摘要由CSDN通过智能技术生成

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

1. 背景

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

2. 题目内容

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

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

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

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

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

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

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

smile.gif

3. 具体代码与解释

[java] view plaincopypackageFour;/*** @author Kun Sun* @Date: 2013.10.15*/importjava.util.Scanner;publicclassComplex {// 复数类doublereal;// 实部doubleimage;// 虚部Complex(){  // 不带参数的构造方法Scanner input = newScanner(System.in);doublereal = input.nextDouble();doubleimage = input.nextDouble();Complex(real,image);}privatevoidComplex(doublereal,doubleimage) {// 供不带参数的构造方法调用// TODO Auto-generated method stubthis.real = real;this.image = image;}Complex(doublereal,doubleimage){// 带参数的构造方法this.real = real;this.image = image;}publicdoublegetReal() {returnreal;}publicvoidsetReal(doublereal) {this.real = real;}publicdoublegetImage() {returnimage;}publicvoidsetImage(doubleimage) {this.image = image;}Complex add(Complex a){ // 复数相加doublereal2 = a.getReal();doubleimage2 = a.getImage();doublenewReal = real + real2;doublenewImage = image + image2;Complex result = newComplex(newReal,newImage);returnresult;}Complex sub(Complex a){ // 复数相减doublereal2 = a.getReal();doubleimage2 = a.getImage();doublenewReal = real - real2;doublenewImage = image - image2;Complex result = newComplex(newReal,newImage);returnresult;}Complex mul(Complex a){ // 复数相乘doublereal2 = a.getReal();doubleimage2 = a.getImage();doublenewReal = real*real2 - image*image2;doublenewImage = image*real2 + real*image2;Complex result = newComplex(newReal,newImage);returnresult;}Complex div(Complex a){ // 复数相除doublereal2 = a.getReal();doubleimage2 = a.getImage();doublenewReal = (real*real2 + image*image2)/(real2*real2 + image2*image2);doublenewImage = (image*real2 - real*image2)/(real2*real2 + image2*image2);Complex result = newComplex(newReal,newImage);returnresult;}publicvoidprint(){// 输出if(image >0){System.out.println(real + " + "+ image +"i");}elseif(image <0){System.out.println(real + ""+ image +"i");}else{System.out.println(real);}}}

[java] view plaincopypackageFour;/*** @author Kun Sun* @Date: 2013.10.15*/publicclassMainClass {// 用于测试复数类/*** @param args*/publicstaticvoidmain(String[] args) {// TODO Auto-generated method stubSystem.out.println("请用户输入第一个复数的实部和虚部:");Complex data1 = newComplex();System.out.println("请用户输入第二个复数的实部和虚部:");Complex data2 = newComplex();// 以下分别为加减乘除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. 测试运行结果截图

fdec404cc20de6693d64440fff748278.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值