c++運(yùn)算符重載習(xí)題_第1頁
c++運(yùn)算符重載習(xí)題_第2頁
c++運(yùn)算符重載習(xí)題_第3頁
c++運(yùn)算符重載習(xí)題_第4頁
c++運(yùn)算符重載習(xí)題_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C+運(yùn)算符重載習(xí)題Task8-1/*1. 定義一個(gè)復(fù)數(shù)類 Complex,重載運(yùn)算符“ +”,使之能用于復(fù)數(shù)的加法運(yùn)算 將運(yùn)算符函數(shù)重載為非成員、非友元的普通函數(shù)。編寫程序,求兩個(gè)復(fù)數(shù)之和*/#includeusing namespace std;class Complexpublic:Complex()real=0;imag=0;Complex(double r,double i)real=r;imag=i;void display();double real;double imag;void Complex:display()cout(real,imagi);Complex operato

2、r +(Complex &c1,Complex &c2)Complex p;p.real=c1.real+c2.real;p.imag=c1.imag+c2.imag;return p;int main()Complex c1(3,5),c2(2,5),c3;c1.display();cout+;c2.display();cout=;c3=c1+c2;c3.display();Task8-2Complex 類的成員函數(shù),/*2. 定義一個(gè)復(fù)數(shù)類 Complex,重載運(yùn)算符“ +”、 使之能用于復(fù)數(shù)的加、減、乘、除。運(yùn)算符重載函數(shù)作為 編程,分別求兩個(gè)復(fù)數(shù)之和差積商。*/ #includeusi

3、ng namespace std; class Complexpublic: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;Complex Complex:operator +(C

4、omplex &c2) Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;Complex Complex:operator -(Complex &c2) Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;Complex Complex:operator *(Complex &c2) Complex c;c.real=real*c2.real;c.imag=imag*c2.imag;return c;Complex Complex:operator /(Comp

5、lex &c2) Complex c;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return c;void Complex:display()cout(real,imagi)endl; int main()Complex c1(3,4),c2(5,-10),c3; c3=c1+c2;coutc1+c2=;c3.display();c3=c1-c2;coutc1-c

6、2=;c3.display();c3=c1*c2;coutc1*c2=;c3.display();c3=c1/c2; coutc1/c2=; c3.display(); return 0;Task8-3重載運(yùn)算符“ +”、 c=a+b、 c=a*b 。、” * ”、” / ”,/* 求兩個(gè)矩陣之和、差、積、商,使之能用于矩陣向加減乘除,如 */ #include #define n 2#define m 3/定義 Matrix 類using namespace std; class Matrix public:Matrix();/friend Matrix operator+(Matrix &

7、,Matrix &);/friend Matrix operator-(Matrix &,Matrix &); friend Matrix operator*(Matrix &,Matrix &); friend Matrix operator/(Matrix &,Matrix &);void input(); /void display(); / private:默認(rèn)構(gòu)造函數(shù) 重載運(yùn)算符“ +輸入數(shù)據(jù)函數(shù)輸出數(shù)據(jù)函數(shù)int matnm;定義構(gòu)造函數(shù);Matrix:Matrix() /for(int i=0;in;i+)for(int j=0;jm;j+)matij=0;Matrix oper

8、ator+(Matrix&a,Matrix &b)/定義重載運(yùn)算符+”函Matrix c;for(int i=0;in;i+)for(int j=0;jm;j+)c.matij=a.matij+b.matij; return c;Matrix operator-(Matrix &a,Matrix &b) 數(shù)/定義重載運(yùn)算符+”函Matrix c;for(int i=0;in;i+)for(int j=0;jm;j+) c.matij=a.matij-b.matij; return c;Matrix operator*(Matrix &a,Matrix &b) 數(shù)/定義重載運(yùn)算符+”函Matri

9、x c;for(int i=0;in;i+)for(int j=0;jm;j+)c.matij=a.matij*b.matij;return c;定義重載運(yùn)算符“ +”函Matrix operator/(Matrix &a,Matrix &b) / 數(shù)Matrix c;for(int i=0;in;i+)for(int j=0;jm;j+)c.matij=a.matij/b.matij;return c;定義輸入數(shù)據(jù)函數(shù)void Matrix:input() / coutinput value of matrix:endl; int i,j;for(i=0;in;i+) for(j=0;jma

10、tij;定義輸出數(shù)據(jù)函數(shù)void Matrix:display() /for (int i=0;in;i+)for(int j=0;jm;j+)coutmatij ; coutendl;int main()Matrix a,b,c;a. input();b. input(); coutendlMatrix a:endl;a. display(); coutendlMatrix b:endl;b. display();用重載運(yùn)算符“ +”實(shí)現(xiàn)兩個(gè)c=a+b; / 矩陣相加coutendlMatrix c = Matrix a + Matrix b :endl;c. display();用重載運(yùn)算

11、符 “ +”實(shí)現(xiàn)兩個(gè)c=a-b; /矩陣相加coutendlMatrix c = Matrix a - Matrix b :endl;c. display();c=a*b; / 矩陣相加coutendlMatrix c = Matrix a * Matrix b :endl; c.display();c=a/b; / 矩陣相加coutendlMatrix c = Matrix a / Matrix b :和, 使之能用于該矩陣的輸入和輸出 */#include #define n 2#define m 3using namespace std;class Matrix /public:Matr

12、ix(); /friend Matrix operator+(Matrix &,Matrix &); /friend Matrix operator-(Matrix &,Matrix &);friend Matrix operator*(Matrix &,Matrix &);friend Matrix operator/(Matrix &,Matrix &);friend ostream& operator(istream& ,Matrix&); void input(); / void display(); /定義 Matrix 類默認(rèn)構(gòu)造函數(shù)重載運(yùn)算符“ +”輸入數(shù)據(jù)函數(shù)輸出數(shù)據(jù)函數(shù)pri

13、vate:int matnm;Matrix:Matrix() /for(int i=0;in;i+)for(int j=0;jm;j+)matij=0;定義構(gòu)造函數(shù)Matrix operator+(Matrix&a,Matrix &b)/定義重載運(yùn)算符“ +”函Matrix c;for(int i=0;in;i+)for(int j=0;jm;j+)c.matij=a.matij+b.matij;return c;Matrix operator-(Matrix &a,Matrix &b) 數(shù)/定義重載運(yùn)算符“ +”函Matrix c;for(int i=0;in;i+)for(int j=0;

14、jm;j+) c.matij=a.matij-b.matij; return c;Matrix operator*(Matrix &a,Matrix &b) 數(shù)/定義重載運(yùn)算符“ +”函Matrix c;for(int i=0;in;i+)for(int j=0;jm;j+) c.matij=a.matij*b.matij; return c;Matrix operator/(Matrix &a,Matrix &b) 數(shù)/定義重載運(yùn)算符“ +”函Matrix c;for(int i=0;in;i+)for(int j=0;jm;j+)c.matij=a.matij/b.matij;return

15、 c;ostream& operator(ostream& out,Matrix& c)for(int i=0;in;i+)for(int j=0;jm;j+) coutc.matijt;cout(istream& in,Matrix& c) for(int i=0;in;i+)for(int j=0;jc.matij;coutendl;return in;void Matrix:input() / coutinput value of matrix:endl; int i,j;for(i=0;in;i+) for(j=0;jmatij;void Matrix:display() /for (

16、int i=0;in;i+)for(int j=0;jm;j+) coutmatij ; coutendl;int main()Matrix a,b,c;cout 請(qǐng)輸入第一個(gè) n*m矩陣 a;cout 請(qǐng)輸入第二個(gè) n*m 矩陣 b;coutendlMatrix a:endl;couta;coutendlMatrix b:endl; coutb;c=a+b; / 矩陣相加coutendlMatrix c = Matrix a + Matrix b :endl;定義輸入數(shù)據(jù)函數(shù)定義輸出數(shù)據(jù)函數(shù)用重載運(yùn)算符“ +”實(shí)現(xiàn)兩個(gè)c=a-b;/用重載運(yùn)算符“+”實(shí)現(xiàn)兩個(gè)矩陣相加coutendlMatri

17、x c =Matrix a - Matrix b :endl;coutc;c=a*b;/用重載運(yùn)算符“+”實(shí)現(xiàn)兩個(gè)矩陣相加 coutendlMatrix c = Matrix a * Matrix b :endl;coutc;c=a/b; / 用重載運(yùn)算符“ +”實(shí)現(xiàn)兩個(gè) 矩陣相加coutendlMatrix c = Matrix a / Matrix b :endl; coutc;return 0;Task8-5/*5. 實(shí)現(xiàn)分?jǐn)?shù)類中的運(yùn)算符重載,在分?jǐn)?shù)類中可以完成分?jǐn)?shù)的加減乘除 (運(yùn)算后再化簡) 、求反、比較( 6 種關(guān)系)的運(yùn)算。*/ #include #include using na

18、mespace std; int gcd(int m,int n);class Fractionprivate:int nume; /分子int deno; /分母public:Fraction(int nu=0,int de=1); /構(gòu)造函數(shù),初始化用void Set(int nu=0,int de=1); / 置值,改變值時(shí)用 Fraction operator+(Fraction &c2); Fraction operator-(Fraction &c2); Fraction operator*(Fraction &c2); Fraction operator/(Fraction &c

19、2);bool operator=(Fraction &c2);Fraction operator-();void display();void Simplify(); / 化簡(使分子分母沒有公因子) ;Fraction:Fraction(int nu,int de) if(de!=0) nume=nu; deno=de;elsecout 格式錯(cuò)誤 , 程序退出 n; exit(0);void Fraction: Set(int nu,int de) if(de!=0) nume=nu; deno=de;void Fraction:display() coutnume/denoendl;/ 求分子,分母最大公約數(shù)int gcd(int m,int n)int r; if(mn) r=m; m=n; n=r;while(r=m%n) if(r=0) break;m=n; n=r; return n;/ 將分?jǐn)?shù)化簡 void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論