




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、安徽理工大學數據結構課程設計說明書題目:稀疏矩陣的運算院 系:計算機科學與工程學院專業班級:計算機10-*班學 號: 201030*學生姓名:*指導教師:2011年12月28日安徽理工大學課程設計(論文)任務書計算機科7與工程學院學號201030*學生姓名細細*專業(班級)計10-*設計題目稀疏矩陣的運算設 ii 技 術 參 數系統平臺:windows xp開發工具:microsoft visual c+ 6. 0設 計 要 求(1) 存儲結構選擇三元組存儲方式;(2) 實現一個稀疏矩陣的轉置運算;(3) 實現兩個稀疏矩陣的加法運算;(4) 實現兩個稀疏矩陣的減法運算;(5) 實現兩個稀疏矩陣
2、的乘法運算。工 作 量課程設計報告要求不少于3000字。 源程序要求不少于300行工作ii-劃11月9 h-11月22日查找相關資料11月23 h-11月26日dos菜單界面設計11月27 h-12月5日設計算法12月6日-12月20日編寫代碼12月21 h-12月28日撰寫實驗報告參 考 資 料1 秦鋒數據結構(c語言版)北京:清華大學出版社,20112 溫秀梅,丁學均.visual c+面向対象程序設計.北京:淸華大學出版社,20093 何欽銘,顏暉.c語言程序設計.北京:高等教育出版社,2008指導教師簽字教研室主任簽字2011年11月8日安徽理工大學課程設計(論文)成績評定表學生姓名:
3、* 學號: 201030*專業班級:計10*課程設計題口:稀疏矩陣的運算指導教師評語:成績:指導教師:1問題描述12需求分析13總體設計23. 1 matrix結構fl勺定義23.2系統流程圖34詳細設計44.1 “菜單”界面44.2建立矩陣44. 3顯示矩陣64.4矩陣的轉置74.5矩陣的加法運算84.6矩陣的減法運算94.7矩陣的乘法運算 95程序運行115. 1輸入矩陣115.2矩陣轉置115.3矩陣加法125.4矩陣減法125.5矩陣乘法125.6退出及錯誤提示 136總結13參考文獻141問題描述(1) 題目內容:設計稀疏矩陣運算系統實現兩個稀疏矩陣的加法、減法、乘法以及轉置操作。(
4、2) 基本要求: 存儲結構選擇三元組存儲方式; 實現一個稀疏矩陣的轉置運算; 實現兩個稀疏矩陣的加法運算; 實現兩個稀疏矩陣的減法運算; 實現兩個稀疏矩陣的乘法運算。(3) 設計目的:通過本次課程設計,了解稀疏矩陣的一些基木運算操作,并通過相關的程序代碼實現。2需求分析經過本次的課程設計,我認為稀疏矩陣運算系統主要實現的功能如下:(1) 建立短陣:只有先建立了矩陣,才能夠對矩陣進行運算操作,包括建立矩陣 a和矩陣b;(2) 轉置運算操作:對矩陣a或者矩陣b進行轉置運算,輸出相應的轉置矩陣;(3) 四則運算操作:該步驟由兩個矩陣同吋參與,對其進行加法運算(a+b)、減 法運算(a-b)以及乘法運
5、算(a*b和b*a);(4) 退出:當做完矩陣的運算操作之后,就口j以點擊它退出該界面。在這次設計中用到了一些變量和函數,例如:void display (matrix m) ; intmax (int i, int j) ; matrix zero (matrix m)等,下面會做進一步詳細的介紹。3總體設計3. 1 matrix結構的定義 struct matrixinth;/矩陣的行數intl;/矩陣的列數intfly;/矩陣中的非零元個數int zhi maxsize maxsize;/非零元值所在行所在列;操作集合:(1) matri x enter (matrix m) ; /建立
6、矩陣 m(2) void display (matrix m) ; /顯示矩陣 m(3) void transpose (matrix m) ;/m矩陣的轉置(4) void add (matrix m, matrix n) ;/求和運算 a+b(5) void sub (matrix m, matrix n) ;/求差運算 ab(5) void multi (matrix m, matrix n) ; /求積運算 a*b(6) int max (int i, int j) ;/求最大值(7) matrix zero (matrix m) ;/矩陣所有元素賦值為03.2系統流程圖該運算系統的系
7、統流程圖如圖1所示:圖1系統流程圖4詳細設計4. 1 “菜單”界面進入稀疏矩陣運算系統后的“菜單”界面如圖2所示。h:bbmatrixdebugmatrix.exe歡迎使用稀疏矩陣運算系統?置置5一一口一-£郎 并并a b 入入&sb b b 亠更聽乜乜一maaa 123456780請輸入所要進行的操作序號:圖2 “菜單”界面4. 2建立矩陣矩陣在建立之后才能夠進行運算操作,建立矩陣a和矩陣b,調用函數enter (m),首先根據所輸入的矩陣m的行數h和列數l,建立h*l的矩陣m, 并11調用函數zero(m)將其所有元索均賦值為0;其次再根據所輸入矩陣m 的非零元個數fly
8、做循環控制變量,按提示輸入非零元所在的行h和列1以 及非零元的值,如果輸入的行h或者列1大于矩陣m的行h或列l,貝g提示 輸入錯誤;最后將非零元的值保存在矩陣m中的相應位置。程序如下: matrix enter (matrix m) /建立矩陣cout«zz請輸入矩陣的行數和列數:”;cin»m. h»m. l;cout«/z請輸入矩陣的非零元個數:;cin>>m.fly;cout<<endl;if(m. fly> (m h*m l)cout«/z非零元個數多于矩陣元素總數,請垂新輸入!z,«endl;c
9、out«/z請重新輸入矩陣的非零元個數:;cin>>m. fly;m二zero (m);int h;int 1;for (int n=l ;n<=m. fly;n+)輸入非零元所在的行、列和值cout«/z請輸入第/z«n«/z個非零元所在的行和列:;cin»h»l;if(h>m.h| |1>m. l) /行列輸入錯誤提示cout«/,t列輸入錯誤,請重新輸入:z,«endl;cout«/z請垂新輸入第/z«n«zz個非零元所在的行和列:”;cin
10、7;h»l;cout«/z請輸入該非零元的值:”;cin»m. zhi h 1;coutendl;return m;注:該函數中調用的zeroo函數的功能為將矩陣m根據行數h和列數l 把所有的元素賦值為0,代碼如下:matri x zero (matri x m)/矩陣所冇元索賦值為0for(int i二l;i二m.h;i+)for (int j二1;j二m. l;j+)m. zhiij二0;return m;4. 3顯示矩陣建立好矩陣以后,為了驗證所建立的矩陣是否成功,以及在后期運算時矩 陣的顯示,設計該函數,能更直觀的看到輸入以及輸出的矩陣,代碼如下: voi
11、d display (matrix m)/顯示矩陣int connt=0;cout«,z 矩陣為:z,«endl;for (int i二1;i二m. h;i+)for(int j二l;j二m.l;j+)printf(-4d,m.zhii j);count+;if (cotint=m. l)coutendl;count=0;cout<<endl;4.4矩陣的轉置該函數實現的是矩陣a或矩陣b的轉置操作,通過對矩陣的行和列進行調換,利用for ()循環語句實現對矩陣a或矩陣b的轉置,其代碼如下:void transpose (matrix m) /矩陣轉置c. h二m
12、. l;c. l=m. h;cout<<,z 原來的;display(m);for(int i=l;i<=m.l;i +)for(int j二l;jum.h;j +) c. zhii j二m. zhij i;cout«轉置后的;display (c);4.5矩陣的加法運算實現兩個矩陣之間的加法運算,即a+b,其代碼如下: void add (matrix m,matrix n) /a+bint nl=max (m. h, n. h);int n2=max (m. l, n. l);c. h=nl;c. l=n2;c=zero (c);for(int i二l;i二nl
13、;i+)for (int j二1;j二門2;j+)c. zhii j二m. zhii j+n. zhii j;cout«z,a+b的運算結果;display (c);4.6矩陣的減法運算實現兩個矩陣之間的減法運算,即a-b,其代碼如下:void sub (matrix m,matrix n) /a-bint nl=max (m. h, n. h);int n2=max (m. l, n. l);c. h=nl;c. l=n2;c=zero (c);for (int i二1;i二nl;i+)for(int j=l;j<=n2;j+)c. zhi i j二m zhi i j-n z
14、hi i j;cout«/z a-b的運算結果;display(c);4.7矩陣的乘法運算實現兩個矩陣之間的乘法運算,即a*b,如果矩陣a的列數和矩陣b的行數不相同,則無法進行乘法運算,系統會提示錯誤,其代碼如下:void multi(matrix m, matrix n) /a*bif(m. l!=n. h)cout«/z矩陣a的列數和矩陣b的行數不相同,無法進行乘法運算! n;elseif(m.l=n. h)c. h=m. h;c l二n. l;c=zero(c);for(int i=l;i二maxsize;i+)for (int j二1;j二maxsie;j+)for
15、(int k=l;k<=maxsize;k+)c zhi i j+二m zhi i k*n zhi k j;cout«運算結果;display (c);5程序運行5. 1輸入矩陣運行該運算系統,進入“菜單”選項以后,輸入“1”,選擇“輸入矩陣a”,運算結果如圖3所示;輸入“2”,選擇“輸入矩陣b”,運算結果如圖4所示:亍的操作序即車訶亍的操作序號:233 3 熱處 列個 和元 矩矩 入入 請請數數 列個 和元 矩矩 入入刖 青青瞽盪e義窿嚴亍和列=1 12ttf i 入入 8 主冃青所在的行和列江|:81-ttt i 入入 主冃青所在的疔和列汽2 i:?3th- s 入入捌 請
16、腸所在的行和列:3 3:2輸入的a矩陣為=4080 0輸入的b矩陣為:? 00 0 00 0 2圖3輸入毎陣a圖4輸入矩陣b5. 2矩陣轉置輸入矩陣a和矩陣b以后,在“菜單”提示下,輸入“3”,進行矩陣a的轉置,運算結果如圖5所示;輸入“4”,進行矩陣b的轉置,運算結果如圖6所示:操作序號=3原來的矩陣為:408000050轉置后的矩陣為;400005800申電當番崖誓甲操作序號沁原來的矩陣為:轉置后的矩陣為=000700002圖5矩陣a的轉置圖6矩陣b的轉置5. 3矩陣加法在“菜單”提示下,輸入“5”,進行兩個矩陣的加法運算,即a+b,運算結果如圖7所不:請輸入所要進行的操作序號汀5. a+
17、ba+b的運算結果矩陣為:4780 0 0052圖7矩陣加法5.4矩陣減法在“菜單”提示下,輸入“6”,進行兩個矩陣的加法運算,即a-b,運算結果如圖8所不:請輸人所要進行的操作序號:66. a-bft-b的運算結果矩陣為:4-7 80 0 005-2圖8矩陣減法5. 5矩陣乘法在“菜單”提示下,輸入“7”,進行兩個矩陣的第一種乘法運算,即a*b,運算結果如圖9所示;輸入“8”,進行兩個矩陣的第二種乘法運算,即b*a,運算結果如圖10所示:幘輸入所要進行的操作序號汐? a*b運算結果矩陣為:0 28 160 0 00 0 0請輸入所要進行的操作序號泮8.運算結果矩陣為:0 0 00 0 00
18、10 0圖9雉陣乘法1 (a*b)圖10矩陣乘法2(b*a)5.6退出及錯誤提示算法在運行吋還有退出及錯誤提示功能,在“菜單”提示下,輸入“0”則 退出系統,如圖11所示;若輸入0 8以外的數字,則會出現錯誤提示,如圖 12所示:時要進行的操作序界 射謝使用?青輸入所要進行的操作序號:" 輸入錯誤,請重新輸入選擇?圖11退出圖12錯誤提示6總結通過對數據結構這門課的學習,我了解到:“數據結構"在計算機科學中是一 門綜合性的專業基礎課。而我們現在所學的數據結構是c語言版的,是建立在c 語言基礎之上的,若是c語言基礎知識不牢固,要想學好數據結構這門課程是 有一定的困難的。所以在學習數據結構這門課程的吋候,也順便復習了 c語言 的相關內容,加深了我對c語言的理解和應用,并且也深深體會到了數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工位喇叭機行業深度研究分析報告(2024-2030版)
- 影視行業市場分析與營銷策略
- 提升教育培訓機構的教學服務質量
- 新興技術在環境科學中的應用與前景
- 特種傳送帶項目投資可行性研究分析報告(2024-2030版)
- 社會資本與生態補償機制-洞察闡釋
- 教育培訓市場的開發與創新
- 塑料老化動力學研究-洞察闡釋
- 2025年中國滑行車游藝機數據監測研究報告
- 提升產品競爭力的設計思維與方法
- 2025年國家公務員考錄《申論》真題及參考答案(行政執法卷)
- 2024珠海農商銀行社會招聘筆試歷年典型考題及考點剖析附帶答案詳解
- 2025年公路水運工程重大事故隱患判定標準
- 車間物料員員試題及答案
- 2025國內外虛擬電廠實踐經驗分析及高質量發展相關建議報告-國網能源院
- 錨桿錨固質量無損檢測技術規程
- 老年癡呆健康知識講座課件
- 2025年中考語文二輪復習:散文閱讀 專題練習題(含答案)
- 云南楚雄州金江能源集團有限公司招聘筆試題庫2025
- 高中生物2015-2024年10年高考真題專題分類匯編-專題14體液調節考點2激素調節的過程
- 2024年四川省成都市中考地理試卷(含答案與解析)
評論
0/150
提交評論