版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> C++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告</p><p> 姓名 仲亮亮 學(xué)號 0511590122 班級 05115901 任課教師 肖亮 時(shí)間 2006-9-22 </p><p> 教師指定題目 矩陣數(shù)乘 評定難易級別 B </p>
2、;<p> 實(shí)驗(yàn)報(bào)告成績 </p><p><b> 實(shí)驗(yàn)內(nèi)容:</b></p><p><b> 矩陣數(shù)乘</b></p><p> 1.1 程序功能介紹</p><p> 定義一個(gè)向量類,里面的元素是模板形式,定義了有關(guān)向量類的的各種屬性,方法及運(yùn)算符重
3、載函數(shù)。根據(jù)向量處理的程序?qū)崿F(xiàn)矩陣數(shù)乘。</p><p><b> 2序設(shè)計(jì)要求</b></p><p> 利用已知的向量類對象定義一個(gè)矩陣類,矩陣類的數(shù)據(jù)是向量子對象同樣定義了矩陣類的的各種屬性,方法及運(yùn)算符重載函數(shù)。</p><p> 完善成員函數(shù),使矩陣可以由文件輸入,具體格式自定。</p><p> 完成
4、矩陣的數(shù)乘,加減,賦值的運(yùn)算,要求用整型矩陣和浮點(diǎn)型矩陣分別演算。</p><p> 更改函數(shù)結(jié)構(gòu),可由用戶自己選擇輸入矩陣數(shù)據(jù)的具體方法,程序可以連續(xù)運(yùn)行,直到選擇退出為止</p><p><b> 3.基本數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 矩陣類的模板:</b></p><p>
5、 class CMatrix</p><p><b> {</b></p><p> protected:</p><p> struct mrep</p><p><b> {</b></p><p> Vector<T> **Vp; //
6、組成矩陣的指針</p><p> int m_; //矩陣的行數(shù)</p><p> int refcnt;//被引用次數(shù)</p><p> T **tmppointer;</p><p><b> }*p;</b></p><p><b> public:</
7、b></p><p> Vector<T> ** begin() const {return p->Vp;};</p><p> CMatrix();//********************************************默認(rèn)的構(gòu)造</p><p> CMatrix(int xsize,int ysize,T ini
8、t=0);//****************構(gòu)造函數(shù)</p><p> CMatrix(int m,const Vector<T> *vec);//************構(gòu)造函數(shù)</p><p> CMatrix(CMatrix<T> &mat); //*****************************拷貝構(gòu)造函數(shù)</p>&l
9、t;p> ~CMatrix(); //******************************************析構(gòu)函數(shù)</p><p> CMatrix<T> & operator=(const CMatrix<T> &mat);//**重載賦值運(yùn)算符——矩陣賦矩陣 </p><p> int row() con
10、st;//**************************************返回行數(shù)</p><p> int col() const;//**************************************返回列數(shù)</p><p> Vector<T> & operator []( int i);//***********************
11、重載[]</p><p> operator T **();//****************************************重載**</p><p> void ReadFromFile();//********************************從文件中讀入矩陣</p><p> friend CMatrix cpy(CMat
12、rix &mat);//**************************拷貝函數(shù)</p><p> friend std::ostream & operator<<(std::ostream &s,const CMatrix<T> &mat);//重載輸出函數(shù)</p><p> friend std::istream &
13、; operator>>(std::istream &s,const CMatrix<T> &mat);//重載輸入函數(shù)</p><p> friend CMatrix<T> operator+(const CMatrix<T> &mat1,const CMatrix<T> &mat2);</p><
14、p> friend CMatrix<T> operator-(const CMatrix<T> &mat1,const CMatrix<T> &mat2);</p><p> friend CMatrix<T> operator*(CMatrix<T> &mat1,CMatrix<T> &mat2);
15、//矩陣乘法</p><p> friend CMatrix<T> operator*(const CMatrix<T> &mat,T val); //**數(shù)乘</p><p><b> }</b></p><p> 2. 源程序結(jié)構(gòu)流程框圖與說明(含新增子函數(shù)的結(jié)構(gòu)框圖)</p><p
16、><b> 3.程序運(yùn)行界面</b></p><p> (1)初始界面 (2)矩陣相加</p><p> ?。?)矩陣相減 (4)矩陣1的數(shù)乘</p><p> ?。?)浮點(diǎn)型矩陣的1的數(shù)乘
17、 (6)矩陣由文件輸入</p><p> 5. 課程設(shè)計(jì)遇到的技術(shù)問題與解決思路</p><p> 問題1:怎樣處理矩陣由文件輸入的問題?</p><p> 解決辦法:首先定義下面的函數(shù)</p><p> void CMatrix<T>::ReadFromFile()//**********
18、********************從文件中讀入矩陣</p><p><b> {</b></p><p> char filename[256];</p><p> cin>>filename;</p><p> ifstream infile;</p><p> /
19、/cout<<"****";</p><p> int row,col;</p><p> infile.open(filename,ios::in);</p><p> if(!infile)</p><p><b> {</b></p><p> c
20、out<<"不能打開輸入文件!"<<endl;</p><p><b> exit(1);</b></p><p><b> };</b></p><p> infile>>row>>col;</p><p> CMatri
21、x<T> Vp(row,col,0);</p><p> //infile>>Vp[0][0];</p><p> //cout<<Vp[0][0]<<"*****"<<endl;</p><p> for(int i=0;i<row;i++)</p>&l
22、t;p> for(int j=0;j<col;j++)</p><p> infile>>Vp[i][j];</p><p><b> *this=Vp;</b></p><p><b> }</b></p><p> 通過此函數(shù)可實(shí)現(xiàn)矩陣由文件輸入,不過輸入的文件
23、中的數(shù)據(jù)不是單獨(dú)的矩陣的數(shù)據(jù),必須和主函數(shù)運(yùn)行中的數(shù)據(jù)相對應(yīng),我的程序中就是這個(gè)樣子。首先的輸入矩陣的行數(shù)和列數(shù),然后才可以是矩陣的數(shù)據(jù),不然的話,程序到著地方就無法運(yùn)行下去了。</p><p> 問題2:怎樣實(shí)現(xiàn)矩陣的數(shù)乘,并用浮點(diǎn)型和整型分別演算?</p><p> 解決辦法:首先定義一個(gè)矩陣數(shù)乘的成員函數(shù):</p><p> CMatrix<int
24、> operator*(const CMatrix<int> &mat,int val)//數(shù)乘</p><p><b> {</b></p><p> CMatrix<int> temp; </p><p><b> temp=mat;</b></p><p
25、> for(int i(0);i<mat.p->m_;i++)</p><p> *(temp.p->Vp[i])=*(mat.p->Vp[i])*val;</p><p> return temp;</p><p><b> }</b></p><p> CMatrix<d
26、ouble> operator*(const CMatrix<double>&mat,double val)//數(shù)乘</p><p><b> {</b></p><p> CMatrix<double> temp; </p><p><b> temp=mat;</b><
27、/p><p> for(int i(0);i<mat.p->m_;i++)</p><p> *(temp.p->Vp[i])=*(mat.p->Vp[i])*val;</p><p> return temp;</p><p><b> }</b></p><p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 矩陣數(shù)乘 課程設(shè)計(jì)
- 矩陣數(shù)乘 課程設(shè)計(jì).doc
- 課程設(shè)計(jì)4乘4矩陣鍵盤設(shè)計(jì)
- 矩陣類 課程設(shè)計(jì)
- 導(dǎo)納矩陣課程設(shè)計(jì)
- 導(dǎo)納矩陣計(jì)算課程設(shè)計(jì)
- 機(jī)電單片機(jī)課程設(shè)計(jì) 4乘4矩陣鍵盤 匯編語言
- 課程設(shè)計(jì)---稀疏矩陣應(yīng)用
- 數(shù)電課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--矩陣問題
- 稀疏矩陣的運(yùn)算課程設(shè)計(jì)
- 稀疏矩陣的運(yùn)算課程設(shè)計(jì)
- 稀疏矩陣相乘課程設(shè)計(jì)報(bào)告
- 數(shù)電課程設(shè)計(jì)
- matlab課程設(shè)計(jì)--matlab矩陣操作設(shè)計(jì)
- 趣味矩陣c語言課程設(shè)計(jì)
- c++課程設(shè)計(jì)——矩陣類
- eda課程設(shè)計(jì)--矩陣鍵盤接口設(shè)計(jì)
- java課程設(shè)計(jì)-猜數(shù)游戲課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)--稀疏矩陣課程設(shè)計(jì)
評論
0/150
提交評論