寫一程式,定義“複數”類別 complex。複數形式為 a+bi,其中a為實部係數,b
為虛部係數。詳細內容如下:
(a) 類別名稱為 complex , 分別包含兩個名為real 及imaginary 的instance
variable,型別為double。
(b) 一接受兩個double型態之參數之constructor,負責將第一個參數指定給real
成員,第二個參數指定給imaginary成員。
(c) 一接受一個double型態之參數之constructor,負責將第一個參數指定給real
成員,並將imaginary成員值設定為0。
(d) 一無參數之constructor,將real及imaginary成員值設定為0。
(e) 一個名為equals之method,接收一complex型別之參數,負責比較兩複數是否
相同,傳回boolean值(相同為True,否則為False)。
(f) 一個名為toString之method,接收一complex型別之參數,負責印出該複數目
前之值(如 5+7i)。
(g) 一名為addition之method,無傳回值,接收一complex型別之參數,將參數之
複數依複數加法加至目前之成員。
(h) 一名為substraction之method,無傳回值,接收一complex型別之參數,將參
數之複數依複數減法由目前之成員相減。
(i) 一名為multiplication之method,無傳回值,接收一complex型別之參數,將
參數之複數依複數乘法運算後存入目前之成員。 [ 註複數乘法:
(a+bi)*(c+di)=(ac-bd)+(ad+bc)i]主程式部分請依下列要求依序完成:
(i) 讓使用者依序輸入兩個複數之實部係數及虛部係數,並印出兩個複數及兩複
數是否相等。 (需引用constructor、toString、equals)
(ii) 利用addition method,計算並印出兩複數相加後之結果。 (假定兩複數object
分別為 c1、c2,則需引用 c1.addition(c2) )
(iii)利用substraction method,計算並印出兩複數相減後之結果。 (假定兩複數
object分別為 c1、c2,則需引用 c1.substraction(c2) )
(iv) 利用multiplication method,計算並印出兩複數相乘後之結果。 (假定兩複數
object分別為 c1、c2,則需引用 c1.multiplication(c2) )
(v) 分別印出目前兩複數之值 (需引用toString)
=======================================================================
以上為題目,虛心求教!感謝。
為虛部係數。詳細內容如下:
(a) 類別名稱為 complex , 分別包含兩個名為real 及imaginary 的instance
variable,型別為double。
(b) 一接受兩個double型態之參數之constructor,負責將第一個參數指定給real
成員,第二個參數指定給imaginary成員。
(c) 一接受一個double型態之參數之constructor,負責將第一個參數指定給real
成員,並將imaginary成員值設定為0。
(d) 一無參數之constructor,將real及imaginary成員值設定為0。
(e) 一個名為equals之method,接收一complex型別之參數,負責比較兩複數是否
相同,傳回boolean值(相同為True,否則為False)。
(f) 一個名為toString之method,接收一complex型別之參數,負責印出該複數目
前之值(如 5+7i)。
(g) 一名為addition之method,無傳回值,接收一complex型別之參數,將參數之
複數依複數加法加至目前之成員。
(h) 一名為substraction之method,無傳回值,接收一complex型別之參數,將參
數之複數依複數減法由目前之成員相減。
(i) 一名為multiplication之method,無傳回值,接收一complex型別之參數,將
參數之複數依複數乘法運算後存入目前之成員。 [ 註複數乘法:
(a+bi)*(c+di)=(ac-bd)+(ad+bc)i]主程式部分請依下列要求依序完成:
(i) 讓使用者依序輸入兩個複數之實部係數及虛部係數,並印出兩個複數及兩複
數是否相等。 (需引用constructor、toString、equals)
(ii) 利用addition method,計算並印出兩複數相加後之結果。 (假定兩複數object
分別為 c1、c2,則需引用 c1.addition(c2) )
(iii)利用substraction method,計算並印出兩複數相減後之結果。 (假定兩複數
object分別為 c1、c2,則需引用 c1.substraction(c2) )
(iv) 利用multiplication method,計算並印出兩複數相乘後之結果。 (假定兩複數
object分別為 c1、c2,則需引用 c1.multiplication(c2) )
(v) 分別印出目前兩複數之值 (需引用toString)
=======================================================================
以上為題目,虛心求教!感謝。
为虚部系数。详细内容如下:
(a) 类别名称为 complex , 分别包含两个名为real 及imaginary 的instance
variable,型别为double。
(b) 一接受两个double型态之参数之constructor,负责将第一个参数指定给real
成员,第二个参数指定给imaginary成员。
(c) 一接受一个double型态之参数之constructor,负责将第一个参数指定给real
成员,并将imaginary成员值设定为0。
(d) 一无参数之constructor,将real及imaginary成员值设定为0。
(e) 一个名为equals之method,接收一complex型别之参数,负责比较两复数是否
相同,传回boolean值(相同为True,否则为False)。
(f) 一个名为toString之method,接收一complex型别之参数,负责印出该复数目
前之值(如 5+7i)。
(g) 一名为addition之method,无传回值,接收一complex型别之参数,将参数之
复数依复数加法加至目前之成员。
(h) 一名为substraction之method,无传回值,接收一complex型别之参数,将参
数之复数依复数减法由目前之成员相减。
(i) 一名为multiplication之method,无传回值,接收一complex型别之参数,将
参数之复数依复数乘法运算后存入目前之成员。 [ 注复数乘法:
(a+bi)*(c+di)=(ac-bd)+(ad+bc)i]
主程序部分请依下列要求依序完成:
(i) 让使用者依序输入两个复数之实部系数及虚部系数,并印出两个复数及两复
数是否相等。 (需引用constructor、toString、equals)
(ii) 利用addition method,计算并印出两复数相加后之结果。 (假定两复数object
分别为 c1、c2,则需引用 c1.addition(c2) )
(iii)利用substraction method,计算并印出两复数相减后之结果。 (假定两复数
object分别为 c1、c2,则需引用 c1.substraction(c2) )
(iv) 利用multiplication method,计算并印出两复数相乘后之结果。 (假定两复数
object分别为 c1、c2,则需引用 c1.multiplication(c2) )
(v) 分别印出目前两复数之值 (需引用toString)
也許不甚好,不過還是把程式碼貼除來讓大家指教指教。
import java.util.Scanner;
public class prog1
{
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
System.out.println("請輸入c1複數的實部係數:");
double pa1=keyboard.nextDouble();
System.out.println("請輸入c1複數的虛部係數:");
double pb1=keyboard.nextDouble(); System.out.println("請輸入c2複數的實部係數:");
double pa2=keyboard.nextDouble();
System.out.println("請輸入c2複數的虛部係數:");
double pb2=keyboard.nextDouble();
complex c1=new complex(pa1, pb1);
complex c2=new complex(pa2, pb2);
System.out.println("您輸入的c1複數值"+c1.toString());
System.out.println("您輸入的c2複數值"+c2.toString());
if (c1.equals(c2))
System.out.println("兩複數相等");
else
System.out.println("兩複數不相等");
c1.addition(c2);
System.out.println("兩複數相加後之結果:");
System.out.println(c1.toString()); c1.substraction(c2);
System.out.println("兩複數相減後之結果:");
System.out.println(c1.toString());
c1.multiplication(c2);
System.out.println("兩複數相乘後之結果:");
System.out.println(c1.toString()); System.out.println("目前c1矩陣的值:");
System.out.println(c1.toString());
System.out.println("目前c2矩陣的值:");
System.out.println(c2.toString());
}
}import java.util.Scanner;
public class complex
{
public double real;
public double imaginary;
public complex(double pa, double pb)
{
real=pa;
imaginary=pb;
} public complex(double pa)
{
real=pa;
imaginary=0;
} public complex()
{
real=0;
imaginary=0;
} public boolean equals(complex other)
{
return ((this.real==other.real)&&(this.imaginary==other.imaginary));
} public String toString()
{
return (real+"+"+imaginary+"i");
} public void addition(complex pa)
{
this.real=real+pa.real;
this.imaginary=imaginary+pa.imaginary;
} public void substraction(complex pa)
{
this.real=real-pa.real;
this.imaginary=imaginary-pa.imaginary;
} public void multiplication(complex pa)
{
this.real=(real*pa.real)-(imaginary*pa.imaginary);
this.imaginary=(real*pa.imaginary)+(imaginary*pa.real);
}
}以上,compile過的了,題意應該也沒理解錯誤吧。
import java.util.Scanner;
public class prog1
{
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
System.out.println("請輸入c1複數的實部係數:");
double pa1=keyboard.nextDouble();
System.out.println("請輸入c1複數的虛部係數:");
double pb1=keyboard.nextDouble(); System.out.println("請輸入c2複數的實部係數:");
double pa2=keyboard.nextDouble();
System.out.println("請輸入c2複數的虛部係數:");
double pb2=keyboard.nextDouble();
complex c1=new complex(pa1, pb1);
complex c2=new complex(pa2, pb2);
System.out.println("您輸入的c1複數值"+c1.toString());
System.out.println("您輸入的c2複數值"+c2.toString());
if (c1.equals(c2))
System.out.println("兩複數相等");
else
System.out.println("兩複數不相等");
c1.addition(c2);
System.out.println("兩複數相加後之結果:");
System.out.println(c1.toString()); c1.substraction(c2);
System.out.println("兩複數相減後之結果:");
System.out.println(c1.toString());
c1.multiplication(c2);
System.out.println("兩複數相乘後之結果:");
System.out.println(c1.toString()); System.out.println("目前c1複數的值:");
System.out.println(c1.toString());
System.out.println("目前c2複數的值:");
System.out.println(c2.toString());
}
}
import java.util.Scanner;
public class complex
{
public double real;
public double imaginary;
public complex(double pa, double pb)
{
real=pa;
imaginary=pb;
} public complex(double pa)
{
real=pa;
imaginary=0;
} public complex()
{
real=0;
imaginary=0;
} public boolean equals(complex other)
{
return ((this.real==other.real)&&(this.imaginary==other.imaginary));
} public String toString()
{
return (real+"+"+imaginary+"i");
} public void addition(complex pa)
{
this.real=real+pa.real;
this.imaginary=imaginary+pa.imaginary;
} public void substraction(complex pa)
{
this.real=real-pa.real;
this.imaginary=imaginary-pa.imaginary;
} public void multiplication(complex pa)
{
this.real=(real*pa.real)-(imaginary*pa.imaginary);
this.imaginary=(real*pa.imaginary)+(imaginary*pa.real);
}
}