java复数类源代码 编写复数类

JAVA编程 实现一个复数类 急!!

import java.io.*;

成都创新互联公司专注于霍山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供霍山营销型网站建设,霍山网站制作、霍山网页设计、霍山网站官网定制、微信小程序服务,打造霍山网络公司原创品牌,更为您提供霍山网站排名全网营销落地服务。

class complex{

//复数类

public float realPart;

public float imagPart;

}

public class Main extends complex{

public static String readString(){

//从键盘读取字符串

BufferedReader br=new BufferedReader(new InputStreamReader(System.in),1);

String s1="";

try{

s1=br.readLine();

}catch(IOException ex){

System.out.println(ex);

}

return s1;

}

public static float readFloat(){

//字符串转换为浮点数

return Float.parseFloat(readString());

}

public static char plus(float r1,float r2,float i1,float i2){

//实现复数相加并输出

complex sum=new complex();

sum.imagPart=i1+i2;

sum.realPart=r1+r2;

if(sum.imagPart0){

//解决虚部为负时同时显示+ -号问题

sum.imagPart=-sum.imagPart;

System.out.println("两数相加="+sum.realPart+"-"+sum.imagPart+"i");

return 'f';

}

System.out.println("两数相加="+sum.realPart+"+"+sum.imagPart+"i");

return 'z';

}

public static char minus(float r1,float r2,float i1,float i2){

//实现复数相减并输出

complex cha=new complex();

cha.imagPart=i1-i2;

cha.realPart=r1-r2;

if(cha.imagPart0){

//解决虚部为负时同时显示+ -号问题

cha.imagPart=-cha.imagPart;

System.out.println("两数相减="+cha.realPart+"-"+cha.imagPart+"i");

return 'f';

}

System.out.println("两数相减="+cha.realPart+"+"+cha.imagPart+"i");

return 'z';

}

public static void main(String[] args) {

//主方法

complex a=new complex();

complex b=new complex();

System.out.println("输入第一个复数...");

System.out.print("\n实部=");

a.realPart=Main.readFloat();

System.out.print("虚部=");

a.imagPart=Main.readFloat();

System.out.println("\n输入第二个复数...");

System.out.print("\n实部=");

b.realPart=Main.readFloat();

System.out.print("虚部=");

b.imagPart=Main.readFloat();

System.out.println("\n");

Main.plus(a.realPart,b.realPart,a.imagPart,b.imagPart);

Main.minus(a.realPart,b.realPart,a.imagPart,b.imagPart);

}

}

以前做的 可以实现复数加减法。因为浮点数精度问题,输出可能会有点误差

用java 编写一个复数类

public class Complex {

protected int a;

protected int b;

public Complex(int a, int b) {

this.a = a;

this.b = b;

}

public String toString() {

return this.a + " + " + this.b + "i";

}

public static Complex addition(Complex complex1, Complex complex2) {

int a = complex1.a + complex2.a;

int b = complex1.b + complex2.b;

return new Complex(a, b);

}

public static Complex subtract(Complex complex1, Complex complex2) {

int a = complex1.a - complex2.a;

int b = complex1.b - complex2.b;

return new Complex(a, b);

}

public static Complex multiplication(Complex complex1, Complex complex2) {

int a = complex1.a * complex2.a - complex1.b * complex2.b;

int b = complex1.b * complex2.a + complex1.a * complex2.b;

return new Complex(a, b);

}

public static Complex division(Complex complex1, Complex complex2) throws Exception {

if (complex2.a == 0) {

throw new Exception("complex2.a is 0");

}

if (complex2.b == 0) {

throw new Exception("complex2.b is 0");

}

int a = (complex1.a * complex2.a + complex1.b * complex2.b) / (complex2.a * complex2.a + complex2.b * complex2.b);

int b = (complex1.b * complex2.a - complex1.a * complex2.b) / (complex2.a * complex2.a + complex2.b * complex2.b);

return new Complex(a, b);

}

}

//测试用的类

public class ComplexTest {

public static void main(String[] args) throws Exception{

// TODO Auto-generated method stub

Complex complex1 = new Complex(1, 2);

Complex complex2 = new Complex(3, 4);

System.out.println(complex1 + " + " + complex2 + " = " + Complex.addition(complex1, complex2));

System.out.println(complex1 + " - " + complex2 + " = " + Complex.subtract(complex1, complex2));

System.out.println(complex1 + " x " + complex2 + " = " + Complex.multiplication(complex1, complex2));

System.out.println(complex1 + " / " + complex2 + " = " + Complex.division(complex1, complex2));

}

}

用java编写一个复数类,包含实部和虚部属性,还有复数相加、相减以及复数的求模、输出复数字符串”a+bi”

import java.util.*;

public class ComplexTest{

static class ComplexNumber{

private double real,image;

public ComplexNumber(){

this(0.0,0.0);}

public ComplexNumber(double a,double b){

real=a;image=b;

}

public ComplexNumber add(ComplexNumber x){

return new ComplexNumber(real+x.real,image+x.image);}

public ComplexNumber sub(ComplexNumber x){

return new ComplexNumber(real-x.real,image-x.image); }

public ComplexNumber mul(ComplexNumber x){

return new ComplexNumber(real*x.real-image*x.image,real*x.image+image*x.real);}

public ComplexNumber div(ComplexNumber x){

if(x.real==0x.image==0){

System.out.println("无法进行除法!");

return new ComplexNumber();}

else return new ComplexNumber((real*x.real+image*x.image)/(x.real*x.real+x.image*x.image)

,(image*x.real-real*x.image)/(x.real*x.real+x.image*x.image));}

public double getReal (){return real;}

public double getImage (){return image;}

public void show(){System.out.println(this.toString());}

public String toString(){

if(image0)return ""+real+image+"i";

else return ""+real+"+"+image+"i";

}

}

static class Test{

public Test(){

Scanner sr=new Scanner(System.in);

ComplexNumber a,b,c;

try{System.out.println("请输入第一个实部和虚部:");

a=new ComplexNumber(sr.nextDouble(),sr.nextDouble());

System.out.println("请输入第二个实部和虚部:");

b=new ComplexNumber(sr.nextDouble(),sr.nextDouble());

System.out.print("第一个复数:");a.show();

System.out.print("第二个复数:");b.show();

c=a.add(b);

System.out.print("两个复数的和:");c.show();

c=a.sub(b);

System.out.print("两个复数的差:");c.show();

c=a.mul(b);

System.out.print("两个复数的积:");c.show();

c=a.div(b);

System.out.print("两个复数的商:");c.show();

}

catch(InputMismatchException e){

System.out.println("输入有误!");}

}

}

public static void main(String[] args){

new Test();

}

}

用JAVA实现复数的混合运算的源程序

public class Complex

{

private double realPart;

private double imaginaryPart;

public Complex(double a, double b)

{

this.realPart = a;

this.imaginaryPart = b;

}

public Complex add(Complex a)

{

Complex result = new Complex(this.realPart + a.realPart, this.imaginaryPart + a.imaginaryPart);//(why?)

return result;

}

public Complex decrease(Complex a)

{

Complex result = new Complex(this.realPart - a.realPart, this.imaginaryPart - a.imaginaryPart);//(why?)

return result;

}

public Complex multiply(Complex a)

{

double newReal = this.realPart*a.realPart - this.imaginaryPart * a.imaginaryPart;

double newImaginary = this.realPart*a.imaginaryPart + this.imaginaryPart * a.realPart;

Complex result = new Complex(newReal, newImaginary);

return result;

}

public Complex divide(Complex a)

{

Complex conjugate = new Complex(this.realPart, -this.imaginaryPart);

Complex multiplication = conjugate.multiply(a);

multiplication.realPart /= this.realPart*this.realPart + this.imaginaryPart * this.imaginaryPart;

multiplication.imaginaryPart /= this.realPart*this.realPart + this.imaginaryPart * this.imaginaryPart;

return multiplication;

}

public String toString()

{

String show = this.realPart + " + " + this.imaginaryPart + "i";

return show;

}

public static void main(String [] args)

{

Complex a = new Complex (2, 3);

Complex b = new Complex (1,1);

System.out.println((a.add(b)).toString());

System.out.println((a.decrease(b)).toString());

System.out.println((a.multiply(b)).toString());

System.out.println((a.divide(b)).toString());

}

}

网站标题:java复数类源代码 编写复数类
标题路径:https://www.cdcxhl.com/article38/hiddpp.html

成都网站建设公司_创新互联,为您提供搜索引擎优化建站公司网站排名网站策划企业建站标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计