版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、安徽理工大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)說(shuō)明書(shū)題目:稀疏矩陣的運(yùn)算院 系:計(jì)算機(jī)科學(xué)與工程學(xué)院專(zhuān)業(yè)班級(jí):計(jì)算機(jī)10-*班學(xué) 號(hào): 201030*學(xué)生姓名:*指導(dǎo)教師:2011年12月28日安徽理工大學(xué)課程設(shè)計(jì)(論文)任務(wù)書(shū)計(jì)算機(jī)科7與工程學(xué)院學(xué)號(hào)201030*學(xué)生姓名細(xì)細(xì)*專(zhuān)業(yè)(班級(jí))計(jì)10-*設(shè)計(jì)題目稀疏矩陣的運(yùn)算設(shè) ii 技 術(shù) 參 數(shù)系統(tǒng)平臺(tái):windows xp開(kāi)發(fā)工具:microsoft visual c+ 6. 0設(shè) 計(jì) 要 求(1) 存儲(chǔ)結(jié)構(gòu)選擇三元組存儲(chǔ)方式;(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日編寫(xiě)代碼12月21 h-12月28日撰寫(xiě)實(shí)驗(yàn)報(bào)告參 考 資 料1 秦鋒數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)北京:清華大學(xué)出版社,20112 溫秀梅,丁學(xué)均.visual c+面向?qū)澫蟪绦蛟O(shè)計(jì).北京:淸華大學(xué)出版社,20093 何欽銘,顏暉.c語(yǔ)言程序設(shè)計(jì).北京:高等教育出版社,2008指導(dǎo)教師簽字教研室主任簽字2011年11月8日安徽理工大學(xué)課程設(shè)計(jì)(論文)成績(jī)?cè)u(píng)定表學(xué)生姓名:
3、* 學(xué)號(hào): 201030*專(zhuān)業(yè)班級(jí):計(jì)10*課程設(shè)計(jì)題口:稀疏矩陣的運(yùn)算指導(dǎo)教師評(píng)語(yǔ):成績(jī):指導(dǎo)教師:1問(wèn)題描述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問(wèn)題描述(1) 題目?jī)?nèi)容:設(shè)計(jì)稀疏矩陣運(yùn)算系統(tǒng)實(shí)現(xiàn)兩個(gè)稀疏矩陣的加法、減法、乘法以及轉(zhuǎn)置操作。(
4、2) 基本要求: 存儲(chǔ)結(jié)構(gòu)選擇三元組存儲(chǔ)方式; 實(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ì)目的:通過(guò)本次課程設(shè)計(jì),了解稀疏矩陣的一些基木運(yùn)算操作,并通過(guò)相關(guān)的程序代碼實(shí)現(xiàn)。2需求分析經(jīng)過(guò)本次的課程設(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)算操作:對(duì)矩陣a或者矩陣b進(jìn)行轉(zhuǎn)置運(yùn)算,輸出相應(yīng)的轉(zhuǎn)置矩陣;(3) 四則運(yùn)算操作:該步驟由兩個(gè)矩陣同吋參與,對(duì)其進(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)等,下面會(huì)做進(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 亠更聽(tīng)乜乜一maaa 123456780請(qǐng)輸入所要進(jìn)行的操作序號(hào):圖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請(qǐng)輸入矩陣的行數(shù)和列數(shù):”;cin»m. h»m. l;cout«/z請(qǐng)輸入矩陣的非零元個(gè)數(shù):;cin>>m.fly;cout<<endl;if(m. fly> (m h*m l)cout«/z非零元個(gè)數(shù)多于矩陣元素總數(shù),請(qǐng)垂新輸入!z,«endl;c
9、out«/z請(qǐng)重新輸入矩陣的非零元個(gè)數(shù):;cin>>m. fly;m二zero (m);int h;int 1;for (int n=l ;n<=m. fly;n+)輸入非零元所在的行、列和值cout«/z請(qǐng)輸入第/z«n«/z個(gè)非零元所在的行和列:;cin»h»l;if(h>m.h| |1>m. l) /行列輸入錯(cuò)誤提示cout«/,t列輸入錯(cuò)誤,請(qǐng)重新輸入:z,«endl;cout«/z請(qǐng)垂新輸入第/z«n«zz個(gè)非零元所在的行和列:”;cin
10、7;h»l;cout«/z請(qǐng)輸入該非零元的值:”;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)置操作,通過(guò)對(duì)矩陣的行和列進(jìn)行調(diào)換,利用for ()循環(huán)語(yǔ)句實(shí)現(xiàn)對(duì)矩陣a或矩陣b的轉(zhuǎn)置,其代碼如下:void transpose (matrix m) /矩陣轉(zhuǎn)置c. h二m
12、. l;c. l=m. h;cout<<,z 原來(lái)的;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二門(mén)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ù)不相同,則無(wú)法進(jìn)行乘法運(yùn)算,系統(tǒng)會(huì)提示錯(cuò)誤,其代碼如下:void multi(matrix m, matrix n) /a*bif(m. l!=n. h)cout«/z矩陣a的列數(shù)和矩陣b的行數(shù)不相同,無(wú)法進(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所示:亍的操作序即車(chē)訶亍的操作序號(hào):233 3 熱處 列個(gè) 和元 矩矩 入入 請(qǐng)請(qǐng)數(shù)數(shù) 列個(gè) 和元 矩矩 入入刖 青青瞽盪e義窿嚴(yán)亍和列=1 12ttf i 入入 8 主冃青所在的行和列江|:81-ttt i 入入 主冃青所在的疔和列汽2 i:?3th- s 入入捌 請(qǐng)
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所示:操作序號(hào)=3原來(lái)的矩陣為:408000050轉(zhuǎn)置后的矩陣為;400005800申電當(dāng)番崖誓甲操作序號(hào)沁原來(lái)的矩陣為:轉(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所不:請(qǐng)輸入所要進(jìn)行的操作序號(hào)汀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所不:請(qǐng)輸人所要進(jìn)行的操作序號(hào):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)行的操作序號(hào)汐? a*b運(yùn)算結(jié)果矩陣為:0 28 160 0 00 0 0請(qǐng)輸入所要進(jìn)行的操作序號(hào)泮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ù)字,則會(huì)出現(xiàn)錯(cuò)誤提示,如圖 12所示:時(shí)要進(jìn)行的操作序界 射謝使用?青輸入所要進(jìn)行的操作序號(hào):" 輸入錯(cuò)誤,請(qǐng)重新輸入選擇?圖11退出圖12錯(cuò)誤提示6總結(jié)通過(guò)對(duì)數(shù)據(jù)結(jié)構(gòu)這門(mén)課的學(xué)習(xí),我了解到:“數(shù)據(jù)結(jié)構(gòu)"在計(jì)算機(jī)科學(xué)中是一 門(mén)綜合性的專(zhuān)業(yè)基礎(chǔ)課。而我們現(xiàn)在所學(xué)的數(shù)據(jù)結(jié)構(gòu)是c語(yǔ)言版的,是建立在c 語(yǔ)言基礎(chǔ)之上的,若是c語(yǔ)言基礎(chǔ)知識(shí)不牢固,要想學(xué)好數(shù)據(jù)結(jié)構(gòu)這門(mén)課程是 有一定的困難的。所以在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門(mén)課程的吋候,也順便復(fù)習(xí)了 c語(yǔ)言 的相關(guān)內(nèi)容,加深了我對(duì)c語(yǔ)言的理解和應(yīng)用,并且也深深體會(huì)到了數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年西藏電子勞動(dòng)合同推廣與應(yīng)用信息反饋合同3篇
- 2025年滕秋離婚協(xié)議書(shū)保障婚姻解除權(quán)益6篇
- 2025年度高校與企業(yè)實(shí)踐技能培訓(xùn)協(xié)議范本2篇
- 2025房屋借住合同范本
- 個(gè)人抵押借款合同協(xié)議范文
- 2025電腦網(wǎng)絡(luò)維護(hù)合同范
- 年度專(zhuān)業(yè)設(shè)計(jì)服務(wù)產(chǎn)業(yè)分析報(bào)告
- 場(chǎng)地租賃合同書(shū)范文
- 2025煤炭?jī)?chǔ)運(yùn)承包合同
- 專(zhuān)家聘用協(xié)議書(shū)范文
- 2024年黑河嫩江市招聘社區(qū)工作者考試真題
- 第22單元(二次函數(shù))-單元測(cè)試卷(2)-2024-2025學(xué)年數(shù)學(xué)人教版九年級(jí)上冊(cè)(含答案解析)
- 藍(lán)色3D風(fēng)工作總結(jié)匯報(bào)模板
- 安全常識(shí)課件
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末聯(lián)考化學(xué)試題(含答案)
- 2024年江蘇省導(dǎo)游服務(wù)技能大賽理論考試題庫(kù)(含答案)
- 2024年中考英語(yǔ)閱讀理解表格型解題技巧講解(含練習(xí)題及答案)
- 新版中國(guó)食物成分表
- 浙江省溫州市溫州中學(xué)2025屆數(shù)學(xué)高二上期末綜合測(cè)試試題含解析
- 2024年山東省青島市中考生物試題(含答案)
- 保安公司市場(chǎng)拓展方案-保安拓展工作方案
評(píng)論
0/150
提交評(píng)論