c++課程設(shè)計(jì)矩陣乘法計(jì)算_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  C++課程設(shè)計(jì)報(bào)告</b></p><p>  姓名 學(xué)號 班級0804 任課教師 時(shí)間 </p><p>  教師指定題目 矩陣乘法計(jì)算 評定難易級別 A級 </p><p>  實(shí)驗(yàn)報(bào)告成績

2、 </p><p>  一、題目名稱:矩陣乘法計(jì)算</p><p>  二、難易等級: A級</p><p><b>  三、程序設(shè)計(jì)思想</b></p><p>  1、建立矩陣類的類模板,通過實(shí)例化形成模板類,再實(shí)例化成矩陣對象,大大縮短了代碼的長度,同時(shí)也方便了對象的建立;</p>

3、<p>  class CMatrix //矩陣類的模板</p><p><b>  {</b></p><p>  T * * Mat; //矩陣的頭指針</p><p>  int nRow; //矩陣的行數(shù)</p><p>  int nCol; //矩

4、陣的列數(shù)</p><p><b>  public:</b></p><p>  CMatrix(); //缺省構(gòu)造函數(shù)</p><p>  CMatrix(T * * mat,int row,int col); //構(gòu)造函數(shù)</p><p>  CMatrix(int row,int col);

5、//構(gòu)造函數(shù)</p><p>  CMatrix(int row,int col,int k); //構(gòu)造函數(shù),從鍵盤輸入矩陣</p><p>  VoidShow(); //輸出</p><p>  VoidInputFromFile(); //從文件中輸入矩陣</p><p>  friend CMatrix<

6、;T>operator *(CMatrix<T> &mat1,CMatrix<T> &mat2);//重載乘法</p><p><b>  };</b></p><p>  2、依照模板,在模板外依次定義相關(guān)的函數(shù)模板,再通過實(shí)例化建立相應(yīng)的成員函數(shù),同樣方便快捷,避免了代碼的冗長,程序?qū)哟吻逦?lt;/p>&

7、lt;p>  template<class T></p><p>  CMatrix<T>::CMatrix(int row,int col) //兩個(gè)參數(shù)的構(gòu)造函數(shù)</p><p><b>  {</b></p><p><b>  ……</b></p><p>

8、;<b>  }</b></p><p>  3、建立選擇函數(shù)choose,實(shí)現(xiàn)程序的多態(tài)性,同時(shí)也簡化了主函數(shù)的內(nèi)容,主函數(shù)只需簡單調(diào)用choose函數(shù)就能執(zhí)行整個(gè)程序的相關(guān)功能;</p><p>  void choose() //數(shù)據(jù)類型選擇函數(shù)</p><p><b>  {</b><

9、/p><p>  cout<<"時(shí)間:2009年9月26日\n"<<endl<<"作者:"<<setw(32)<<"學(xué)號: "<<setw(32)<<"專業(yè):電子技術(shù)"<<endl;</p><p>  cout<

10、<endl<<"<1> 整型"<<endl<<"<2> 浮點(diǎn)型"<<endl<<"<3> 雙精度型"<<endl;</p><p>  cout<<"請選擇數(shù)據(jù)類型:\n";</p><

11、;p><b>  int sjlx;</b></p><p>  cin>>sjlx;</p><p>  switch(sjlx)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p&

12、gt;<b>  {</b></p><p>  choose1(1);</p><p><b>  }break;</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>

13、;  choose1(0.0);</p><p><b>  }break;</b></p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  choose1(1e-10);</p><p><

14、b>  }break;</b></p><p>  default:cout<<"輸入選擇錯(cuò)誤!!!"<<endl;</p><p><b>  }</b></p><p>  4、main函數(shù)中加入相關(guān)界面輸出語句和程序結(jié)束語句,使程序更加人性化,并加入了異常處理語句,使程序運(yùn)行的

15、更加穩(wěn)定可靠;</p><p>  四、程序增加功能及實(shí)現(xiàn)辦法</p><p><b>  1、模板的使用</b></p><p>  本程序使用了大量的模板,譬如矩陣類模板、相關(guān)函數(shù)模板,以T為模板參數(shù),通過對T的不同類型的選擇實(shí)現(xiàn)相應(yīng)的運(yùn)算處理。其中choose1()函數(shù)本是無參函數(shù),為了方便模板化,給其賦以偽參數(shù)T,在執(zhí)行時(shí)通過T的取值生

16、成相應(yīng)的函數(shù)模板,真可謂方便??!</p><p>  template<class T></p><p>  void choose1(T) //數(shù)據(jù)輸入類型選擇函數(shù)模板,其中T為偽參數(shù),用于函數(shù)模板實(shí)例化</p><p><b>  {</b></p><p><b>  …………&

17、lt;/b></p><p><b>  }</b></p><p><b>  調(diào)用時(shí):</b></p><p>  switch(sjlx)</p><p><b>  {</b></p><p><b>  case 1:</

18、b></p><p><b>  {</b></p><p>  choose1(1); //生成int型模板</p><p><b>  }break;</b></p><p><b>  case 2:</b></p><p><

19、;b>  {</b></p><p>  choose1(0.0); //生成float型模板</p><p><b>  }break;</b></p><p><b>  case 3:</b></p><p><b>  {</b></p&

20、gt;<p>  choose1(1e-10); //生成double型模板</p><p><b>  }break;</b></p><p>  default:cout<<"輸入選擇錯(cuò)誤!!!"<<endl;</p><p><b>  }</b><

21、;/p><p><b>  2、矩陣類的構(gòu)造</b></p><p>  本程序采用二級指針動(dòng)態(tài)開辟內(nèi)存空間,結(jié)構(gòu)合理,操作方便,節(jié)省內(nèi)存使用;</p><p><b>  其中數(shù)據(jù)結(jié)構(gòu)如下:</b></p><p>  Mat-->Mat[0] ----->Mat[0][0] Mat[0]

22、[1] ……Mat[0][j]</p><p>  Mat[1] ----->Mat[1][0] Mat[1][1] ……Mat[1][j]</p><p><b>  :</b></p><p><b>  :</b></p><p>  Mat[i] ----->Mat[i][0]

23、Mat[i][1] ……Mat[i][j]</p><p><b>  實(shí)現(xiàn)構(gòu)造的代碼為:</b></p><p>  template<class T></p><p>  CMatrix<T>::CMatrix(int row,int col) //兩個(gè)參數(shù)的構(gòu)造函數(shù)</p><p>&

24、lt;b>  {</b></p><p><b>  int i,j;</b></p><p>  nRow=row,nCol=col;</p><p>  Mat=new T*[nRow];</p><p>  for(i=0;i<nRow;i++)</p><p>&l

25、t;b>  {</b></p><p>  Mat[i]=new T[nCol];</p><p><b>  }</b></p><p>  cout<<"請輸入數(shù)據(jù):\n";</p><p>  for(i=0;i<nRow;i++)</p>&l

26、t;p>  for(j=0;j<nCol;j++)</p><p><b>  {</b></p><p>  cout<<"第["<<i+1<<"]["<<j+1<<"]個(gè)數(shù)據(jù):";</p><p>  cin&

27、gt;>Mat[i][j];</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3、運(yùn)算符的重載</b></p><p>  要實(shí)現(xiàn)矩陣間的乘法運(yùn)算,有必要對其運(yùn)算符進(jìn)行重載。而乘法運(yùn)算符又要針對不同數(shù)據(jù)類型進(jìn)行運(yùn)

28、算,因此,對運(yùn)算符重載函數(shù)模板化也是很有必要的。</p><p>  template<class T></p><p>  CMatrix<T> operator* (CMatrix<T> &mat1,CMatrix<T> &mat2) //矩陣乘法運(yùn)算符重載</p><p><b>  {

29、</b></p><p>  CMatrix<T> mat3(mat1.nRow,mat2.nCol,0);</p><p>  for(int i=0;i<mat1.nRow;i++)</p><p>  for(int j=0;j<mat2.nCol;j++)</p><p><b>  {&

30、lt;/b></p><p>  mat3.Mat[i][j]=0;</p><p>  for(int k=0;k<mat1.nCol;k++)</p><p>  mat3.Mat[i][j]+=mat1.Mat[i][k]*mat2.Mat[k][j];</p><p><b>  }</b></

31、p><p>  return mat3;</p><p><b>  }</b></p><p>  無論何種數(shù)據(jù)類型的矩陣,其乘法算法都是一致的,詳見以上代碼。</p><p><b>  4、數(shù)據(jù)的輸入輸出</b></p><p>  本程序數(shù)據(jù)可以初始賦值也可以通過鍵盤輸入

32、,還可以從外部文件輸入。</p><p><b>  鍵盤輸入:</b></p><p>  cout<<"請輸入數(shù)據(jù):\n";</p><p>  for(i=0;i<nRow;i++)</p><p>  for(j=0;j<nCol;j++)</p><

33、;p><b>  {</b></p><p>  cout<<"第["<<i+1<<"]["<<j+1<<"]個(gè)數(shù)據(jù):";</p><p>  cin>>Mat[i][j];</p><p><b>

34、;  }</b></p><p><b>  文件輸入:</b></p><p>  template<class T></p><p>  void CMatrix<T>::InputFromFile() //矩陣文件輸入函數(shù)</p><p><b>  {<

35、/b></p><p>  ifstream infile;</p><p>  infile.open("daijp.txt",ios::nocreate);</p><p>  if(!infile)</p><p><b>  {</b></p><p>  cou

36、t<<"輸入文件不存在,請先建立輸入文件\n";</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  for(int i=0;i<nRow;i++)</p><p>  for(int j=0;j&l

37、t;nCol;j++)</p><p><b>  {</b></p><p>  infile>>Mat[i][j];</p><p><b>  }</b></p><p>  infile.close();</p><p><b>  }</

38、b></p><p><b>  矩陣的輸出:</b></p><p>  template<class T></p><p>  void CMatrix<T>::Show() //矩陣輸出函數(shù)</p><p><b>  {</b></p><

39、p><b>  int i,j;</b></p><p>  for(i=0;i<nRow;i++)</p><p><b>  {</b></p><p>  cout<<endl;</p><p>  for(j=0;j<nCol;j++)</p>&

40、lt;p>  cout<<Mat[i][j]<<setw(6);</p><p><b>  }</b></p><p>  cout<<endl;</p><p><b>  }</b></p><p>  5、程序的菜單設(shè)計(jì)和異常處理</p>

41、<p>  本程序主要是使用switch開關(guān)語句進(jìn)行菜單設(shè)計(jì),通過讀取鍵入不同的值進(jìn)入不同的子句執(zhí)行入口,進(jìn)而實(shí)現(xiàn)不同的功能。通過比較輸入的兩矩陣的行和列判斷能否進(jìn)行乘法運(yùn)算,防止亂輸入出現(xiàn)的異常。同時(shí),本程序只是在主函數(shù)中使用了少量goto語句,并非濫用,非但沒有使程序流程無規(guī)律,反倒使程序代碼更加簡潔,層次結(jié)構(gòu)更加清晰。</p><p>  void main()

42、 //主函數(shù)</p><p><b>  {</b></p><p><b>  loop:</b></p><p>  cout<<" *****************************************************

43、**********\n";</p><p>  cout<<" ******************************************\n";</p><p>  cout<<" **************

44、*";</p><p>  cout<<"\n\n\n************************您好,歡迎使用矩陣乘法計(jì)算程序!*************************\n";</p><p>  cout<<" ***************\

45、n";</p><p>  cout<<" ******************************************\n";</p><p>  cout<<" *************************************************

46、**************\n\n";</p><p><b>  choose();</b></p><p><b>  loop1:</b></p><p>  cout<<"想繼續(xù)執(zhí)行嗎?"<<endl<<"1.繼續(xù)"<&l

47、t;endl<<"2.退出"<<endl;</p><p><b>  int a;</b></p><p><b>  cin>>a;</b></p><p><b>  switch(a)</b></p><p>&l

48、t;b>  {</b></p><p>  case 1:goto loop;</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>

49、;  cout<<"非常感謝您的使用!!!"<<endl<<endl<<"歡迎不嗇賜教!"<<endl<<endl<<"聯(lián)系方式:"<<endl<<"電話: 151"<<endl<<"QQ: 12345678"

50、;<<endl;</p><p>  cout<<"按任意鍵退出……"<<endl;</p><p>  cin.get();</p><p>  cin.get(); //去除緩沖區(qū)的回車符</p>

51、<p><b>  exit(1);</b></p><p><b>  }</b></p><p>  default:cout<<"輸入選擇錯(cuò)誤!!!"<<endl;</p><p>  goto loop1;</p><p><b&

52、gt;  }</b></p><p><b>  }</b></p><p>  五、程序設(shè)計(jì)中遇到的主要問題及解決辦法</p><p>  1、無法實(shí)現(xiàn)文件輸入</p><p>  主要原因是輸入之前調(diào)用的是默認(rèn)構(gòu)造函數(shù),只是簡單賦值,并未開辟內(nèi)存空間,后來調(diào)用帶參構(gòu)造函數(shù)就可以正常輸入數(shù)據(jù);</p&

53、gt;<p>  2、重載乘法運(yùn)算的函數(shù)無法重載</p><p>  經(jīng)檢查發(fā)現(xiàn),由于重載的是友元函數(shù),函數(shù)不存在this指針,因此必須顯式地調(diào)用兩個(gè)相乘的矩陣類。</p><p>  六、設(shè)計(jì)中尚存的不足</p><p>  1、功能還不夠強(qiáng)大,只能做簡單的矩陣乘法,我所期望的是能夠做各種混合運(yùn)算,具有強(qiáng)大處理功能的實(shí)用程序,無奈所學(xué)知識有限,時(shí)間倉

54、促;</p><p>  2、矩陣的輸出還有一個(gè)問題,當(dāng)矩陣的行數(shù)超過了窗口一行所能顯示的數(shù)時(shí),這時(shí)又該怎么來輸出矩陣呢?</p><p>  3、關(guān)于異常處理這,我覺得處理功能也不是很行,覺得還是應(yīng)該建立全面的異常檢測與異常處理機(jī)制;</p><p>  七、設(shè)計(jì)的感想和心得體會</p><p>  1、本程序解皆系本人自主開發(fā),開發(fā)過程自

55、然十分艱辛,使我深深地懂得了軟件版權(quán)保護(hù)的重要性;</p><p>  2、此次程序設(shè)計(jì)使我透徹地領(lǐng)悟到面向?qū)ο蟮某绦蛟O(shè)計(jì)的優(yōu)點(diǎn)和強(qiáng)大生命力,特別是類和模板的使用,使程序的兼容性和擴(kuò)展能力都大大加強(qiáng),比如我們想要再做一個(gè)處理其他類型數(shù)據(jù)的矩陣的乘法計(jì)算,只需要添加一個(gè)相應(yīng)的類型聲明就可以利用模板迅速構(gòu)造出來;</p><p>  3、對凡事都應(yīng)當(dāng)有毅力,不要中途放棄。在開發(fā)過程中,好幾次遇

56、到困難我都想再換一個(gè)別的程序或找同學(xué)拷一個(gè)程序,但我最終還是堅(jiān)持下來了。永不言棄,你就一定會成功的;</p><p>  4、磨刀不誤砍柴工。在剛拿到任務(wù)時(shí),書上的關(guān)鍵代碼我也是看的一頭霧水,后來我將上學(xué)期的課本認(rèn)真研讀一遍之后,感覺收獲真的不少,接著編起程來就順手好多了;</p><p>  5、通過這次程序設(shè)計(jì),我相信我十月份的等級考試已經(jīng)沒多大問題了,哈哈……</p>

57、<p>  修改后的程序(矩陣乘法計(jì)算)</p><p>  #include<iostream.h></p><p>  #include<fstream.h></p><p>  #include<iomanip.h></p><p>  #include<stdlib.h><

58、;/p><p>  template<class T> </p><p>  class CMatrix //矩陣類的模板</p><p><b>  {</b></p><p>  T * * Mat; //矩陣的頭指針</p><p>  i

59、nt nRow; //矩陣的行數(shù)</p><p>  int nCol; //矩陣的列數(shù)</p><p><b>  public:</b></p><p>  CMatrix(); //缺省構(gòu)造函數(shù)</p><p>  CMatrix(int row,int col); //構(gòu)造函數(shù)</p&

60、gt;<p>  CMatrix(int row,int col,int k); //構(gòu)造函數(shù),從鍵盤輸入矩陣</p><p>  void Show(); //輸出</p><p>  void Inp

61、utFromFile(); //從文件中輸入矩陣</p><p>  friend CMatrix<T>operator *(CMatrix<T> &mat1,CMatrix<T> &mat2); //重載乘法</p><p><b> 

62、 };</b></p><p>  template<class T> </p><p>  CMatrix<T>::CMatrix() //缺省構(gòu)造函數(shù)</p><p><b>  {</b></p><p>  nRow=100,nCol

63、=100; </p><p>  Mat=new T*[100];</p><p>  for(int i=0;i<100;i++)</p><p><b>  {</b></p><p>  Mat[i]=new T[100];</p><p><b>  }&l

64、t;/b></p><p><b>  }</b></p><p>  template<class T></p><p>  CMatrix<T>::CMatrix(int row,int col) //兩個(gè)參數(shù)的構(gòu)造函數(shù)</p><p><b>  {</b>

65、</p><p><b>  int i,j;</b></p><p>  nRow=row,nCol=col;</p><p>  Mat=new T*[nRow];</p><p>  for(i=0;i<nRow;i++)</p><p><b>  {</b>&

66、lt;/p><p>  Mat[i]=new T[nCol];</p><p><b>  }</b></p><p>  cout<<"請輸入數(shù)據(jù):\n";</p><p>  for(i=0;i<nRow;i++)</p><p>  for(j=0;j<

67、;nCol;j++)</p><p><b>  {</b></p><p>  cout<<"第["<<i+1<<"]["<<j+1<<"]個(gè)數(shù)據(jù):";</p><p>  cin>>Mat[i][j];<

68、/p><p><b>  }</b></p><p><b>  }</b></p><p>  template<class T></p><p>  CMatrix<T>::CMatrix(int row,int col,int k)//三個(gè)參數(shù)的構(gòu)造函數(shù)</p>

69、<p><b>  {</b></p><p>  nRow=row,nCol=col;</p><p>  Mat=new T*[nRow];</p><p>  for(int i=0;i<nRow;i++)</p><p><b>  {</b></p>&l

70、t;p>  Mat[i]=new T[nCol];</p><p><b>  }</b></p><p><b>  }</b></p><p>  template<class T></p><p>  void CMatrix<T>::Show() //矩陣輸出

71、函數(shù)</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  for(i=0;i<nRow;i++)</p><p><b>  {</b></p><p>  cout<<en

72、dl;</p><p>  for(j=0;j<nCol;j++)</p><p>  cout<<Mat[i][j]<<setw(6);</p><p><b>  }</b></p><p>  cout<<endl;</p><p><b>

73、;  }</b></p><p>  template<class T></p><p>  void CMatrix<T>::InputFromFile() //矩陣文件輸入函數(shù)</p><p><b>  {</b></p><p>  ifstream infile;&l

74、t;/p><p>  infile.open("daijp.txt",ios::nocreate);</p><p>  if(!infile)</p><p><b>  {</b></p><p>  cout<<"輸入文件不存在,請先建立輸入文件\n";</p&

75、gt;<p><b>  exit(0);</b></p><p><b>  }</b></p><p>  for(int i=0;i<nRow;i++)</p><p>  for(int j=0;j<nCol;j++)</p><p><b>  {<

76、;/b></p><p>  infile>>Mat[i][j];</p><p><b>  }</b></p><p>  infile.close();</p><p><b>  }</b></p><p>  template<class T

77、></p><p>  CMatrix<T> operator* (CMatrix<T> &mat1,CMatrix<T> &mat2) //矩陣乘法運(yùn)算符重載</p><p><b>  {</b></p><p>  CMatrix<T> mat3(mat1.nRow,m

78、at2.nCol,0);</p><p>  for(int i=0;i<mat1.nRow;i++)</p><p>  for(int j=0;j<mat2.nCol;j++)</p><p><b>  {</b></p><p>  mat3.Mat[i][j]=0;</p><p

79、>  for(int k=0;k<mat1.nCol;k++)</p><p>  mat3.Mat[i][j]+=mat1.Mat[i][k]*mat2.Mat[k][j];</p><p><b>  }</b></p><p>  return mat3;</p><p><b>  }<

80、;/b></p><p>  template<class T></p><p>  void choose1(T) //數(shù)據(jù)輸入類型選擇函數(shù)模板,其中T為偽參數(shù),用于函數(shù)模板實(shí)例化</p><p><b>  {</b></p><p>  cout<<"<1

81、> 初始化賦值"<<endl<<"<2> 鍵盤輸入"<<endl<<"<3> 文件輸入"<<endl;</p><p><b>  int srfs;</b></p><p>  cout<<"請選擇數(shù)

82、據(jù)輸入方式:\n";</p><p>  cin>>srfs;</p><p>  switch(srfs) //用于選擇不同的輸入方式</p><p><b>  {</b></p><p><b>  case 1:</b>

83、</p><p><b>  {</b></p><p>  CMatrix<T> mata,matb,matc;</p><p><b>  }break;</b></p><p><b>  case 2:</b></p><p><

84、;b>  {</b></p><p>  int a,b,c,d;</p><p>  cout<<"請輸入第一個(gè)矩陣的行數(shù)和列數(shù):"<<endl;</p><p>  cin>>a>>b;</p><p>  CMatrix<T> mata(a

85、,b);</p><p>  cout<<"請輸入第二個(gè)矩陣的行數(shù)和列數(shù):"<<endl;</p><p>  cin>>c>>d;</p><p><b>  if(b!=c)</b></p><p><b>  {</b><

86、;/p><p>  cout<<"錯(cuò)誤!!!兩矩陣不能相乘!!!\n";</p><p><b>  break;</b></p><p><b>  }</b></p><p>  CMatrix<T> matb(c,d);</p>

87、<p>  CMatrix<T> matc(a,d,0);</p><p>  mata.Show();</p><p>  matb.Show();</p><p>  matc=mata*matb;</p><p>  cout<<"兩矩陣相乘結(jié)果為:\n";</p>&

88、lt;p>  matc.Show(); </p><p><b>  }break;</b></p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  int a,b,c,d;</p><p>

89、  cout<<"請輸入第一個(gè)矩陣的行數(shù)和列數(shù):"<<endl;</p><p>  cin>>a>>b;</p><p>  CMatrix<T> mata(a,b,0);</p><p>  cout<<"請輸入第二個(gè)矩陣的行數(shù)和列數(shù):"<<

90、;endl;</p><p>  cin>>c>>d;</p><p><b>  if(b!=c)</b></p><p><b>  {</b></p><p>  cout<<"錯(cuò)誤!!!兩矩陣不能相乘!!!\n";</p>

91、<p><b>  break;</b></p><p><b>  }</b></p><p>  CMatrix<T> matb(c,d,0);</p><p>  CMatrix<T> matc(a,d,0);</p><p>  mata.InputFro

92、mFile();</p><p>  matb.InputFromFile();</p><p>  mata.Show();</p><p>  matb.Show();</p><p>  matc=mata*matb;</p><p>  cout<<"兩矩陣相乘結(jié)果為:\n";&

93、lt;/p><p>  matc.Show(); </p><p><b>  }break;</b></p><p>  default:cout<<"輸入選擇錯(cuò)誤!!!"<<endl;</p><p><b>  }</b></p><

94、p><b>  }</b></p><p>  void choose() //數(shù)據(jù)類型選擇函數(shù)</p><p><b>  {</b></p><p>  cout<<"時(shí)間:2009年9月26日\n"<<endl<<"作者:

95、"<<setw(32)<<"學(xué)號: "<<setw(32)<<"專業(yè): "<<endl;</p><p>  cout<<endl<<"<1> 整型"<<endl<<"<2> 浮點(diǎn)型"<

96、;<endl<<"<3> 雙精度型"<<endl;</p><p>  cout<<"請選擇數(shù)據(jù)類型:\n";</p><p><b>  int sjlx;</b></p><p>  cin>>sjlx;</p><

97、;p>  switch(sjlx)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  choose1(1);</p><p><b> 

98、 }break;</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  choose1(0.0);</p><p><b>  }break;</b></p><p><

99、b>  case 3:</b></p><p><b>  {</b></p><p>  choose1(1e-10);</p><p><b>  }break;</b></p><p>  default:cout<<"輸入選擇錯(cuò)誤!!!"&l

100、t;<endl;</p><p><b>  }</b></p><p>  cout<<endl;</p><p><b>  }</b></p><p>  void main() //主函數(shù)</p&

101、gt;<p><b>  {</b></p><p><b>  loop:</b></p><p>  cout<<" ***************************************************************\n";</p>&l

102、t;p>  cout<<" ******************************************\n";</p><p>  cout<<" ***************";</p><p>  co

103、ut<<"\n\n\n************************您好,歡迎使用矩陣乘法計(jì)算程序!*************************\n";</p><p>  cout<<" ***************\n";</p><p>  co

104、ut<<" ******************************************\n";</p><p>  cout<<" ***************************************************************\n\n";</p&g

105、t;<p><b>  choose();</b></p><p><b>  loop1:</b></p><p>  cout<<"想繼續(xù)執(zhí)行嗎?"<<endl<<"1.繼續(xù)"<<endl<<"2.退出"<

106、;<endl;</p><p><b>  int a;</b></p><p><b>  cin>>a;</b></p><p><b>  switch(a)</b></p><p><b>  {</b></p>&

107、lt;p>  case 1:goto loop;</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  cout<<"非常感謝您的使用!!!&

108、quot;<<endl<<endl<<"歡迎不吝賜教!"<<endl<<endl<<"聯(lián)系方式:"<<endl<<"電話:"<<endl<<"QQ: "<<endl;</p><p>  cout<

109、<"按任意鍵退出……"<<endl;</p><p>  cin.get();</p><p>  cin.get(); //去除緩沖區(qū)的回車符</p><p><b>  exit(1);</b></p

110、><p><b>  }</b></p><p>  default:cout<<"輸入選擇錯(cuò)誤!!!"<<endl;</p><p>  goto loop1;</p><p><b>  }</b></p><p><b>

溫馨提示

  • 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

提交評論