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

您所在的位置:网站首页 东方航空公司的航标 用java实现复数的加减乘除运算

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

2023-11-16 11:28| 来源: 网络整理| 查看: 265

用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. 测试运行结果截图



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3