问题及代码:
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:Complex.java
*作 者:单昕昕
*完成日期:2015年11月15日
*版 本 号:v1.0
*问题描述:Octagon八边形。
*程序输入:边长。
*程序输出:面积和周长。
*/
import java.util.Scanner;
class Complex//Complex类
{
private double real;
private double imag;
private double val;
public Complex()//初始化
{
this.real=0;
this.imag=0;
}
public Complex(double a)
{
this.real=a;
this.imag=0;
}
public Complex(double a,double b)
{
this.real=a;
this.imag=b;
}
public double getRealPart()//实部
{
return real;
}
public double getImagPart()//虚部
{
return imag;
}
public void add(Complex c1,Complex c2)//加法
{
this.real=c1.real+c2.real;
this.imag=c1.imag+c2.imag;
}
public void substract(Complex c1,Complex c2)//减法
{
this.real=c1.real-c2.real;
this.imag=c1.imag-c2.imag;
}
public void multiply(Complex c1,Complex c2)//乘法
{
this.real=(c1.real*c2.real)-(c1.imag*c2.imag);
this.imag=(c2.real*c1.imag)+(c1.real*c2.imag);
}
public void divide(Complex c1,Complex c2)//除法
{
this.real=(c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
this.imag=(c2.real*c1.imag-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
}
public double abs(Complex c)//复数的绝对值
{
double abs=Math.sqrt(c.real*c.real+c.imag*c.imag);
return abs;
}
}
public class Test
{
public static void main(String args[])
{
Scanner input=new Scanner(System.in); //输入测试数据
System.out.print("Please enter the first complex number:");
double a =input.nextDouble();
double b =input.nextDouble();
System.out.print("Please enter the second complex number:");
double c =input.nextDouble();
double d =input.nextDouble();
Complex c1=new Complex(a,b);//构建复数
Complex c2=new Complex(c,d);
//System.out.println(c1.getRealPart()+"+"+c1.getImagPart()+"i");
//System.out.println(c2.getRealPart()+"+"+c2.getImagPart()+"i");
Complex cc=new Complex();
cc.add(c1,c2);//运算
//System.out.println(cc.getRealPart()+"+"+cc.getImagPart()+"i");
System.out.println(a+" + "+b+" i + "+c+" + "+d+" i = "+cc.getRealPart()+" +
"+cc.getImagPart()+" i");
cc.substract(c1,c2);
System.out.println(a+" + "+b+" i - "+c+" + "+d+" i = "+cc.getRealPart()+" +
"+cc.getImagPart()+" i");
cc.multiply(c1,c2);
System.out.println(a+" + "+b+" i * "+c+" + "+d+" i = "+cc.getRealPart()+" +
"+cc.getImagPart()+" i");
cc.divide(c1,c2);
System.out.println(a+" + "+b+" i / "+c+" + "+d+" i = "+cc.getRealPart()+" +
"+cc.getImagPart()+" i");
cc.abs(c1);
System.out.println("| "+a+" + "+b+" i | = "+cc.abs(c1));
cc.abs(c2);
System.out.println("| "+a+" + "+b+" i | = "+cc.abs(c2));
}
}
运行结果:
知识点总结:
类和对象。
学习心得:
Java里木有引用“&”,C++里有。。
其他的好像就和上个学期用C++写的复数类差不多啦~