




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課程設計報告設計名稱:數據結構課程設計):設計地點:計算機實驗室、教室指導教師評語:數據結構課程設計報告1、訓練學生靈活應用所學數據結構知識,獨立完成問題分析,結合數據結構理論知識,編寫程序求解指定問題。2、初步掌握軟件開發過程的問題分析、系統設計、程序編碼、測試等基本方法和技能;3、提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;4、訓練用系統的觀點和軟件開發一般規范進行軟件開發,鞏固、深化學生的理論知識,提高編程水平,并在此過程中培養他們嚴謹的科學態度和良好的工作作風。2.課程設計任務與要求:任務根據教材《數據結構-C語言描述》(耿國華主編)和參考書《數據結構題集(C語言版)》(嚴蔚敏、吳偉民主編)選擇課程設計題目,要求通過設計,在數據結構的邏輯特性和物理表示、數據結構的選擇應用、算法的設計及其實現等方面加深對課程基本內容的理解和綜合運用。設計題目從任務書所列選題表中選取,每班每題不得超過2人。學生自選課題。學生原則上可以結合個人愛好自選課題,要求課題有一定的深度與難度,有一定的算法復雜性,能夠鞏固數據結構課程所學的知識。學生自選課題需在18周前報課程設計指導教師批準方可生效。要求:1、在處理每個題目時,要求從分析題目的需求入手,按設計抽象數據類型、構思算法、通過設計實現抽象數據類型、編制上機程序和上機調試等若干步驟完成題目,最終寫出完整的分析報告。前期準備工作完備與否直接影響到后序上機調試工作的效率。在程序設計階段應盡量利用已有的標準函數,加大代碼的重用率。2、設計的題目要求達到一定工作量(300行以上代碼并具有一定的深度和難度。3、程序設計語言推薦使用C/C++,程序書寫規范,源程序需加必要的注釋;4、每位同學需提交可獨立運行的程序;5、每位同學需獨立提交設計報告書(每人一份要求編排格式統一、規范、內容充實,不少);6、課程設計實踐作為培養學生動手能力的一種手段,單獨考核。數據結構課程設計報告3.課程設計說明書一需求分析[問題描述]中國移動公司正在積極推廣3G通信應用,計劃在江蘇高校之間建立一個專用通信網絡,請為其規劃一個投資最省的通信線路架設方案。[數據需求]高校(高校名稱,地址,數量)高校間的線路線路的成本[功能需求]能夠構造通信網絡系統,編輯通信網絡系統,銷毀通信網絡系統,添加高校,刪除高校,修改高校名,添加高校間的線路,刪除高校間的線路,修改線路的成本,能生成最佳方案,輸出通信網絡系統,保存通信網絡系統。[性能需求]輸出方案的結果直觀、明確二概要設計高校專用通信網絡建設構造通信銷毀通信網絡添加刪除編輯通信修改高校名添加刪除高校線路生成最佳方案修改線路成本輸出通信保存通信ADTLinearList{關系:S={<ai,ai+1>|ai,ai+1∈D0,i=1,2,……,n-1}基本操作:InitList(L)初始化L為空表DestoryList(L)銷毀LClearList(L)將L置為空表ListLength(L)若L為空表則返回0,否則返回表中元素個數Locate(L,e)若L中存在元素e則將當前指針指向e所在位置并返回真GetData(L,i)返回L中第i個元素的值InsList(L,I,e)在L中第i個位置插入e,L的長度增加1DelList(L,I,&e)刪除L的第i個元素,并用e返回其值,L長度減少1}ADTLinearList數據結構課程設計報告數據定義:{intadj;//權值typedefstructintvexnum,arcnum;//頂}graph;//圖的類型typedefstruct{stringadjvex;intlowcost;}minside;//求最小生成樹時的輔助數組的類voidEditgraph(graph*g);//編輯通信網絡系統intCreategraph(graph*g)//創建通信網絡系統intInsertVex(graph*g,stringv)//添加高校voidChangeVex(graph*g,stringv)//修改高校名intInsertArc(graph*g,stringv,stringw)//添加高校間的路線intDeleteArc(graph*g,stringv,stringw)//刪除高校間的路線voidChangeWeight(graph*g,stringv,stringw)//修改高校間的路線及其成本intDestroygraph(graph*g)//銷毀通信網絡系統intDisplay(graph*g)//輸出通信網絡系統voidsave(graph*g)//保存通信網絡系統三詳細設計創建通信系統數據結構課程設計報告{inti,j,k,w;stringva,vb;讀取文件"通信網絡.txt"if(未找到文件){return0;}從文件讀入頂點數從文件讀入邊數頂點向量infile>>(*g).vexs[i];初始化鄰接矩陣for(j=0;j<(*g).vexnum;++j){(*g).arcs[i][j].adj=INFINITY;//網}{i=LocateVex(g,va);j=LocateVex(g,vb);無向網}infile.close();return1;}開始創建通信系統能否讀取文件創建成功創建成功數據結構課程設計報告添加高校intInsertVex(graph*g,stringv)if(頂點數為0){cout<<"未建立通信網絡系統!\n";system(暫停);Editgraph(g);}intn=LocateVex(g,v);if(高校名重復){cout<<"該高校已存在!\n";system(暫停);Editgraph(g);}inti;構造新頂點向量{初始化該行鄰接矩陣的值初始化該列鄰接矩陣的值}return1;}刪除學校intDeleteVex(graph*g,stringv)if(頂點數為0){cout<<"未建立通信網絡系統!\n";system(暫停);Editgraph(g);}intk=LocateVex(g,v);if(k<0){cout<<"不存在該學校!\n";system(暫停);數據結構課程設計報告Editgraph(g);}inti,j;intm=0;if(v不是圖g的頂點)return0;for(j=0;j<(*g).vexnum;j++)if(有入弧或邊){修改弧數}for(序號k后面的頂點向量依次前移)(*g).vexs[j-1]=(*g).vexs[j];for(i=0;i<(*g).vexnum;i++)for(j=k+1;j<(*g).vexnum;j++)移動待刪除頂點之后的矩陣元素for(i=0;i<(*g).vexnum;i++)for(j=k+1;j<(*g).vexnum;j++)移動待刪除頂點之下的矩陣元素更新圖的頂點數return1;}修改高校名voidChangeVex(graph*g,stringv)//修改高校名{intn=LocateVex(g,v);if(n<0){cout<<"不存在該學校!\n";system(暫停);Editgraph(g);}strings;}添加路線intInsertArc(graph*g,stringv,stringw){//在g中增添弧,若g是無向的,則還增添對稱弧if(頂點數為0)數據結構課程設計報告{cout<<"未建立通信網絡系統!\n";system(暫停);Editgraph(g);}cout<<"請輸入要添加的線路的兩端的高校名:";intv1,w1;v1=LocateVex(g,v);//尾{cout<<"高校名輸入錯誤!\n";system(暫停);Editgraph(g);}elseif(路線兩頭高校名重復){cout<<"該線路已存在!\n";system(暫停);Editgraph(g);}弧或邊數加1cout<<"請輸入該條線路的建設費用:";cin>>(*g).arcs[v1][w1].adj;if(!bRet){cout<<"輸入的成本不是整型的!\n";system(暫停);exit(0);}(*g).arcs[w1][v1].adj=(*g).arcs[v1][w1].adj;return1;}刪除線路intDeleteArc(graph*g,stringv,stringw){//在g中刪除弧,若g是無向的,則還刪除對稱弧if(頂點數為0){cout<<"未建立通信網絡系統!\n";system(暫停);Editgraph(g);}cout<<"請輸入要刪除的線路的兩端的高校名:";數據結構課程設計報告intn=LocateVex(g,v);{cout<<"學校名輸入錯誤!\n";system(暫停);Editgraph(g);}elseif(花費無限){cout<<"不存在該線路!\n";system(暫停);編輯}g->arcs[n][m].adj=INFINITY;(*g).arcs[m][n].adj=(*g).arcs[n][m].adj;(*g).arcnum--;return1;}四程序設計與調試分析1.程序中運用到大多的插入與刪除,但應前期需求分析的準備工作不充分,導致程序運行功能不全,比如查找時關于此書的信息不能全部顯示出來,并且添加刪除時庫存的變化不能直接顯示出來。程序的健壯性不能達到預期的結果,這些都是需要改進的。2.在程序中的函數調用是個非常重要的部分,也是經常需要用到的,在編寫程序過程中,因為函數調用不準確,使得循環進不去,后來改變函數的調用關系,才達到了預期結果。五用戶手冊【使用說明】1.進入高校專用通信網絡系統2.選擇1.構造通信網絡系統,顯示出10個高校45條線路的通信系統矩陣。3.若創建成功,選擇2.編輯通信網絡系統,顯示出功能1~8。4.若要銷毀系統,選擇1.銷毀通信網絡系統。5.若要添加高校,選擇2.添加一個高校,并輸入要添加的高校名。6.若要刪除高校,選擇3.刪除一個高校,并輸入要刪除的高校名。若輸入的高校名不存在,則顯示不存在該學校。7.若要修改高校名,選擇4.修改高校名,并輸入要修改的高校名。若輸入的高校名不存在,則顯示不存在該學校。8.若要添加高校間的線路,選擇5.添加一條高線間的線路,并輸入要添加線路兩端的高校名。若輸數據結構課程設計報告入的高校名錯誤在則顯示學校名輸入錯誤。9.若要刪除高線間的線路,選擇6.刪除一條高校間的線路,并輸入要刪除線路兩端的高校名。若輸入的高校名不存在則顯示學校名輸入錯誤。10.若要修改線路的成本,選擇7.修改線路的成本,并輸入要刪除線路連段的高校名。若輸入的高校名不存在則顯示學校名輸入錯誤。11.若要推出編輯通信網絡系統,選擇8.退出?;氐礁咝S猛ㄐ啪W絡建設系統。12.若要生成最佳方案,選擇3.生成最佳方案。并輸入起始學校和要保存的文件名。13.若要輸出通信網絡系統,選擇4.輸出通信網絡系統。14.若要保存通信網絡系統,選擇5.保存通信網絡系統。并輸入要保存的文件名。15.退出,選擇6.退出系統。六測試成果構造通信網絡系統編輯通信網絡系統,添加一個高校刪除一個高校數據結構課程設計報告修改高校名添加一條高校間的線路刪除高校間的線路數據結構課程設計報告修改高校間的成本生成最佳路線輸出通信網絡系統數據結構課程設計報告保存通信網絡系統七附錄(源程序清單){數據結構課程設計報告{{intj=-1,k;{{j=k;}}}{inti,j,k,w;{數據結構課程設計報告}{}{}}{}數據結構課程設計報告{}inti;{}}{}{數據結構課程設計報告}inti,j;{}}{{數據結構課程設計報告}}{}cout<<"請輸入要添加的線路的兩端的高校名:";{}{數據結構課程設計報告}{}}{//在g中刪除弧,若g是無向的,則還刪除對稱弧{}cout<<"請輸入要刪除的線路的兩端的高校名:";{數據結構課程設計報告}{}}{cout<<"請輸入要修改的線路的兩端的高校名:";{}{數據結構課程設計報告}{}{}}{//銷毀圖g{}inti;數據結構課程設計報告}{{}inti,j;{{}}}//普里姆算法數據結構課程設計報告{k=i;{k=j;}}{{}數據結構課程設計報告{}{if(i!=k){}}{數據結構課程設計報告{{}}}}{{}數據結構課程設計報告{}{{}}}{cout<<"\t\t*******************************************\n";數據結構課程設計報告6.刪除一條高校間的線路7.修改線路的成本\n";\n";\n";cout<<"\t\t*******************************************\n";{數據結構課程設計報告數據結構課程設計報告}}{cout<<"\t\t*******************************************\n";高校專用通信網絡建設系統\n";2.編輯通信網絡系統\n";4.輸出通信網絡系統5.保存通信網絡系統cout<<"\t\t*******************************************\n";{數據結構課程設計報告}}數據結構課程設計報告{cout<<"歡迎使用高校專用通信網絡建設系統";}4.課程設計心得兩周的課程設計結束了,在這次的課程設計中不僅檢驗了我所學習的知識,也培養了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設計過程中,與同學分工設計,和同學們相互探討,相互學習,相互監督。學會了合作,學會了運籌帷幄,學會了寬容,學會了理解,也學人與處世。課程設計是我們專業課程知識綜合應用的實踐訓練,著是我們邁向社會,從事職業工作前一個必不少的過程.”千里之行始于足下”,通過這次課程設計,我深深體會到這句千古名言的真正含義.我今天認真的進行課程設計,學會腳踏實地邁開這一步,就是為明天能穩健地在社會大潮中奔跑打下堅實的基礎.通過這次設計,本人在多方面都有所提高。通過這次設計,綜合運用本專業所學課程的理論和生產實際知識進行一次設計工作的實際訓練從而培養和提高學生獨立工作能力,鞏固與擴充了課程所學的內規范和標準,同時各科相關的課程都有了全面的復習,獨立思考的能力也有了提高。在這次設計過程中,體現出自己單獨設計的能力以及綜合運用知識的能力,體會了學以致用、突出自己勞動成果的喜悅心情,從中發現自己平時學習的不足和薄弱環節,從而加以彌補。在此感謝我們的老師,老師嚴謹細致、一絲不茍的作風一直是我學習中的榜樣;老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪;這次模具設計的每個實驗細節和每個數據,都離不開老師您的細心指導。而您開朗的個性和寬容的態度,幫助我能夠很順利的完成了這次課程設計。同時感謝對我幫助過的同學們,謝謝你們對我的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 夜空中的星星秘密抒情作文(8篇)
- 數字化轉型助力公路貨運行業效率革命研究報告
- 大型物流配送中心建設對城市能源消耗風險分析報告
- 2025年可持續發展目標(SDGs)在虛擬數字人技術中的應用與發展報告
- 共享出行平臺信用積分體系設計與應用報告
- 2025年海上風力發電場運維管理與技術創新策略深度報告
- 2025年智慧公交系統實施方案評估報告:智能調度與運營優化分析
- 2025年兒童教育游戲化應用研究:教學設計理念與實踐策略報告001
- 房屋買賣合同協議
- 2025-2030中國軸承定位擋圈行業運行狀況與供需趨勢預測報告
- 2023-2024學年滬科版(2019)高中信息技術必修二第三單元項目五《規劃并連接數字家庭系統的網絡-組建小型信息系統網絡(一)》說課稿
- 石油行業設備管理規范
- RPA財務機器人開發與應用 課件 6.2 RPA銀企對賬機器人
- 2024年研究生考試考研植物生理學與生物化學(414)試題與參考答案
- 天津市南開區2023-2024學年六年級下學期期末數學試題
- 公司招聘保安合同模板
- 2023-2024學年廣東省深圳市福田區七年級(下)期末數學答案
- 老年患者術后譫妄護理
- 2023年貴州遵義四中自主招生考試語文試卷真題(精校打印版)
- MAM6090空壓 機微電腦控制器說明書
- 北師大版八年級數學下冊??碱}專練專題18平行四邊形中的周長和面積問題(原卷版+解析)
評論
0/150
提交評論