動態(tài)矩陣的生成與管理課程設(shè)計.doc_第1頁
動態(tài)矩陣的生成與管理課程設(shè)計.doc_第2頁
動態(tài)矩陣的生成與管理課程設(shè)計.doc_第3頁
動態(tài)矩陣的生成與管理課程設(shè)計.doc_第4頁
動態(tài)矩陣的生成與管理課程設(shè)計.doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系網(wǎng)站刪除沈 陽 航 空 工 業(yè) 學(xué) 院 課程設(shè)計學(xué) 號 200704033074班 級 7403302 姓 名 張 根 源 指導(dǎo)教師 王 曉 巖 2009年 3 月5日此文檔僅供學(xué)習(xí)與交流沈陽航空工業(yè)學(xué)院課程設(shè)計任務(wù)書院系:航宇 專業(yè):飛行器設(shè)計與工程 班級:7403302學(xué)號:200704033074 題目:動態(tài)矩陣的生成與管理一、課程設(shè)計時間 2009年2月23日至2009年2月28日 二、課程設(shè)計內(nèi)容用C語言編寫軟件完成以下任務(wù):利用鏈表的方法,產(chǎn)生任意行數(shù)和列數(shù)的矩陣,用于存儲某個二維矩陣。行數(shù)和列數(shù)由用戶從鍵盤輸入,從而體現(xiàn)動態(tài)性。提示:先用鏈表動態(tài)管理1行的數(shù)據(jù),有了基礎(chǔ)之后再設(shè)計管理二維的數(shù)據(jù)。三、課程設(shè)計要求1. 程序質(zhì)量: 貫徹結(jié)構(gòu)化的程序設(shè)計思想。 用戶界面友好,功能明確,操作方便。 用戶界面中的菜單至少應(yīng)包括“輸入矩陣的行數(shù)和列數(shù)”、“輸入矩陣元素”、“打印矩陣”、“退出”4項。 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強程序的可讀性。2. 課程設(shè)計說明書:課程結(jié)束后,上交課程設(shè)計說明書和源程序。課程設(shè)計說明書的格式和內(nèi)容參見提供的模板。四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:_ 學(xué)生簽名:_五、說明書成績六、教師評語目錄一、需求分析1二、程序流程圖1三、核心技術(shù)的實現(xiàn)說明及相應(yīng)程序段4四、課設(shè)總結(jié)7五、參考文獻(xiàn)8六、源程序8一、需求分析經(jīng)過對程序設(shè)計題目的分析可知,整個程序的設(shè)計實現(xiàn)大致分為三個模塊,其中每一個模塊對應(yīng)一個函數(shù),它們的功能分別是:確定行數(shù)和列數(shù)的函數(shù),輸入矩陣元素的函數(shù),輸出矩陣的函數(shù)。1、確定行數(shù)和列數(shù)的函數(shù) 主要實現(xiàn)由用戶自己輸入矩陣行數(shù)和列數(shù)的功能,體現(xiàn)動態(tài)性。2、輸入矩陣元素的函數(shù) 實現(xiàn)的功能是由用戶輸入矩陣的各個元素。3、輸出矩陣的函數(shù) 按照題目的具體要求打印出矩陣。除上面介紹的功能之外,程序還具有退出功能,可以在程序的一次運行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。二、程序流程圖1、程序總體結(jié)圖1程序總體結(jié)構(gòu)圖2、具體功能框圖 下面是利用鏈表實現(xiàn)矩陣元素輸入的打印矩陣的結(jié)構(gòu)圖輸入數(shù)據(jù) nNewMen=(J*)mallo(sizeof(J)定義變量,結(jié)構(gòu)體定義變量,結(jié)構(gòu)體指針建立頭結(jié)點 head,headnext=NULL輸出提示信息:請輸入行row和列l(wèi)ine變量付初值count=0;q=head;p=headnext; Countline&counta!=0) /如果符合要求將數(shù)據(jù)插入鏈表 n=n+1;if(n=1)head=p;else q-next=p;q=p;p=(struct ZGY*)malloc(sizeof(struct ZGY);if(nrow*line) p-a=0,p-s=0; /當(dāng)數(shù)據(jù)的個數(shù)大于矩陣元素的個數(shù)時,鏈表斷開elsescanf(%f,&p-s); q-next=NULL;pt=head; /把頭指針附給全局變量pt=pt-next;2、打印矩陣函數(shù)該函數(shù)的核心內(nèi)容是顯示出用戶輸入的矩陣,利用內(nèi)外兩次循環(huán)實現(xiàn)換行。/*按用戶要求的行列輸出*/void print(struct ZGY *pt)struct ZGY *newMem;printf(結(jié)果n);newMem=pt;int count=0; /定義記數(shù)的變量do printf(%6.3f ,newMem-s); /輸出元素 count+; if(count%line=0) /實現(xiàn)換行 printf(n); newMem=newMem-next; /指向下一個地址while(newMem!=NULL);四、課設(shè)總結(jié)通過這次的C語言課設(shè),具體上我學(xué)會了自主遍程的過成,更了解了自學(xué)的方法,這使我對C語言的認(rèn)識又加深了一步,也多學(xué)了很多,也感到了我C語言的薄弱,要努力學(xué)習(xí)。我這次的題目是新舊結(jié)合的,通過與學(xué)習(xí)好的同學(xué)交流學(xué)習(xí),不但鞏固了舊的又學(xué)到了很多新的東西,但我認(rèn)為這還是很簡單的,只是很短的編程,要是再難的就更難完成,所以以后我更需要努力的去了解認(rèn)識C程序設(shè)計。五、參考文獻(xiàn)1 譚浩強C程序設(shè)計北京:清華大學(xué)出版社,20052 劉成等C語言程序設(shè)計實驗指導(dǎo)與習(xí)題集北京:中國鐵道出版社,2006六、源程序#include #include #include int row,line; / 定義全局變量struct ZGY *pt; /定義結(jié)構(gòu)體類型的指針void menu() /菜單函數(shù)printf(*動態(tài)矩陣*n); puts( 1. 輸入矩陣的行數(shù)和列數(shù),用空格分開);puts( 2. 輸入矩陣元素); puts( 3. 打印矩陣);puts( 4. 退出程序);void shuru1() /輸入行列的函數(shù)printf(行列輸入,用空格分開:);scanf(%d,&line);scanf(%d,&row);struct ZGY/定義結(jié)構(gòu)體int a; /用于記錄數(shù)據(jù)位置 float s; /具體數(shù)據(jù) struct ZGY *next;void yuanshu() /輸入元素的函數(shù)struct ZGY *q,*p;struct ZGY *head;int n;n=0;printf(n請輸入數(shù)據(jù),按行輸,每個元素以回車結(jié)束:n);p=q=(struct ZGY*)malloc(sizeof(struct ZGY);/開辟一個新單元head=NULL;while(p-a!=0) /如果符合要求將數(shù)據(jù)插入鏈表 n=n+1;if(n=1)head=p;else q-next=p;q=p;p=(struct ZGY*)malloc(sizeof(struct ZGY);if(nrow*line) p-a=0,p-s=0; /當(dāng)數(shù)據(jù)的個數(shù)大于矩陣元素的個數(shù)時,鏈表斷開elsescanf(%f,&p-s); q-next=NULL;pt=head; /把頭指針附給全局變量pt=pt-next;/*按用戶要求的行列輸出*/void print(struct ZGY *pt)struct ZGY *newMem;printf(結(jié)果n);newMem=pt;int count=0; /定義記數(shù)的變量do printf(%6.3f ,newMem-s); /輸出元素 count+; if(count%line=0) /實現(xiàn)換行 printf(n); newMem=newMem-next; /指向下一個地址while(newMem!=NULL);void main()/主函數(shù)int i;while(1)menu(

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論