C 複數類編寫小練習

2021-09-20 10:11:55 字數 2719 閱讀 3651

建立複數類。然後過載流操作運算子,能夠執行輸入輸出(10分)

題目內容:

1. 關於複數:

複數x被定義為二元有序實數對(a,b),記為z=a+bi,這裡a和b是實數,i是虛數單位。在複數a+bi中,a=re(z)稱為實部,b=im(z)稱為虛部。當虛部等於零時,這個複數可以視為實數;當z的虛部不等於零時,實部等於零時,常稱z為純虛數。

複數的四則運算規定為:

加法法則:(a+bi)+(c+di)=(a+c)+(b+d)i;

減法法則:(a+bi)-(c+di)=(a-c)+(b-d)i;

乘法法則:(a+bi)·(c+di)=(ac-bd)+(bc+ad)i;

除法法則:(a+bi)÷(c+di)=[(ac+bd)/(c²+d²)]+[(bc-ad)/(c²+d²)]i.

2. 建立乙個類 mycomplex,用來表示複數。

3. 過載流提取運算子 >> ,使之可以讀入以下格式的輸入(兩個數值之間使用空白分隔),將第乙個數值存為複數的實部,將第二個數值存為複數的虛部:

-1.1  2.0

+0   -4.5

4. 過載流插入運算子 << ,使之可以將複數輸出為如下的格式(實部如果是非負數,則不輸出符號位;輸出時要包含半形左右小括號):

(-1.1+2.0i)

(0-4.5i)

5.不可以改動主函式內部的任何表示式或者語句

標頭檔案及主函式:

#include 

int main() 

friend istream& operator >>(istream& is, mycomplex& z)

};int main() 修改複數類,過載加減法運算子(10分)

題目內容:

1. 在本單元作業1的基礎上,修改/新增**,過載四則運算符 +、- 、*、/,使之可以完成相應的運算

2. 在做除法時,如果除數是0,則輸出一條資訊:「divisor can not be 0」 (注意:請精確複製這段資訊,否則即便你的程式邏輯正確,oj系統仍然會判你失敗。輸出資訊中不包含引號)然後結束程式(呼叫 exit() 函式),直接退出(注意,傳遞給作業系統的返回值與main函式正常結束時相同,仍然為0)。判斷除數是否為0時,使用if()語句即可

3. 不改動主函式。

包含的標頭檔案及主函式:

請勿對主函式內容做任何改變,包括字串中的空白等。否則,oj可能不給你分數!

#include 

#include 

#include 

int main() 

輸入格式:

輸入兩個複數。

每個複數均包括由空格分隔的兩個浮點數

輸入第乙個複數後,鍵入回車,然後繼續輸入第二個複數

輸出格式:

單個複數的輸出格式參見本單元作業1的輸出格式

本題目的輸出,請見主函式

輸入樣例:

+100 -0 8.0000001 +040.2

輸出樣例:

z1 + z2 = (108+40.2i)

z1 - z2 + z1 = (192-40.2i)

z1 * z2 - z1 = (700+4020i)

z1 / z2 + z1 = (100.476-2.3928i)

z2 - z1 / z1 = (7+40.2i)

上述輸出的第5行尾沒有換行符

這裡注釋的一行還有問題

#include #include #include using namespace std;

class mycomplex

mycomplex(double real, double image) :real_(real), image_(image) {}

mycomplex(const mycomplex &z):real_(z.real_),image_(z.image_){}

friend ostream& operator <<(ostream& os, const mycomplex& z)

friend istream& operator >>(istream& is, mycomplex& z)

mycomplex operator +(mycomplex& z)

mycomplex operator -(mycomplex& z)

/*friend mycomplex operator-(mycomplex&z1, mycomplex &z2) */

mycomplex operator * (const mycomplex& z)

mycomplex operator / (const mycomplex& z)

double length = z.real_*z.real_ + z.image_*z.image_;

double real = (real_ * z.real_ + image_ * z.image_) / length;

double image = (image_ * z.real_ - real_ * z.image_) / length;

return mycomplex(real, image);

}};int main()

C 小練習Clock類,Car類 C 小練習

我們在以前使用c語言實現的時候 定義變數 通過函式填充變數 去顯示變數 使用c 定義的變數 類內的資料成員 通過函式填充變數 構造器 去顯示變數 行為 屬性 時,分,秒 行為 run 在螢幕上實現電子時鐘 13 04 05 每隔一秒更新乙個顯示。分析構造時,初始化為當前系統時間,然後每隔一秒,刷屏。...

C 練習 編寫MyString類

編寫mystring類,用於表示字串。要求 1 mystring類有乙個成員變數,用於存放字串的內容 char val 2 mystring類具有如下幾個建構函式 mystring 產生空串 mystring int ival 將ival轉成字串,並初始化成員變數val mystring float...

C 螢幕類,矩形類簡單小練習

在本單元作業和作業的基礎上,建立乙個myrectangle類,並在main函式中建立類的例項。10分 題目難度 難 題目內容 screen類 與作業要求完全相同。如果你的作業順利通過,那麼你可以直接使用作業中screen類的 myrectangle類 myrectangle 代表的是乙個矩形。我們用...