2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論