c語(yǔ)言課程設(shè)計(jì)報(bào)告矩陣運(yùn)算_第1頁(yè)
c語(yǔ)言課程設(shè)計(jì)報(bào)告矩陣運(yùn)算_第2頁(yè)
c語(yǔ)言課程設(shè)計(jì)報(bào)告矩陣運(yùn)算_第3頁(yè)
c語(yǔ)言課程設(shè)計(jì)報(bào)告矩陣運(yùn)算_第4頁(yè)
c語(yǔ)言課程設(shè)計(jì)報(bào)告矩陣運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、-PAGE . z.沈 陽(yáng) 航 院 設(shè) 計(jì) 用 紙課程設(shè)計(jì)-. z.課程設(shè)計(jì)任務(wù)書(shū)一、課程設(shè)計(jì)題目:矩陣運(yùn)算二、課程設(shè)計(jì)工作自2008年9月8日起至2008年9月12日止三、課程設(shè)計(jì)容:運(yùn)用所學(xué)的C語(yǔ)言知識(shí),編制和調(diào)試程序,具有如下功能:(1)兩個(gè)矩陣加、減、乘等運(yùn)算(2)對(duì)*一矩陣增加一行或一列對(duì)*一矩陣減少一行或一列自己再增加一項(xiàng)或兩項(xiàng)功能四、課程設(shè)計(jì)要求:程序質(zhì)量:貫徹構(gòu)造化程序設(shè)計(jì)思想。用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。用戶界面中的菜單至少應(yīng)包括輸入數(shù)據(jù)、算術(shù)運(yùn)算、增行、減行、退出5項(xiàng)。代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。課程設(shè)計(jì)說(shuō)明書(shū):課程完

2、畢后,上交課程設(shè)計(jì)說(shuō)明書(shū)打印稿和電子稿,其容如下:封面課程設(shè)計(jì)任務(wù)書(shū)目錄需求分析分析題目的要求程序流程圖總體流程圖和主要功能模塊流程圖核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段個(gè)人總結(jié)參考資料源程序及適當(dāng)?shù)淖⑨屩笇?dǎo)教師:_學(xué)生簽名:_成績(jī): 教師評(píng)語(yǔ):-. z.目錄 TOC o 1-3 h z HYPERLINK l _Toc170095930一、需求分析1HYPERLINK l _Toc170095931二、程序流程圖2HYPERLINK l _Toc170095932三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段8HYPERLINK l _Toc170095933四、個(gè)人總結(jié)18HYPERLINK l _Toc1

3、70095934五、參考資料19HYPERLINK l _Toc170095935六、源程序19-. z.一、需求分析經(jīng)過(guò)對(duì)程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為六個(gè)模塊,其中每一個(gè)模塊對(duì)應(yīng)一個(gè)函數(shù),他們的功能分別是:加運(yùn)算函數(shù)(jia),減運(yùn)算函數(shù)(jian),乘運(yùn)算函數(shù)(cheng),增行函數(shù)(jiahang),減列函數(shù)(jianlie)以及求最大值函數(shù)(fun)。在這些函數(shù)當(dāng)中,前五個(gè)函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而最后一個(gè)函數(shù)為自行設(shè)計(jì)的函數(shù)。1、增加運(yùn)算函數(shù) 主要實(shí)現(xiàn)將兩矩陣相加的功能;2、減運(yùn)算函數(shù) 實(shí)現(xiàn)的功能是將兩矩陣相減;3、乘運(yùn)算函數(shù) 主要實(shí)現(xiàn)將兩矩陣相乘的功能;

4、4、增行函數(shù) 實(shí)現(xiàn)的是在所選的矩陣中增加一行的功能;5、減列函數(shù) 實(shí)現(xiàn)的是在所選的矩陣中減掉一列的功能; 6、求取最大值函數(shù) 實(shí)現(xiàn)的功能是找到并輸出所給矩陣最大值。 程序的一次運(yùn)行當(dāng)中可以循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。在這個(gè)程序中,將各個(gè)功能以子程序模塊的形式編寫(xiě)。這樣使所編寫(xiě)的程序簡(jiǎn)單,明了,邏輯性思維表達(dá)明確,具有很強(qiáng)的可讀性。二、程序流程圖程序總體構(gòu)造圖While(1) flag=1 1 真 假加運(yùn)算函數(shù)jiaflag=2 真 假減運(yùn)算函數(shù)jianflag=3 真 假乘運(yùn)算函數(shù)chengflag=4 真 假增行運(yùn)算函數(shù)jiahangflag=5 真 假減列運(yùn)算函數(shù)jian

5、lieflag=6 真 假求最大值函數(shù)funflag=0 真 假退出e*it(0)圖一程序總體構(gòu)造圖2、具體功能框圖加運(yùn)算函數(shù)jia int i.j a1=b1&a2=b2 否 是提示錯(cuò)誤退出 i=0 ia1 否 是i=0 j=0 ia1 否 是 ja2是 否 j=0cij=aij+bijj+i+ ja2否 是i+輸出cij圖二加運(yùn)算函數(shù)2 減運(yùn)算函數(shù)jian int i.j a1=b1&a2=b2 否 是提示錯(cuò)誤退出 i=0 ia1 否 是i=0 j=0 ia1 否 是 ja2 否 j=0cij=aij-bijj+i+ ja2否 是i+輸出cij圖三減運(yùn)算函數(shù)3乘運(yùn)算函數(shù)cheng Int

6、I,j,k a2=b1 否 是輸出sorrycantmul-tiplyI=0 ia1 否 是 j=0 jb2 否 是 i+Cij=0;j+ i=0 ia1 否 是 j=0 jb2 否 是i+ k=0 ka2 否 是j+cij=aik*bkj;k+ i!=o ia1 否 是 j=o ja1+1 是 否提示錯(cuò)誤退出 m=0 m*-1 否 是 n=0 na2 否 是m+cmn=ann;n+Printf(please input number you add) j=0 ja2 否 是scanf(%d),&c*-1j;j+m=aa ma1 否 是 n=0 na2 否 是m+cmn=am-1n;n+i=0

7、 i=a1 否 是 j=0 ja2 是否提示錯(cuò)誤退出j=0j*-1 否是i=0ia1 否是j+cij=aij;i+j=*ja1 否是i=0ia1 否是j+cij-1=aij;i+i=0ja1-1 否是i=0ia1 否是printf(n)j+printf(%4d,cij);i+圖六減列函數(shù)6求最大值函數(shù)funint i,j; ma*=a00i=0ia1 否是j=0jma*否是j+ma*=aij;j+printf(ma*=%4dn,ma*);圖七求最大值函數(shù)三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段本程序主要由六個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來(lái)實(shí)現(xiàn)要求的所有功能。在這些函

8、數(shù)當(dāng)中,加運(yùn)算函數(shù),減運(yùn)算函數(shù),乘運(yùn)算函數(shù),加行函數(shù),減列函數(shù)是程序中較為核心的局部,下面分別進(jìn)展說(shuō)明。1、加運(yùn)算函數(shù) 在進(jìn)展矩陣相加前要判斷兩矩陣是否能夠相加,如果能就按照矩陣的相加方式進(jìn)展運(yùn)算并輸出結(jié)果。假設(shè)不能則提示錯(cuò)誤并返回。具體的程序段如下:void jia(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j; if(a1=b1&a2=b2) for(i=0;ia1;i+) for(j=0;ja2;j+) cij=aij+bij; for(i=0;ia1;i+) for(j=0;ja2;j+) printf(%4d,cij); p

9、rintf(n); elseprintf(兩矩陣不能相加n); 運(yùn)行圖有如下:2、減運(yùn)算函數(shù)在進(jìn)展矩陣相減運(yùn)算前要判斷兩矩陣是否能夠相減,如果能就按照矩陣的相減方式進(jìn)展運(yùn)算并輸出結(jié)果。假設(shè)不能則提示錯(cuò)誤并返回。具體的程序段如下:void jian(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j; if(a1=b1&a2=b2) for(i=0;ia1;i+) for(j=0;ja2;j+) cij=aij-bij; for(i=0;ia1;i+) for(j=0;ja2;j+) printf(%4d,cij); printf(n); e

10、lse printf(兩矩陣不能相減n);運(yùn)行圖有如下:3、乘運(yùn)算函數(shù) 該段程序的核心問(wèn)題是矩陣的乘法運(yùn)算的邏輯性的編寫(xiě),在進(jìn)展矩陣相乘時(shí)要合理,正確的編寫(xiě)出矩陣相乘的邏輯方式。首先要判斷兩矩陣是否能夠相乘,如果能就按照矩陣的相乘方式進(jìn)展運(yùn)算并輸出結(jié)果。假設(shè)不能則提示錯(cuò)誤并返回。具體的程序段如下void cheng(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j,k; if(a2=b1) for(i=0;ia1;i+) for(j=0;jb2;j+) cij=0; for(i=0;ia1;i+) for(j=0;jb2;j+) for(

11、k=0;ka2;k+) cij+=aik*bkj; printf(運(yùn)算結(jié)果為:n); for(i=0;ia1;i+) for(j=0;ja1+1) printf(不能參加到此行 n);return; for(m=0;m*-1;m+) for(n=0;na2;n+) cmn=amn; printf(請(qǐng)輸入要加的數(shù)); for(j=0;ja2;j+) scanf(%d,&c*-1j); for(m=*;m=a1;m+) for(n=0;na2;n+) cmn=am-1n; for(i=0;i=a1;i+)for(j=0;ja1) printf(不能減去此列n); for(j=0;j*-1;j+)

12、for(i=0;ia1;i+) cij=aij; for(j=*;ja2;j+) for(i=0;ia1;i+) cij-1=aij; for(i=0;ia1;i+)for(j=0;ja2-1;j+)printf(%4d,cij);printf(n); 四、個(gè)人總結(jié)在這次C語(yǔ)言課程設(shè)計(jì)過(guò)程,我更好的掌握了C語(yǔ)言課程中的根底知識(shí),同時(shí)也對(duì)所學(xué)知識(shí)的掌握有所加深。通過(guò)這次自己動(dòng)手編制、調(diào)試程序,讓我學(xué)到了很多理論課上無(wú)法體會(huì)到的知識(shí),特別的知道了一些關(guān)于stdlib.h頭文件的使用,而且我也遇到并解決了很多編程中常出現(xiàn)的錯(cuò)誤。自己獨(dú)立的編寫(xiě)出了各個(gè)子程序,如加運(yùn)算函數(shù)、減運(yùn)算函數(shù)、乘運(yùn)算函數(shù)、加行

13、函數(shù)、減行列函數(shù)等。通過(guò)編程讓我深深的體會(huì)到C語(yǔ)言的方便性和可用性。自身覺(jué)得缺乏的是在使用增行、減列運(yùn)算函數(shù)時(shí)還要輸入不必要的另一數(shù)組,但它不可少,有它可以在此程序源中增加新的運(yùn)算函數(shù)。五、參考文獻(xiàn)1 譚浩強(qiáng) C程序設(shè)計(jì)教程 :清華大學(xué) 20082 成等 C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集 :中國(guó)鐵道 2008六、源程序#include#include#define N 50int cNN;void jia(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j; if(a1=b1&a2=b2) for(i=0;ia1;i+) for(j=0;ja

14、2;j+) cij=aij+bij; for(i=0;ia1;i+) for(j=0;ja2;j+) printf(%4d,cij); printf(n); elseprintf(兩矩陣不能相加n); void jian(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j; if(a1=b1&a2=b2) for(i=0;ia1;i+) for(j=0;ja2;j+) cij=aij-bij; for(i=0;ia1;i+) for(j=0;ja2;j+) printf(%4d,cij); printf(n); else printf(兩矩

15、陣不能相減n); void cheng(int aNN,int bNN,int a1,int a2,int b1,int b2) int i,j,k; if(a2=b1) for(i=0;ia1;i+) for(j=0;jb2;j+) cij=0; for(i=0;ia1;i+) for(j=0;jb2;j+) for(k=0;ka2;k+) cij+=aik*bkj; printf(運(yùn)算結(jié)果為:n); for(i=0;ia1;i+) for(j=0;ja1+1) printf(不能參加此行 n);return; for(m=0;m*-1;m+)for(n=0;na2;n+) cmn=amn;

16、 printf(請(qǐng)輸入要加的數(shù):); for(j=0;ja2;j+) scanf(%d,&c*-1j); for(m=*;m=a1;m+)for(n=0;na2;n+)cmn=am-1n; for(i=0;i=a1;i+) for(j=0;ja1) printf(不能減去此列n); for(j=0;j*-1;j+)for(i=0;ia1;i+)cij=aij; for(j=*;ja2;j+)for(i=0;ia1;i+)cij-1=aij; for(i=0;ia1;i+)for(j=0;ja2-1;j+)printf(%4d,cij);printf(n); void fun(int aNN,i

17、nt a1,int a2) int i,j; int ma*; ma*=a00; for(i=0;ia1;i+)for(j=0;jma*)ma*=aij; printf(ma*=%4dn,ma*); main() int aNN,bNN,i,j,m,n,p,q,flag; printf(請(qǐng)輸入矩陣 a 的行數(shù)和列數(shù):n); scanf(%d %d,&m,&n); printf(請(qǐng)輸入矩陣a:n); for(i=0;im;i+)for(j=0;jn;j+)scanf(%d,&aij);printf(a矩陣為:n); for(i=0;im;i+) for(j=0;jn;j+)printf(%4d,aij);printf(n); printf(請(qǐng)輸入矩陣b的行數(shù)和列數(shù):n); scanf(%d%d,&p,&q); printf(請(qǐng)輸入 b 矩陣:n); for(i=0;ip;i+)for(j=0;jq;j+)scanf(%d,&bij); printf(b 矩陣為:n); for(i=0;ip;i+) for(j=0;jq;j+)printf(%4d,bij);printf(n); while(1) printf(請(qǐng)選擇:n 1: 矩陣相加n 2: 矩陣相減n 3: 矩陣相乘n 4: 矩陣加一行n 5: 矩陣減

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論