版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、安徽理工大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)說明書題目:稀疏矩陣的運(yùn)算院 系:計(jì)算機(jī)科學(xué)與工程學(xué)院專業(yè)班級:計(jì)算機(jī)10-*班學(xué) 號: 201030*學(xué)生姓名:*指導(dǎo)教師:2011年12月28日安徽理工大學(xué)課程設(shè)計(jì)(論文)任務(wù)書計(jì)算機(jī)科7與工程學(xué)院學(xué)號201030*學(xué)生姓名細(xì)細(xì)*專業(yè)(班級)計(jì)10-*設(shè)計(jì)題目稀疏矩陣的運(yùn)算設(shè) ii 技 術(shù) 參 數(shù)系統(tǒng)平臺:windows xp開發(fā)工具:microsoft visual c+ 6. 0設(shè) 計(jì) 要 求(1) 存儲結(jié)構(gòu)選擇三元組存儲方式;(2) 實(shí)現(xiàn)一個(gè)稀疏矩陣的轉(zhuǎn)置運(yùn)算;(3) 實(shí)現(xiàn)兩個(gè)稀疏矩陣的加法運(yùn)算;(4) 實(shí)現(xiàn)兩個(gè)稀疏矩陣的減法運(yùn)算;(5) 實(shí)現(xiàn)兩個(gè)稀疏矩陣
2、的乘法運(yùn)算。工 作 量課程設(shè)計(jì)報(bào)告要求不少于3000字。 源程序要求不少于300行工作ii-劃11月9 h-11月22日查找相關(guān)資料11月23 h-11月26日dos菜單界面設(shè)計(jì)11月27 h-12月5日設(shè)計(jì)算法12月6日-12月20日編寫代碼12月21 h-12月28日撰寫實(shí)驗(yàn)報(bào)告參 考 資 料1 秦鋒數(shù)據(jù)結(jié)構(gòu)(c語言版)北京:清華大學(xué)出版社,20112 溫秀梅,丁學(xué)均.visual c+面向?qū)澫蟪绦蛟O(shè)計(jì).北京:淸華大學(xué)出版社,20093 何欽銘,顏暉.c語言程序設(shè)計(jì).北京:高等教育出版社,2008指導(dǎo)教師簽字教研室主任簽字2011年11月8日安徽理工大學(xué)課程設(shè)計(jì)(論文)成績評定表學(xué)生姓名:
3、* 學(xué)號: 201030*專業(yè)班級:計(jì)10*課程設(shè)計(jì)題口:稀疏矩陣的運(yùn)算指導(dǎo)教師評語:成績:指導(dǎo)教師:1問題描述12需求分析13總體設(shè)計(jì)23. 1 matrix結(jié)構(gòu)fl勺定義23.2系統(tǒng)流程圖34詳細(xì)設(shè)計(jì)44.1 “菜單”界面44.2建立矩陣44. 3顯示矩陣64.4矩陣的轉(zhuǎn)置74.5矩陣的加法運(yùn)算84.6矩陣的減法運(yùn)算94.7矩陣的乘法運(yùn)算 95程序運(yùn)行115. 1輸入矩陣115.2矩陣轉(zhuǎn)置115.3矩陣加法125.4矩陣減法125.5矩陣乘法125.6退出及錯(cuò)誤提示 136總結(jié)13參考文獻(xiàn)141問題描述(1) 題目內(nèi)容:設(shè)計(jì)稀疏矩陣運(yùn)算系統(tǒng)實(shí)現(xiàn)兩個(gè)稀疏矩陣的加法、減法、乘法以及轉(zhuǎn)置操作。(
4、2) 基本要求: 存儲結(jié)構(gòu)選擇三元組存儲方式; 實(shí)現(xiàn)一個(gè)稀疏矩陣的轉(zhuǎn)置運(yùn)算; 實(shí)現(xiàn)兩個(gè)稀疏矩陣的加法運(yùn)算; 實(shí)現(xiàn)兩個(gè)稀疏矩陣的減法運(yùn)算; 實(shí)現(xiàn)兩個(gè)稀疏矩陣的乘法運(yùn)算。(3) 設(shè)計(jì)目的:通過本次課程設(shè)計(jì),了解稀疏矩陣的一些基木運(yùn)算操作,并通過相關(guān)的程序代碼實(shí)現(xiàn)。2需求分析經(jīng)過本次的課程設(shè)計(jì),我認(rèn)為稀疏矩陣運(yùn)算系統(tǒng)主要實(shí)現(xiàn)的功能如下:(1) 建立短陣:只有先建立了矩陣,才能夠?qū)仃囘M(jìn)行運(yùn)算操作,包括建立矩陣 a和矩陣b;(2) 轉(zhuǎn)置運(yùn)算操作:對矩陣a或者矩陣b進(jìn)行轉(zhuǎn)置運(yùn)算,輸出相應(yīng)的轉(zhuǎn)置矩陣;(3) 四則運(yùn)算操作:該步驟由兩個(gè)矩陣同吋參與,對其進(jìn)行加法運(yùn)算(a+b)、減 法運(yùn)算(a-b)以及乘法運(yùn)
5、算(a*b和b*a);(4) 退出:當(dāng)做完矩陣的運(yùn)算操作之后,就口j以點(diǎn)擊它退出該界面。在這次設(shè)計(jì)中用到了一些變量和函數(shù),例如:void display (matrix m) ; intmax (int i, int j) ; matrix zero (matrix m)等,下面會做進(jìn)一步詳細(xì)的介紹。3總體設(shè)計(jì)3. 1 matrix結(jié)構(gòu)的定義 struct matrixinth;/矩陣的行數(shù)intl;/矩陣的列數(shù)intfly;/矩陣中的非零元個(gè)數(shù)int zhi maxsize maxsize;/非零元值所在行所在列;操作集合:(1) matri x enter (matrix m) ; /建立
6、矩陣 m(2) void display (matrix m) ; /顯示矩陣 m(3) void transpose (matrix m) ;/m矩陣的轉(zhuǎn)置(4) void add (matrix m, matrix n) ;/求和運(yùn)算 a+b(5) void sub (matrix m, matrix n) ;/求差運(yùn)算 ab(5) void multi (matrix m, matrix n) ; /求積運(yùn)算 a*b(6) int max (int i, int j) ;/求最大值(7) matrix zero (matrix m) ;/矩陣所有元素賦值為03.2系統(tǒng)流程圖該運(yùn)算系統(tǒng)的系
7、統(tǒng)流程圖如圖1所示:圖1系統(tǒng)流程圖4詳細(xì)設(shè)計(jì)4. 1 “菜單”界面進(jìn)入稀疏矩陣運(yùn)算系統(tǒng)后的“菜單”界面如圖2所示。h:bbmatrixdebugmatrix.exe歡迎使用稀疏矩陣運(yùn)算系統(tǒng)?置置5一一口一-£郎 并并a b 入入&sb b b 亠更聽乜乜一maaa 123456780請輸入所要進(jìn)行的操作序號:圖2 “菜單”界面4. 2建立矩陣矩陣在建立之后才能夠進(jìn)行運(yùn)算操作,建立矩陣a和矩陣b,調(diào)用函數(shù)enter (m),首先根據(jù)所輸入的矩陣m的行數(shù)h和列數(shù)l,建立h*l的矩陣m, 并11調(diào)用函數(shù)zero(m)將其所有元索均賦值為0;其次再根據(jù)所輸入矩陣m 的非零元個(gè)數(shù)fly
8、做循環(huán)控制變量,按提示輸入非零元所在的行h和列1以 及非零元的值,如果輸入的行h或者列1大于矩陣m的行h或列l(wèi),貝g提示 輸入錯(cuò)誤;最后將非零元的值保存在矩陣m中的相應(yīng)位置。程序如下: matrix enter (matrix m) /建立矩陣cout«zz請輸入矩陣的行數(shù)和列數(shù):”;cin»m. h»m. l;cout«/z請輸入矩陣的非零元個(gè)數(shù):;cin>>m.fly;cout<<endl;if(m. fly> (m h*m l)cout«/z非零元個(gè)數(shù)多于矩陣元素總數(shù),請垂新輸入!z,«endl;c
9、out«/z請重新輸入矩陣的非零元個(gè)數(shù):;cin>>m. fly;m二zero (m);int h;int 1;for (int n=l ;n<=m. fly;n+)輸入非零元所在的行、列和值cout«/z請輸入第/z«n«/z個(gè)非零元所在的行和列:;cin»h»l;if(h>m.h| |1>m. l) /行列輸入錯(cuò)誤提示cout«/,t列輸入錯(cuò)誤,請重新輸入:z,«endl;cout«/z請垂新輸入第/z«n«zz個(gè)非零元所在的行和列:”;cin
10、7;h»l;cout«/z請輸入該非零元的值:”;cin»m. zhi h 1;coutendl;return m;注:該函數(shù)中調(diào)用的zeroo函數(shù)的功能為將矩陣m根據(jù)行數(shù)h和列數(shù)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顯示矩陣建立好矩陣以后,為了驗(yàn)證所建立的矩陣是否成功,以及在后期運(yùn)算時(shí)矩 陣的顯示,設(shè)計(jì)該函數(shù),能更直觀的看到輸入以及輸出的矩陣,代碼如下: 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矩陣的轉(zhuǎn)置該函數(shù)實(shí)現(xiàn)的是矩陣a或矩陣b的轉(zhuǎn)置操作,通過對矩陣的行和列進(jìn)行調(diào)換,利用for ()循環(huán)語句實(shí)現(xiàn)對矩陣a或矩陣b的轉(zhuǎn)置,其代碼如下:void transpose (matrix m) /矩陣轉(zhuǎn)置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«轉(zhuǎn)置后的;display (c);4.5矩陣的加法運(yùn)算實(shí)現(xiàn)兩個(gè)矩陣之間的加法運(yùn)算,即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的運(yùn)算結(jié)果;display (c);4.6矩陣的減法運(yùn)算實(shí)現(xiàn)兩個(gè)矩陣之間的減法運(yùn)算,即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的運(yùn)算結(jié)果;display(c);4.7矩陣的乘法運(yùn)算實(shí)現(xiàn)兩個(gè)矩陣之間的乘法運(yùn)算,即a*b,如果矩陣a的列數(shù)和矩陣b的行數(shù)不相同,則無法進(jìn)行乘法運(yùn)算,系統(tǒng)會提示錯(cuò)誤,其代碼如下:void multi(matrix m, matrix n) /a*bif(m. l!=n. h)cout«/z矩陣a的列數(shù)和矩陣b的行數(shù)不相同,無法進(jìn)行乘法運(yùn)算! 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«運(yùn)算結(jié)果;display (c);5程序運(yùn)行5. 1輸入矩陣運(yùn)行該運(yùn)算系統(tǒng),進(jìn)入“菜單”選項(xiàng)以后,輸入“1”,選擇“輸入矩陣a”,運(yùn)算結(jié)果如圖3所示;輸入“2”,選擇“輸入矩陣b”,運(yùn)算結(jié)果如圖4所示:亍的操作序即車訶亍的操作序號:233 3 熱處 列個(gè) 和元 矩矩 入入 請請數(shù)數(shù) 列個(gè) 和元 矩矩 入入刖 青青瞽盪e義窿嚴(yán)亍和列=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矩陣轉(zhuǎn)置輸入矩陣a和矩陣b以后,在“菜單”提示下,輸入“3”,進(jìn)行矩陣a的轉(zhuǎn)置,運(yùn)算結(jié)果如圖5所示;輸入“4”,進(jìn)行矩陣b的轉(zhuǎn)置,運(yùn)算結(jié)果如圖6所示:操作序號=3原來的矩陣為:408000050轉(zhuǎn)置后的矩陣為;400005800申電當(dāng)番崖誓甲操作序號沁原來的矩陣為:轉(zhuǎn)置后的矩陣為=000700002圖5矩陣a的轉(zhuǎn)置圖6矩陣b的轉(zhuǎn)置5. 3矩陣加法在“菜單”提示下,輸入“5”,進(jìn)行兩個(gè)矩陣的加法運(yùn)算,即a+b,運(yùn)算結(jié)果如圖7所不:請輸入所要進(jìn)行的操作序號汀5. a+
17、ba+b的運(yùn)算結(jié)果矩陣為:4780 0 0052圖7矩陣加法5.4矩陣減法在“菜單”提示下,輸入“6”,進(jìn)行兩個(gè)矩陣的加法運(yùn)算,即a-b,運(yùn)算結(jié)果如圖8所不:請輸人所要進(jìn)行的操作序號:66. a-bft-b的運(yùn)算結(jié)果矩陣為:4-7 80 0 005-2圖8矩陣減法5. 5矩陣乘法在“菜單”提示下,輸入“7”,進(jìn)行兩個(gè)矩陣的第一種乘法運(yùn)算,即a*b,運(yùn)算結(jié)果如圖9所示;輸入“8”,進(jìn)行兩個(gè)矩陣的第二種乘法運(yùn)算,即b*a,運(yùn)算結(jié)果如圖10所示:幘輸入所要進(jìn)行的操作序號汐? a*b運(yùn)算結(jié)果矩陣為:0 28 160 0 00 0 0請輸入所要進(jìn)行的操作序號泮8.運(yùn)算結(jié)果矩陣為:0 0 00 0 00
18、10 0圖9雉陣乘法1 (a*b)圖10矩陣乘法2(b*a)5.6退出及錯(cuò)誤提示算法在運(yùn)行吋還有退出及錯(cuò)誤提示功能,在“菜單”提示下,輸入“0”則 退出系統(tǒng),如圖11所示;若輸入0 8以外的數(shù)字,則會出現(xiàn)錯(cuò)誤提示,如圖 12所示:時(shí)要進(jìn)行的操作序界 射謝使用?青輸入所要進(jìn)行的操作序號:" 輸入錯(cuò)誤,請重新輸入選擇?圖11退出圖12錯(cuò)誤提示6總結(jié)通過對數(shù)據(jù)結(jié)構(gòu)這門課的學(xué)習(xí),我了解到:“數(shù)據(jù)結(jié)構(gòu)"在計(jì)算機(jī)科學(xué)中是一 門綜合性的專業(yè)基礎(chǔ)課。而我們現(xiàn)在所學(xué)的數(shù)據(jù)結(jié)構(gòu)是c語言版的,是建立在c 語言基礎(chǔ)之上的,若是c語言基礎(chǔ)知識不牢固,要想學(xué)好數(shù)據(jù)結(jié)構(gòu)這門課程是 有一定的困難的。所以在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課程的吋候,也順便復(fù)習(xí)了 c語言 的相關(guān)內(nèi)容,加深了我對c語言的理解和應(yīng)用,并且也深深體會到了數(shù)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【《城市文化與城市可持續(xù)發(fā)展探究:以S市為例》10000字(論文)】
- 【《網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》13000字(論文)】
- 散學(xué)典禮家長感言(10篇)
- 師德師風(fēng)團(tuán)建心得體會(26篇)
- 市場部門工作總結(jié)(7篇)
- 2024年土地抵押合同例文(二篇)
- 2024年小產(chǎn)權(quán)房子合同范例(三篇)
- 2024年小學(xué)教科研工作計(jì)劃(二篇)
- 2024年大巴車租賃合同參考樣本(二篇)
- 2024年培優(yōu)補(bǔ)差工作計(jì)劃范文(五篇)
- 國有公司總部禮品管理辦法 模版
- 口腔頜面部檢查課件
- 2020年重癥醫(yī)學(xué)科病人呼吸心跳驟停演練方案及腳本
- 平衡記分卡應(yīng)用流程
- 呼吸道感染病毒培訓(xùn)課件
- 重癥超聲課件
- 物聯(lián)網(wǎng)信息安全知識考核試題與答案
- 軍樂隊(duì)樂器種類以及人員編制
- 車輛駕駛業(yè)務(wù)外包服務(wù)方案
- 高中化學(xué)選修4《化學(xué)反應(yīng)原理》全冊教案
- 現(xiàn)場粉塵清掃記錄表參考模板范本
評論
0/150
提交評論