当前位置:文档之家› 计科1141广东海洋大学java10(实验4)解答

计科1141广东海洋大学java10(实验4)解答

广东海洋大学学生实验报告书(学生用表)
实验名称实验四.类的基本编程课程名称Java程序设计与开发
技术
课程号
学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141
学生姓名邓超荣学号201411621110 实验地点钟海楼
04017
实验日期
2016.10.2
6
一实验目的:
掌握Java类的基本知识及应用
二实验内容:
定义一个名为Complex的类实现复数概念及运算,它的UML图如下,
先实现该类的相关方法,再试编写主方法来测试该类这些的方法。

GDOU-B-11-112
代码:
public class ComplexDemo {
public static void main(String[] args) {
Complex c1 = new Complex(1,2);
Complex c2 = new Complex(2,3);
Complex c3 = new Complex(4,-2);
double c = -2;
Complex sum = new Complex();
sum = plexAdd(c1,c2);
System.out.println("(1+2i)+(2+3i)="+sum);
sum = plexAdd(c1, c);
System.out.println("(1+2i)+(-2)="+sum);
sum = plexAdd(c1,c2,c3);
System.out.println("(1+2i)+(2+3i)+(4-2i)="+sum);
Complex mid = new Complex();
mid = plexMinus(c1,c2);
System.out.println("(1+2i)-(2+3i)="+mid);
mid = plexMinus(c1, c);
System.out.println("(1+2i)-(-2)="+mid);
Complex mul = new Complex();
mul = plexMul(c1,c2);
System.out.println("(1+2i)*(2+3i)="+mul);
mul = plexMul(c1, c);
System.out.println("(1+2i)*(-2)="+mul);
mul = plexMul(c1,c2,c3);
System.out.println("(1+2i)*(2+3i)*(4-2i)="+mul);
}
}
class Complex {
double realPart;
double imaginaryPart;
Complex(){} //默认构造函数
Complex(double r,double i) { //带参数的构造函数realPart = r;
imaginaryPart = i;
}
double getRealPart() { //返回实部
return realPart;
}
void setRealPart(double d) { //设置实部
realPart = d;
}
double getImaginaryPart() { //返回虚部
return imaginaryPart;
}
void setImaginaryPart(double d) { //设置虚部imaginaryPart = d;
}
Complex complexAdd(Complex c1,Complex c2) { //复数对象与复数对象相加
Complex sum = new Complex();
sum.realPart = c1.realPart + c2.realPart;
sum.imaginaryPart = c1.imaginaryPart +
c2.imaginaryPart;
return sum;
}
Complex complexAdd(Complex c1,double c2) { //复数
对象与实数相加
Complex sum = new Complex();
sum.realPart = c1.realPart + c2;
sum.imaginaryPart = c1.imaginaryPart;
return sum;
}
Complex complexAdd(Complex c1,Complex c2,Complex c3) { //三个复数相加
Complex sum = new Complex();
sum.realPart = c1.realPart + c2.realPart +
c3.realPart;
sum.imaginaryPart = c1.imaginaryPart +
c2.imaginaryPart + c3.imaginaryPart;
return sum;
}
Complex complexMinus(Complex c1,Complex c2) { //复数对象与复数对象相减
Complex mid = new Complex();
mid.realPart = c1.realPart - c2.realPart;
mid.imaginaryPart = c1.imaginaryPart -
c2.imaginaryPart;
return mid;
}
Complex complexMinus(Complex c1,double c2) { //复数对象与实数相减
Complex mid = new Complex();
mid.realPart = c1.realPart - c2;
mid.imaginaryPart = c1.imaginaryPart;
return mid;
}
Complex complexMul(Complex c1,Complex c2) { //复数对象与复数对象相乘
Complex mul = new Complex();
mul.realPart = c1.realPart * c2.realPart -
c1.imaginaryPart * c2.imaginaryPart;
mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;
return mul;
}
Complex complexMul(Complex c1,double c2) { //复数对象与实数相乘
Complex mul = new Complex();
mul.realPart = c1.realPart * c2;
mul.imaginaryPart = c1.imaginaryPart * c2;
return mul;
}
Complex complexMul(Complex c1,Complex c2,Complex c3) { //三个复数相乘
Complex mul = new Complex();
mul.realPart = c1.realPart * c2.realPart -
c1.imaginaryPart * c2.imaginaryPart;
mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;
double r = mul.realPart;
double i = mul.imaginaryPart;
mul.realPart = r * c3.realPart - i *
c3.imaginaryPart;
mul.imaginaryPart = r * c3.imaginaryPart + i *
c3.realPart;
return mul;
}
public String toString() { //以a+bi的形式显示复数
String s = new String();
if(realPart!=0){
if(imaginaryPart>0) {
s = (int)realPart + "+" + (int)imaginaryPart + "i";
}
else if(imaginaryPart==0) {
s = String.valueOf((int)realPart);
}
else{
s= (int)realPart+ ""+ (int)imaginaryPart+ "i";
}
}
else{
if(imaginaryPart>0) {
s = (int)imaginaryPart + "i";
}
else if(imaginaryPart==0) {
s = String.valueOf(0);
}
else{
s = (int)imaginaryPart + "i";
}
}
return s;
}
}。

相关主题