第11周-数学方面:Complex类

问题及代码:

/*
*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++写的复数类差不多啦~

你可能感兴趣的:(java,类和对象)