版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)(論文)</b></p><p> 題 目 名 稱 矩陣問題 </p><p> 課 程 名 稱 C語言程序課程設(shè)計(jì) </p><p> 學(xué) 生 姓 名
2、 </p><p> 學(xué) 號(hào) </p><p> 系 、專 業(yè) 信息工程系、網(wǎng)絡(luò)工程專業(yè) </p><p> 指 導(dǎo) 教 師 </p><p> 2013年
3、 6月 6 日</p><p><b> 目 錄</b></p><p><b> 1 前言2</b></p><p><b> 2 需求分析2</b></p><p> 2.1 課程設(shè)計(jì)目的2</p><p> 2.2 課程設(shè)計(jì)任務(wù)2
4、</p><p> 2.3 設(shè)計(jì)環(huán)境2</p><p> 2.4 開發(fā)語言2</p><p><b> 3 分析和設(shè)計(jì)2</b></p><p> 3.1 模塊設(shè)計(jì)2~3</p><p> 3.2 系統(tǒng)流程圖3</p><p> 3.3 主要模塊的流程
5、圖4~10</p><p> 4 具體代碼實(shí)現(xiàn)11~16</p><p> 5 課程設(shè)計(jì)總結(jié)16</p><p> 5.1 程序運(yùn)行結(jié)果 / 預(yù)期運(yùn)行結(jié)果16~17</p><p> 5.2 課程設(shè)計(jì)體會(huì)17~18</p><p><b> 參考文獻(xiàn)18</b></p&
6、gt;<p><b> 致 謝18</b></p><p><b> 1 前言</b></p><p> 從C語言產(chǎn)生到現(xiàn)在,它已經(jīng)成為最重要和最流行的編程語言之一。在各種流行編程語言中,都能看到C語言的影子,如Java的語法與C語言基本相同。所以可以看出學(xué)習(xí)C語言的重要性。我們在c語言課程中學(xué)習(xí)了矩陣的的運(yùn)用,在本次課程
7、設(shè)計(jì)中我們需要編寫一個(gè)程序存放一個(gè)5*5的矩陣,然后通過調(diào)用兩個(gè)函數(shù)找到該矩陣的鞍點(diǎn)和最大最小值。</p><p><b> 2 需求分析</b></p><p> 2.1 課程設(shè)計(jì)目的</p><p> 學(xué)生在教師指導(dǎo)下運(yùn)用所學(xué)課程的知識(shí)來研究、解決一些具有一定綜合性問題的專業(yè)課題。通過課程設(shè)計(jì)(論文),提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)來解決實(shí)
8、際問題、使用文獻(xiàn)資料、及進(jìn)行科學(xué)實(shí)驗(yàn)或技術(shù)設(shè)計(jì)的初步能力,為畢業(yè)設(shè)計(jì)(論文)打基礎(chǔ)。</p><p> 2.2 課程設(shè)計(jì)任務(wù)</p><p> 已知一個(gè)5×5矩陣,用函數(shù)實(shí)現(xiàn):(1)找出該矩陣中的鞍點(diǎn),“鞍點(diǎn)”指的是一個(gè)位置,該位置上的元素在該行上最大,在該列上最小,也可能沒有鞍點(diǎn)。(2)將矩陣中最大的元素放在中心,四個(gè)角分別放四個(gè)最小的元素(按從左到右,從上到下順序依次從小
9、到大存放)。</p><p><b> 2.3 設(shè)計(jì)環(huán)境</b></p><p> ?。?)WINDOWS 2000/2003/XP/7/Vista系統(tǒng)</p><p> ?。?)Visual C++或TC集成開發(fā)環(huán)境</p><p><b> 2.4 開發(fā)語言</b></p>&
10、lt;p><b> C語言</b></p><p><b> 3 分析和設(shè)計(jì)</b></p><p><b> 3.1 模塊設(shè)計(jì)</b></p><p> 定義一個(gè)二維數(shù)組a[5][5]存放一個(gè)矩陣,用for循環(huán)輸入25個(gè)數(shù)據(jù)到a[5][5]。</p><p>
11、 定義一個(gè)f()函數(shù)用來查找矩陣中的鞍點(diǎn),存放到a[N][M]數(shù)組中,應(yīng)用flag標(biāo)識(shí)變量,并用maxj存放某行中最大數(shù)組元素的列下標(biāo),若有鞍點(diǎn)則輸出鞍點(diǎn)的位置和值,否則輸出沒有鞍點(diǎn)。</p><p> 定義一個(gè)fun()用來查找矩陣中的最大數(shù)和4個(gè)最小數(shù),存放到b[5]數(shù)組中,b[0]存放最大值放到5*5列表的最中間,即a[2][2],b[1]存放第一小數(shù)放到左上角,b[2]存放第二小數(shù)放到右上角,b[3]存
12、放第三小數(shù)放到左下角,b[4]存放第四小數(shù),放到右下角。 </p><p><b> 3.2 系統(tǒng)流程圖</b></p><p> 圖3.1 系統(tǒng)流程圖 1</p><p> 3.3 主要模塊的流程圖</p><p> ?、?② ③</p><p>
13、 圖3.2 f()函數(shù)流程圖 1</p><p> ?、?② ③</p><p> 圖 3.3 f()函數(shù)流程圖2 </p><p><b> ?、?lt;/b></p><p> 圖3.4 fun()函數(shù)流程圖1</p><p><b&g
14、t; ?、?lt;/b></p><p><b> ?、?lt;/b></p><p> 圖3.5 fun()函數(shù)流程圖2</p><p><b> ?、?lt;/b></p><p><b> ?、?lt;/b></p><p> 圖3.6 fun()函數(shù)
15、流程圖3</p><p><b> ?、?lt;/b></p><p><b> ⑦</b></p><p> 圖3.7 fun()函數(shù)流程圖4</p><p><b> ?、?lt;/b></p><p> 圖3.8 fun函數(shù)流程圖5</p>
16、<p><b> 4 具體代碼實(shí)現(xiàn)</b></p><p> #include"stdio.h"</p><p> #include"math.h"</p><p> #include"string.h"</p><p> #includ
17、e"stdlib.h"</p><p> #define N 5</p><p> #define M 5</p><p> void f(int a[N][M]);</p><p> void fun(int a[5][5]);</p><p> void main()</p>
18、;<p><b> { </b></p><p> int i,j,a[5][5];</p><p> printf("請輸入矩陣:\n");</p><p> for(i=0;i<5;i++)</p><p><b> {</b></p>
19、;<p> for(j=0;j<5;j++)</p><p><b> {</b></p><p> scanf("%d",&a[i][j]);</p><p><b> }</b></p><p><b> }</b>
20、</p><p> f(a);//調(diào)用f函數(shù)求鞍點(diǎn)</p><p> fun(a);//調(diào)用fun函數(shù)求最大最小值</p><p> for(i=0;i<5;i++)</p><p><b> {</b></p><p> for(j=0;j<5;j++)</p>
21、<p><b> {</b></p><p> printf("%5d",a[i][j]);</p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b>
22、</p><p><b> } </b></p><p> void f(int a[N][M])</p><p><b> {</b></p><p> int i,j,k; //循環(huán)變量</p><p> int flag; //標(biāo)識(shí)變量,表示整個(gè)矩陣是否有鞍點(diǎn)
23、</p><p> int max,min;</p><p> int maxj; //存當(dāng)前行中最大數(shù)組元素的列下標(biāo)</p><p><b> flag=0;</b></p><p> for(i=0;i<N;i++)</p><p><b> {</b>&
24、lt;/p><p> max=a[i][0];</p><p> for(j=0;j<M;j++) //尋找第i行中的最大值的列下標(biāo)</p><p> if(max<a[i][j])</p><p><b> {</b></p><p> max=a[i][j];<
25、;/p><p><b> maxj=j;</b></p><p><b> }</b></p><p><b> min=max;</b></p><p> for(k=0; k<N; k++) //如不是maxj列中的最小值,則標(biāo)識(shí)flag=0,此循環(huán)可退出<
26、;/p><p> if(min>a[k][maxj])</p><p><b> break;</b></p><p><b> if(k==N)</b></p><p><b> {</b></p><p> flag=1; //有鞍點(diǎn),輸
27、出鞍點(diǎn)位置和值</p><p> printf("\na[%d][%d]=%d\n",i,maxj,a[i][maxj]);</p><p><b> }</b></p><p><b> }</b></p><p> if(flag!=1)</p><
28、;p> printf("沒有鞍點(diǎn)\n");</p><p><b> }</b></p><p> void fun(int a[5][5])</p><p><b> {</b></p><p> int i,j,k,l,b[5],t,max,min;</
29、p><p> max=a[0][0];//先假定其為最大值</p><p><b> k=0;l=0;</b></p><p> for(i=0;i<5;i++)</p><p><b> { </b></p><p> for(j=0;j<5;j++)&l
30、t;/p><p><b> {</b></p><p> if(a[i][j]>max)//用i,j存儲(chǔ)最大數(shù)的列下標(biāo)</p><p><b> {</b></p><p> max=a[i][j];</p><p><b> k=i;</b>
31、;</p><p><b> l=j;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> b[0]=a[k][l];//將最大數(shù)放到
32、最中間即a[2][2]</p><p> a[k][l]=a[2][2];</p><p> a[2][2]=b[0];</p><p> min=a[0][0];k=l=0;</p><p> for(i=0;i<5;i++)</p><p><b> {</b></p&g
33、t;<p> for(j=0;j<5;j++)//尋找所有數(shù)中的最小數(shù)</p><p><b> {</b></p><p> if(min>a[i][j])</p><p><b> {</b></p><p> min=a[i][j];</p>
34、<p><b> k=i;</b></p><p><b> l=j;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
35、<p> b[1]=a[k][l];//將最小數(shù)放到a[0][0]</p><p> a[k][l]=a[0][0];</p><p> a[0][0]=b[1];</p><p> min=a[0][1];k=0;l=1;//排除a[0][0],尋找第二小數(shù)</p><p> for(i=0;i<5;i++)&l
36、t;/p><p><b> {</b></p><p> for(j=0;j<5;j++)</p><p><b> {</b></p><p> if((i==0)&&(j==0))</p><p><b> {</b>&l
37、t;/p><p><b> continue;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> if(a[i][j]<mi
38、n)</p><p><b> {</b></p><p> min=a[i][j];</p><p><b> k=i;</b></p><p><b> l=j;</b></p><p><b> }</b></
39、p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> b[2]=a[k][l];//將找到第二小數(shù)放到右上角,即a[0][4]</p><p> a[k][l]=a[0][4
40、];</p><p> a[0][4]=b[2];</p><p> min=a[0][1];k=0;l=1;</p><p> for(i=0;i<5;i++)//從a[0][1]點(diǎn)開始尋找第三小數(shù)</p><p><b> {</b></p><p> for(j=0;j<
41、;5;j++)</p><p><b> {</b></p><p> if((i==0)&&(j==0))</p><p><b> {</b></p><p><b> continue;</b></p><p><b&
42、gt; }</b></p><p> else if((i==0)&&(j==4))//排除a[0][4]來尋找</p><p><b> {</b></p><p><b> continue;</b></p><p><b> }</b>
43、;</p><p><b> else</b></p><p><b> {</b></p><p> if(a[i][j]<min)</p><p><b> {</b></p><p> min=a[i][j];</p>
44、<p><b> k=i;</b></p><p><b> l=j;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
45、<p><b> }</b></p><p> b[3]=a[k][l];//將第三小數(shù)放到左下角,即a[4][0]</p><p> a[k][l]=a[4][0];</p><p> a[4][0]=b[3];</p><p> min=a[0][1];k=0;l=1;//從a[0][1]開始
46、尋找第四小的數(shù)</p><p> for(i=0;i<5;i++)</p><p><b> {</b></p><p> for(j=0;j<5;j++)</p><p><b> {</b></p><p> if((i==0)&&(
47、j==0))</p><p><b> {</b></p><p><b> continue;</b></p><p><b> }</b></p><p> else if(((i==0)&&(j==4))||((i==4)&&(j=
48、=0)))//排除已找到的最小數(shù)a[0][4]與a[4][0]的干擾</p><p><b> {</b></p><p><b> continue;</b></p><p><b> }</b></p><p><b> else</b><
49、;/p><p><b> {</b></p><p> if(a[i][j]<min)</p><p><b> {</b></p><p> min=a[i][j];</p><p><b> k=i;</b></p><
50、;p><b> l=j;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p
51、> b[4]=a[k][l];//將第四小的數(shù)放到右下角,即位置a[4][4]</p><p> a[k][l]=a[4][4];</p><p> a[4][4]=b[4];</p><p><b> }</b></p><p><b> 5 課程設(shè)計(jì)總結(jié)</b></p>
52、;<p> 5.1 程序運(yùn)行結(jié)果 </p><p> 圖3.9.1 錄入的矩陣</p><p> 輸入如圖中的矩陣,輸出其鞍點(diǎn),其最大數(shù)為35,放到矩陣最中間,最小的數(shù)為11,12,13,14,分別放到左上角,右上角,左下角和右下角。</p><p> 圖 3.9.2 程序運(yùn)行結(jié)果</p><p> 5.2 課程
53、設(shè)計(jì)體會(huì)</p><p> 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問題。鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。經(jīng)過一個(gè)學(xué)期的學(xué)習(xí),我對C語言有了一定的了解。C語言是學(xué)習(xí)計(jì)算機(jī)科學(xué)的基礎(chǔ),作為一名計(jì)算機(jī)專業(yè)學(xué)生,掌握C語言更是毋庸置疑。在上課之前,就經(jīng)常聽同學(xué)說,C語言很難學(xué),確實(shí),剛開始聽課時(shí)覺得老師不知所云。不過,發(fā)現(xiàn)對后續(xù)內(nèi)容的預(yù)習(xí)后,前面的疑團(tuán)都迎刃而解
54、,這讓我對C語言的學(xué)習(xí)更有信心。并且我們學(xué)習(xí)的不僅是科學(xué)的方法,還包括用什么樣的態(tài)度去對待這門課程,并且讓自理論性和實(shí)踐性在自身得到充分的發(fā)揮,用細(xì)心嚴(yán)謹(jǐn)?shù)膽B(tài)度去認(rèn)識(shí)事物,且希望通過這次的實(shí)踐操作可以讓我更好地學(xué)習(xí)vb程序設(shè)計(jì)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]黃同成,周紅波.程序設(shè)計(jì)基礎(chǔ)教程(C語言)[M].湖南人民出版社,2
55、011.</p><p> [2]黃同成,黃磊.程序設(shè)計(jì)實(shí)踐教程(C語言)[M].湖南人民出版社,2011.</p><p> [3]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005.</p><p><b> 致 謝</b></p><p> 本課程設(shè)計(jì)報(bào)告是在的**老師悉心指導(dǎo)下完成的,老
56、師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,一絲不茍的工作作風(fēng),平易近人的性格都是我學(xué)習(xí)的楷模。在設(shè)計(jì)報(bào)告的撰寫及整理期間,老師給了我很大的講解與幫助,才使得報(bào)告得以順利的完成,在此謹(jǐn)向老師表示忠心的感謝和崇高的敬意。</p><p> 同時(shí)還要感謝**等同學(xué),他們在我迷惑的也給了我很大的支持和幫助。</p><p> 感謝我的室友們,我一生都不會(huì)忘記。 </p><p> 最后感謝我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 趣味矩陣c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--迷宮問題
- 【課程設(shè)計(jì)】c語言課程設(shè)計(jì)
- 沙漠穿越問題_c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--c語言投票程序
- c++課程設(shè)計(jì)——矩陣類
- c語言課程設(shè)計(jì)課程報(bào)
- c語言課程設(shè)計(jì)題目
- c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)--迷宮
- c語言課程設(shè)計(jì) (2)
- c語言課程設(shè)計(jì)范例
- c語言課程設(shè)計(jì)報(bào)告
- c語言程序課程設(shè)計(jì)
- c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)---c語言小車動(dòng)畫程序
評論
0/150
提交評論