自己第一次写的::
package one;
public class Complex {
double real1;
double virtual1;
double real2;
double virtual2;
// void just1(double real1, double virtual1) {
// this.real1 = real1;
// this.virtual1 = virtual1;
// }
//
// void just(double real2,double virtual2) {
// this.real2 = real2;
// this.virtual2 = virtual2;
// }
public void add() // 加
{
double real;
double virtual;
real = real1 + real2;
virtual = virtual1 + virtual2;
if (real == 0 && virtual == 0)
System.out.println(0);
else if (real == 0 && virtual != 0)
System.out.println(virtual + "i");
else if (real != 0 && virtual == 0)
System.out.println(real);
else {
if (virtual > 0)
System.out.println(real + "+" + virtual + "i");
else
System.out.println(real + "-" + Math.abs(virtual) + "i");
}
}
public void minus()// 减
{
double real;
double virtual;
real = real1 - real2;
virtual = virtual1 - virtual2;
if (real == 0 && virtual == 0)
System.out.println(0);
else if (real == 0 && virtual != 0)
System.out.println(virtual + "i");
else if (real != 0 && virtual == 0)
System.out.println(real);
else {
if (virtual > 0)
System.out.println(real + "+" + virtual + "i");
else
System.out.println(real + "-" + Math.abs(virtual) + "i");
}
}
public void muls() // 乘
{
double real = real1 * real2 + virtual1 * virtual2 * (-1);
double virtual = real1 * virtual2 + real2 * virtual1;
if (real == 0 && virtual == 0)
System.out.println(0);
else if (real == 0 && virtual != 0)
System.out.println(virtual + "i");
else if (real != 0 && virtual == 0)
System.out.println(real);
else {
if (virtual > 0)
System.out.println(real + "+" + virtual + "i");
else
System.out.println(real + "-" + Math.abs(virtual) + "i");
}
}
public void divide()// 除
{
double real = (real1 * real2 + virtual1 * virtual2)
/ (real2 * real2 + virtual2 * virtual2);
double virtual = (real2 * virtual1 - real1 * virtual2)
/ (real2 * real2 + virtual2 * virtual2);
if (real == 0 && virtual == 0)
System.out.println(0);
else if (real == 0 && virtual != 0)
System.out.println(virtual + "i");
else if (real != 0 && virtual == 0)
System.out.println(real);
else {
if (virtual > 0)
System.out.println(real + "+" + virtual + "i");
else
System.out.println(real + "-" + Math.abs(virtual) + "i");
}
}
public void mod1() // 取模
{
double m = Math.sqrt(real1 * real1 + virtual1 * virtual1);
System.out.println(m);
}
public void mod2() {
double m= Math.sqrt(real2 * real2 + virtual2 * virtual2);
System.out.println(m);
}
public void just() {
if (real1 == real2 && virtual1 == virtual2)
System.out.println("YES");
else
System.out.println("NO");
}
}
package one;
import java.util.Scanner;
public class Conplextest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc1 = new Scanner(System.in);
Complex c = new Complex();
System.out.println("输入第一个复数:");
c.real1 = sc1.nextDouble();
c.virtual1 = sc1.nextDouble();
System.out.println("输入第二个复数:");
c.real2 = sc1.nextDouble();
c.virtual2 = sc1.nextDouble();
System.out.println("输入的2个复数和为::");
c.add();
System.out.println("输入的2个复数差为::");
c.minus();
System.out.println("输入的2个复数乘积为::");
c.muls();
System.out.println("输入的2个复数商为::");
c.divide();
System.out.println("第一个复数的模::");
c.mod1();
System.out.println("第二" + "个复数的模::");
c.mod2();
System.out.println("两个复数是否相同::");
c.just();
}
}
测试::
Test 1
输入第一个复数:
1 2
输入第二个复数:
-1 2
输入的2个复数和为::
4.0i
输入的2个复数差为::
2.0
输入的2个复数乘积为::
-5.0
输入的2个复数商为::
0.6-0.8i
第一个复数的模::
2.23606797749979
第二个复数的模::
2.23606797749979
两个复数是否相同::
NO
Test 2
输入第一个复数:
-1 -5
输入第二个复数:
1 -5
输入的2个复数和为::
-10.0i
输入的2个复数差为::
-2.0
输入的2个复数乘积为::
-26.0
输入的2个复数商为::
0.9230769230769231-0.38461538461538464i
第一个复数的模::
5.0990195135927845
第二个复数的模::
5.0990195135927845
两个复数是否相同::
NO
一口气写完之后感觉 卧槽真简单啊。。。。。 妈卖批:: C学多了,没在意Java 是面向过程的问题了。重写重写
加粗样式:; 面向对象java Complex编程
package demo01;
import java.util.*;
public class Complex {
double re;
double vi;
Complex(double re, double vi) {
this.re = re;
this.vi = vi;
}
public Complex add(Complex c) {
return new Complex(this.re + c.re, this.vi + c.vi);
}
public Complex minus(Complex c) {
return new Complex(this.re - c.re, this.vi - c.vi);
}
public Complex muls(Complex c) {
return new Complex(this.re * c.re + this.vi * c.vi * (-1), this.re
* c.vi + this.vi * c.re);
}
public Complex divs(Complex c) {
return new Complex((this.re * c.re + this.re * c.vi)
/ (c.re * c.re + c.vi * c.vi),
(c.re * this.vi - this.re * c.vi) / (c.re * c.re + c.vi * c.vi));
}
public Complex mod1(Complex c) {
return new Complex(this.re * this.re, this.vi * this.vi);
}
public Complex mod2(Complex c) {
return new Complex(c.re * c.re, c.vi * c.vi);
}
Double SQ() {
double m = 0;
m = Math.sqrt(this.re + this.vi);
return m;
}
public String just(Complex c) {
String str = null;
if (this.re == c.re && this.vi == c.vi)
str = "YES";
else
str = "NO";
return str;
}
String show() {
String str = null;
if (this.re == 0 && this.vi == 0)
str = "0";
if (this.re == 0 && this.vi != 0)
str = this.vi + "i";
if (this.re != 0 && this.vi == 0)
str = this.re + "" + "";
if (this.re != 0 && this.vi != 0) {
if (this.vi > 0)
str = this.re + "+" + this.vi + "i";
else
str = this.re + "" + this.vi + "i";
}
return str;
}
}
package demo01;
import java.util.Scanner;
public class ComplexTest {
/**
* @param args
*/
public static void main(String[] args) {
double re1, re2, vi1, vi2;
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个复数::");
re1 = sc.nextDouble();
vi1 = sc.nextDouble();
Complex c1 = new Complex(re1, vi1);
// System.out.println(c1.show());
System.out.println("请输入第一个复数::");
re2 = sc.nextDouble();
vi2 = sc.nextDouble();
Complex c2 = new Complex(re2, vi2);
System.out.println("复数和::");
System.out.println(c1.add(c2).show());
System.out.println("复数差::");
System.out.println(c1.minus(c2).show());
System.out.println("复数积::");
System.out.println(c1.muls(c2).show());
System.out.println("复数商::");
System.out.println(c1.divs(c2).show());
System.out.println("复数1 mod::");
System.out.println(c1.mod1(c2).SQ());
System.out.println("复数2 mod::");
System.out.println(c1.mod2(c2).SQ());
System.out.println("复数判断::");
System.out.println(c1.just(c2));
}
}