第八週作業任務一(1)方案一

/* (程序頭部註釋開始) * 程序的版權和版本聲明部分 * Copyright (c) 2011, 煙臺大學計算機學院學生  * All rights reserved. * 文件名稱:定義一個複數類重載運算符+、-、*、/,使之能用於複數的加減乘除。

* 作    者:       張馨                     * 完成日期:     2012    年 04      月  09日

* 版 本 號:       V1.0    * 對任務及求解方法的描述部分 * 輸入描述:  * 問題描述:  * 程序輸出: 

* 程序頭部的註釋結束

*/

#include <iostream> using namespace std; class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c2); Complex operator-(Complex &c2); Complex operator*(Complex &c2); Complex operator/(Complex &c2); void display(); private: double real; double imag; }; //下面定義成員函數 //複數相加: (a+bi)+(c+di)=(a+c)+(b+d)i. Complex Complex::operator+(Complex &c2) { Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; } //複數相減:(a+bi)-(c+di)=(a-c)+(b-d)i. Complex Complex::operator-(Complex &c2) { Complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return c; } //複數相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i. Complex Complex::operator*(Complex &c2) { Complex c; c.real=real*c2.real-imag*c2.imag; c.imag=imag*c2.real+real*c2.imag; return c; } //複數相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i Complex Complex::operator/(Complex &c2) { Complex c; double d=c2.real*c2.real+c2.imag*c2.imag; c.real=(real*c2.real+imag*c2.imag)/d; c.imag=(imag*c2.real-real*c2.imag)/d; return c; } void Complex::display( ) { cout<<"("<<real<<","<<imag<<"i)"<<endl; } int main() { Complex c1(3,4),c2(5,-10),c3; cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); c3=c1+c2; cout<<"c1+c2="; c3.display(); c3=c1-c2; cout<<"c1-c2="; c3.display(); c3=c1*c2; cout<<"c1*c2="; c3.display(); c3=c1/c2; cout<<"c1/c2="; c3.display(); system("pause"); return 0; }


上機感言:任務一方案一比較簡單,就是照葫蘆畫瓢,就是在複數的除法中遇到點小麻煩,不知道公式是什麼。。。

發佈了63 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章