數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--校園導(dǎo)游咨詢_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--校園導(dǎo)游咨詢_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--校園導(dǎo)游咨詢_第3頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、WORD格式瓊州學(xué)院電子信息工程學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:"數(shù)據(jù)構(gòu)造"課程設(shè)計(jì)設(shè)計(jì)題目:校園導(dǎo)游咨詢專業(yè):軟件工程班級(jí):2021軟件工程學(xué)生*:學(xué)號(hào):起止日期:指導(dǎo)教師:指導(dǎo)教師評(píng)語(yǔ):最終成績(jī):指導(dǎo)教師簽名:年月日成項(xiàng)目權(quán)重成績(jī)績(jī)1、設(shè)計(jì)過(guò)程中的學(xué)習(xí)態(tài)度0.2評(píng)2、課程設(shè)計(jì)的質(zhì)量及辯論0.5定3、設(shè)計(jì)報(bào)告書(shū)標(biāo)準(zhǔn)程度0.34、總成績(jī)專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)本卷須知本卷須知一、設(shè)計(jì)目的"數(shù)據(jù)構(gòu)造" 是一門實(shí)踐性較強(qiáng)的軟件根底課,為了學(xué)好這門課程,必須在掌握理論知識(shí)的同時(shí), 加強(qiáng)上機(jī)實(shí)踐。 本課程設(shè)計(jì)的目的就是要到達(dá)理論與實(shí)際應(yīng)用相結(jié)合,

2、使同學(xué)們能夠根據(jù)數(shù)據(jù)對(duì)象的特性, 學(xué)會(huì)數(shù)據(jù)組織的方法, 能把現(xiàn)實(shí)世界中的實(shí)際問(wèn)題在計(jì)算機(jī)內(nèi)部表示出來(lái),并培養(yǎng)根本的、良好的程序設(shè)計(jì)技能。二、設(shè)計(jì)要求1通過(guò)這次課程設(shè)計(jì),要求在數(shù)據(jù)構(gòu)造的邏輯特性和物理表示、數(shù)據(jù)構(gòu)造的選擇應(yīng)用、算法的設(shè)計(jì)及其實(shí)現(xiàn)等方面加深課程根本內(nèi)容的理解。 同時(shí),在程序設(shè)計(jì)方法以及上機(jī)操作等根本技能和科學(xué)作風(fēng)方面受到比較系統(tǒng)和嚴(yán)格的訓(xùn)練。2學(xué)生必須仔細(xì)研讀"數(shù)據(jù)構(gòu)造"課程設(shè)計(jì)要求,以學(xué)生自學(xué)為主、指導(dǎo)教師指導(dǎo)為輔,獨(dú)立完成課程設(shè)計(jì)的任務(wù),有問(wèn)題及時(shí)主動(dòng)與指導(dǎo)教師溝通。3本次課程設(shè)計(jì)按照教學(xué)要求需要在本學(xué)期15 周前完成,學(xué)生要發(fā)揮自主學(xué)習(xí)的能力,充分利用時(shí)間

3、, 安排好課程設(shè)計(jì)的時(shí)間方案,并在課程設(shè)計(jì)過(guò)程中不斷檢測(cè)自己的方案完成情況,及時(shí)向指導(dǎo)教師匯報(bào)。4編程語(yǔ)言: C 語(yǔ)言。三、課程設(shè)計(jì)說(shuō)明書(shū)的格式要求設(shè)計(jì)文檔的撰寫(xiě)必須提前進(jìn)展,以保證使文檔與程序同步提交。1設(shè)計(jì)題目2運(yùn)行環(huán)境軟、硬件環(huán)境3算法的需求分析4算法概要設(shè)計(jì)5算法詳細(xì)設(shè)計(jì)6算法的測(cè)試7運(yùn)行結(jié)果分析8收獲及體會(huì)四、問(wèn)題分析、設(shè)計(jì)和測(cè)試過(guò)程要標(biāo)準(zhǔn)化1需求分析:將題目中要求的功能進(jìn)展表達(dá)分析。2概要設(shè)計(jì):算法的設(shè)計(jì)說(shuō)明, 描述解決此問(wèn)題的數(shù)據(jù)存儲(chǔ)構(gòu)造, 有些題目已經(jīng)指定了數(shù)據(jù)存儲(chǔ)的,按照指定的設(shè)計(jì) ,描述算法建議使用流程圖,進(jìn)展算法分析指明關(guān)鍵語(yǔ)句的時(shí)間復(fù)雜度。3詳細(xì)設(shè)計(jì):即各個(gè)算法的具體實(shí)

4、現(xiàn)步驟,每個(gè)題目要有相應(yīng)的源程序,其中每個(gè)功能模塊采用不同的函數(shù)實(shí)現(xiàn)。源程序要標(biāo)準(zhǔn)編寫(xiě):構(gòu)造要清晰,注釋要清楚。重點(diǎn)函數(shù)的重點(diǎn)變量和重點(diǎn)功能局部要加上清楚的程序注釋。4調(diào)試和測(cè)試:給出實(shí)現(xiàn)功能的一組或多組測(cè)試數(shù)據(jù),程序調(diào)試后,將按照此測(cè)試數(shù)據(jù)進(jìn)展測(cè)試的結(jié)果列出來(lái) 。在調(diào)試過(guò)程中遇到的問(wèn)題和解決方法也要記錄下來(lái)。程序要能夠正常運(yùn)行,還要有根本的容錯(cuò)功能。盡量防止出現(xiàn)操作錯(cuò)誤時(shí)出現(xiàn)死循環(huán)。5改進(jìn)措施:對(duì)有些題目提出算法改進(jìn)方案,比較不同算法的優(yōu)缺點(diǎn)。五、對(duì)指導(dǎo)教師的要求指導(dǎo)教師要關(guān)心學(xué)生的課程設(shè)計(jì)進(jìn)展, 認(rèn)真答疑。 對(duì)課程設(shè)計(jì)報(bào)告的撰寫(xiě)要給予充分的指導(dǎo),報(bào)告中切忌出現(xiàn)大篇源代碼,應(yīng)嚴(yán)格要求學(xué)生將主

5、要篇幅放在“原理實(shí)現(xiàn)上,即如何用框圖表達(dá)設(shè)計(jì)和實(shí)施思想。課程設(shè)計(jì)報(bào)告要用紅筆批閱,最終成績(jī)以優(yōu)、良、中、及格與不及格分等計(jì)算。專業(yè)資料整理WORD格式II-專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)目錄目錄摘要 .11設(shè)計(jì)內(nèi)容和要求 .- 2 -1.1設(shè)計(jì)內(nèi)容 .- 2 -1.1設(shè)計(jì)要求 .- 2 -2概要設(shè)計(jì) .22.1程序的模塊圖 .22.2主函數(shù)的概要設(shè)計(jì) .32.3查找介紹函數(shù)的概要設(shè)計(jì) .32.4查找最短路徑函數(shù)的概要設(shè)計(jì) .32.5景點(diǎn)分布圖的概要設(shè)計(jì) .32.6退出函數(shù)的概要設(shè)計(jì) .33詳細(xì)設(shè)計(jì) .53.1程序的流程圖 .53.2主函數(shù)的詳細(xì)設(shè)計(jì) .63.3查找介紹函數(shù)的詳細(xì)

6、設(shè)計(jì) .63.4查找最短路徑函數(shù)的詳細(xì)設(shè)計(jì) .73.5景點(diǎn)分布圖的詳細(xì)設(shè)計(jì) .83.6退出函數(shù)的詳細(xì)設(shè)計(jì) .93.7數(shù)據(jù)構(gòu)造的詳細(xì)設(shè)計(jì) .94軟件測(cè)試 .104.1菜單的測(cè)試 .104.2查找景點(diǎn)簡(jiǎn)介的測(cè)試 .114.3查找兩個(gè)景點(diǎn)之間的最短距離的測(cè)試. 124.4查看景點(diǎn)分布圖的測(cè)試 .134.5退出的測(cè)試 .145軟件使用說(shuō)明 .156參考文獻(xiàn) .167附錄 .177.1系統(tǒng)完整代碼 .17專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)摘要摘要現(xiàn)代快節(jié)奏的生活使得都市人越來(lái)越渴望親近自然,因此外出旅游現(xiàn)在被越來(lái)越多的都市人所看中, 所以如何快速方便的找到我們想要的旅游景點(diǎn)的信息和最短路徑就

7、成了一個(gè)很重要的問(wèn)題。本設(shè)計(jì)基于圖的構(gòu)造,創(chuàng)立一個(gè)無(wú)向圖,針對(duì)游客的實(shí)際需求,將瓊州學(xué)院的景點(diǎn)編號(hào)、名稱、介紹等信息放入到圖的頂點(diǎn)當(dāng)中并保存在景點(diǎn)文本文件當(dāng)中,將兩個(gè)景點(diǎn)的編號(hào)和它們之間的距離當(dāng)作權(quán)值也保存到權(quán)值文本文件當(dāng)中,利用迪杰斯特拉算法來(lái)求從一個(gè)景點(diǎn)到另一個(gè)景點(diǎn)的最短距離,利用Search( );函數(shù)來(lái)查找景點(diǎn), 并顯示出它的信息, 從而解決了要查找景點(diǎn)信息和景點(diǎn)之間的最短路徑的問(wèn)題,最后按照顯示屏上的提示進(jìn)展相關(guān)的操作。關(guān)鍵詞:分布圖、查找信息、最短距離、校園導(dǎo)游咨詢專業(yè)資料整理WORD格式1專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)設(shè)計(jì)內(nèi)容和要求1 設(shè)計(jì)內(nèi)容和要求1.1 設(shè)計(jì)內(nèi)

8、容依據(jù)課程設(shè)計(jì)的要求,利用一個(gè)無(wú)向圖的構(gòu)造,將景點(diǎn)當(dāng)作圖的頂點(diǎn),將景點(diǎn)之間的距離當(dāng)作權(quán)值來(lái)儲(chǔ)存,然后根據(jù)游客自己的需求, 按照顯示屏上的提示來(lái)進(jìn)展查找景點(diǎn)介紹,查找兩個(gè)景點(diǎn)之間的最短距離,退出程序等根本操作。1.1 設(shè)計(jì)要求本軟件為校園導(dǎo)游咨詢系統(tǒng),根據(jù)游客的實(shí)際需求而設(shè)計(jì),首先創(chuàng)立一個(gè)無(wú)向圖,然后從文件當(dāng)中讀取所有景點(diǎn)的編號(hào)、名稱、介紹和兩點(diǎn)之間的權(quán)值,并將它們寫(xiě)入到無(wú)向圖當(dāng)中。 功能主要包括查找景點(diǎn)的信息,查找從一個(gè)景點(diǎn)到另一個(gè)景點(diǎn)的最短路徑,退出等根本操作。軟件的界面要求使用VC+6.0 的運(yùn)行環(huán)境。軟件的數(shù)據(jù)庫(kù)包括校園景點(diǎn)的編號(hào)、名稱、介紹和兩個(gè)景點(diǎn)之間的距離權(quán)值,首先要定義頂點(diǎn)的數(shù)據(jù)

9、類型構(gòu)造體,里面包括景點(diǎn)的編號(hào)、名稱、介紹,然后定義一個(gè)鄰接矩陣構(gòu)造體來(lái)儲(chǔ)存邊的信息,最后定義一個(gè)無(wú)向圖類型的構(gòu)造體來(lái)儲(chǔ)存頂點(diǎn)的信息,邊的信息,頂點(diǎn)的個(gè)數(shù),邊的條數(shù)。最后游客按照顯示屏上的提示來(lái)進(jìn)展相關(guān)的操作。專業(yè)資料整理WORD格式2專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)概要設(shè)計(jì)2 概要設(shè)計(jì)2.1程序的模塊圖本軟件的算法依據(jù)無(wú)向圖的操作通過(guò)查找函數(shù)查找景點(diǎn)的信息,通過(guò)費(fèi)洛伊德函數(shù)來(lái)查找最短距離, 開(kāi)場(chǎng)時(shí)首先從文件當(dāng)中讀取景點(diǎn)的編號(hào)、名稱、介紹和兩個(gè)景點(diǎn)之間的距離即權(quán)值, 然后將其參加到圖當(dāng)中, 再調(diào)用查找函數(shù)查找景點(diǎn)的信息,調(diào)用費(fèi)洛伊德函數(shù)來(lái)查找最短距離,調(diào)用退出函數(shù)實(shí)現(xiàn)退出功能,

10、其模塊圖如圖 2.5 所示:開(kāi)場(chǎng)加入圖分查最退布找短出圖信距息離屏屏屏幕幕幕顯顯顯示示示圖 2.5 模塊圖專業(yè)資料整理WORD格式3專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)概要設(shè)計(jì)2.2主函數(shù)的概要設(shè)計(jì)基于程序的操作要求, 對(duì)于主函數(shù)的設(shè)計(jì)首先是顯示一個(gè)可視化的操作界面提醒游客進(jìn)展相關(guān)的操作和提示游客其可供選擇的景點(diǎn)的名稱, 便于其在后面的操作過(guò)程當(dāng)中能夠快速方便的找到其需要查找的景點(diǎn)的名稱。而后就是一個(gè) switch ;的選擇函數(shù),提供查找景點(diǎn)信息,查找兩個(gè)景點(diǎn)之間的最短距離和退出的相關(guān)的選擇操作而后進(jìn)入到每一個(gè)操作界面當(dāng)中,從而實(shí)現(xiàn)所需要的功能。2.3查找介紹函數(shù)的概要設(shè)計(jì)當(dāng)游客選擇

11、了要查找景點(diǎn)的信息的介紹這一項(xiàng)功能的時(shí)候,就會(huì)進(jìn)入到查找的界面,對(duì)于查找景點(diǎn)信息就是利用 Search( ); 函數(shù),當(dāng)游客輸入景點(diǎn)的名稱的時(shí)候看其是否與文件當(dāng)中的數(shù)據(jù)相匹配, 如果有那么輸出它的介紹, 如果沒(méi)有那么輸出錯(cuò)誤的提示提醒游客進(jìn)展相關(guān)的操作來(lái)進(jìn)入到正確的操作過(guò)程當(dāng)中。2.4查找最短路徑函數(shù)的概要設(shè)計(jì)對(duì)于查找最短路徑的這一項(xiàng)功能,可以利用迪杰斯特拉算法,但我是用的費(fèi)洛伊德算法,相對(duì)來(lái)說(shuō)步驟跟簡(jiǎn)單一點(diǎn)。后面有詳細(xì)介紹。2.5景點(diǎn)分布圖的概要設(shè)計(jì)先手稿繪制所有景點(diǎn)的分布,利用printf;函數(shù)打印分布圖的框架構(gòu)造。各景點(diǎn)之間用線條,通過(guò)分布圖能全面的對(duì)校園各景點(diǎn)有個(gè)方位感。2.6退出函數(shù)

12、的概要設(shè)計(jì)關(guān)于退出函數(shù), 那么是當(dāng)游客執(zhí)行完了他想要進(jìn)展的操作過(guò)后選擇退出的功能的時(shí)候就調(diào)用退出函數(shù) exit(0); 跳入到退出界面實(shí)現(xiàn)退出的功能。專業(yè)資料整理WORD格式4專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)詳細(xì)設(shè)計(jì)3 詳細(xì)設(shè)計(jì)3.1程序的流程圖當(dāng)我們想要更加實(shí)際的了解一個(gè)程序的算法過(guò)程的時(shí)候,我們就要依據(jù)程序的流程圖來(lái)給我們一個(gè)比較實(shí)際的過(guò)程, 從流程圖當(dāng)中能夠更加清楚整個(gè)程序?qū)崿F(xiàn)的過(guò)程是怎樣的。其流程圖如圖 3.1 所示:start創(chuàng)立無(wú)向圖寫(xiě)入無(wú)向圖中Case 3查找信息TFCase 2最短路徑FTCase 1分布圖FTCase 4end圖 3.1 流程圖專業(yè)資料整理WOR

13、D格式5專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)詳細(xì)設(shè)計(jì)3.2主函數(shù)的詳細(xì)設(shè)計(jì)主函數(shù)是一個(gè)程序的主體, 當(dāng)我們要進(jìn)展我們所需要的操作的時(shí)候我們就要根據(jù)主函數(shù)中的顯示信息和它給我們的相關(guān)的提示信息來(lái)進(jìn)展所需要的操作,因此在這次的程序?qū)崿F(xiàn)的過(guò)程當(dāng)中,調(diào)用 Browser(); 提示游客根據(jù) switch(); 的選擇語(yǔ)句,選擇來(lái)進(jìn)入到相關(guān)的操作界面實(shí)現(xiàn)程序的根本功能。 ,3.3查找介紹函數(shù)的詳細(xì)設(shè)計(jì)當(dāng)游客選擇了要查找景點(diǎn)的信息的介紹這一項(xiàng)功能的時(shí)候,程序就會(huì)調(diào)用Search( ); 函數(shù)進(jìn)入到查找景點(diǎn)的介紹的界面,當(dāng)游客輸入了需要查找的景點(diǎn)的編號(hào)的時(shí)候,程序通過(guò)構(gòu)造體,自動(dòng)匹配相應(yīng)的信息,查

14、找是否有這個(gè)景點(diǎn)。void Search(MGraph *G)int k,flag=1;while(flag)printf("請(qǐng)輸入要查詢的景點(diǎn)編號(hào):");scanf("%d",&k);if(k<=0|k>G->vexnum)printf(" 景點(diǎn)編號(hào)不存在 ! 請(qǐng)重新輸入景點(diǎn)編號(hào) :"); scanf("%d",&k);if(k>0&&k<=G->vexnum) flag=0;printf("n n");printf(&quo

15、t;編號(hào)景點(diǎn)名稱簡(jiǎn)介 n");printf("%-4d%-16s%-62sn",G->vexsk.num,G->,G->roduction);printf(" n"); ,找到將它的編號(hào)返回,并輸出它的介紹,沒(méi)有找到這輸出錯(cuò)誤提示,提醒游客進(jìn)展相關(guān)的操作進(jìn)入正確的操作過(guò)程當(dāng)中。專業(yè)資料整理WORD格式6專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)詳細(xì)設(shè)計(jì)3.4查找最短路徑函數(shù)的詳細(xì)設(shè)計(jì)當(dāng)游客選擇了要查找兩個(gè)景點(diǎn)之間的最短距離這一項(xiàng)功能的時(shí)候,函數(shù)進(jìn)入到查找兩個(gè)景點(diǎn)之間的最短距離的操作界面

16、當(dāng)中, 當(dāng)游客輸入了兩個(gè)景點(diǎn)的名稱過(guò)后,程序會(huì)判斷是否有這兩個(gè)景點(diǎn),如果有那么返回他們各自的編號(hào),并調(diào)用 Floyd( ); 函數(shù)進(jìn)入到查找最短路徑問(wèn)題的程序當(dāng)中。void Floyd(MGraph *G)int v,u,i,w,k,j,flag=1,p141414,D1414;for(v=1;v<=G->vexnum;v+)for(w=1;w<=G->vexnum;w+)Dvw=G->arcsvw.adj;for(u=1;u<=G->vexnum;u+)pvwu=0;if(Dvw<INFINITY)pvwv=1;pvww=1;for(u=1;u

17、<=G->vexnum;u+)for(v=1;v<=G->vexnum;v+)for(w=1;w<=G->vexnum;w+)if(Dvu+Duw<Dvw)Dvw=Dvu+Duw;for(i=1;i<=G->vexnum;i+)pvwi=pvui | puwi;while(flag)printf("請(qǐng)輸入出發(fā)點(diǎn)和目的地的編號(hào):");scanf("%d%d",&k,&j);if(k<=0 | k>G->vexnum | j<=0 | j>G->vexn

18、um)printf(" 景點(diǎn)編號(hào)不存在 ! 請(qǐng)重新輸入出發(fā)點(diǎn)和目的地的編號(hào) :"); scanf("%d%d",&k,&j);if(k=j)專業(yè)資料整理WORD格式7專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)詳細(xì)設(shè)計(jì)printf("出發(fā)點(diǎn)和目的地一樣! 請(qǐng)重新輸入出發(fā)點(diǎn)和目的地的編號(hào) :");scanf("%d%d",&k,&j);if(k>0 && k<=G->vexnum && j>0 && j<=

19、G->vexnum)flag=0;printf("n最短游覽路線: %s",G->);if(k>j)for(u=G->vexnum;u>0;u-)if(pkju && k!=u && j!=u)printf("->%s",G->);if(k<j)for(u=1;u<=G->vexnum;u+)if(pkju && k!=u && j!=u)printf("->%s",

20、G->);printf("->%s",G->);printf("總路線長(zhǎng) %dmn",Dkj);有 n 個(gè)頂點(diǎn)的有向圖 ,佛洛伊德算法可以求解出每一對(duì)頂點(diǎn)之間的最短路徑。假設(shè)使用鄰接矩陣 d ( i, j) 來(lái)對(duì)圖進(jìn)展存儲(chǔ) , d ( i, j) 表示 i 到j(luò) 之間的距離 ,但是該距離不一定是最短距離。 佛洛伊德算法的根本思想是 :為求頂點(diǎn) ij 之間的最短距離 ,需要進(jìn)展 n 次試探。首先將0 參加路徑 ,考慮路徑i 0j 是否存在 ,如果存在 ,那么比較i j 和 i 0 j 的路徑長(zhǎng)度 ,

21、取長(zhǎng)度短的路徑作為 i j 的路徑 ,記作 (i , j ) 。接著在路徑上再增加一個(gè)頂點(diǎn)1 ,比較i 1 j 和 (i ,j )的路徑長(zhǎng)度 , 取長(zhǎng)度短的路徑作為 (i , j) 。不斷將頂點(diǎn) 2 ,3 , .,n - 1 參加進(jìn)展試探 , 最后得到的 (i , j ) 必定為 i j 的最短路徑。假設(shè)使用數(shù)組 dk ( i, j) 表示參加頂點(diǎn) k 后,最短路徑長(zhǎng)度的變化情況 ,使用數(shù)組 pk ( i, j) 表示參加頂點(diǎn) k 后,最短路徑上頂點(diǎn)的變化情況 , 這樣就求得了最短路徑和最短路徑長(zhǎng)度。3.5景點(diǎn)分布圖的詳細(xì)設(shè)計(jì)這里不詳細(xì)介紹,具體代碼,查看附錄browse_view_distr

22、ibute ( )函數(shù)。專業(yè)資料整理WORD格式8專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)詳細(xì)設(shè)計(jì)3.6退出函數(shù)的詳細(xì)設(shè)計(jì)對(duì)于退出函數(shù),當(dāng)游客選擇了退出這一個(gè)操作的時(shí)候, 程序就會(huì)調(diào)用 exit(0); 函數(shù)實(shí)現(xiàn)退出主函數(shù)的功能。最后會(huì)提示游客,歡迎下次繼續(xù)使用!3.7數(shù)據(jù)構(gòu)造的詳細(xì)設(shè)計(jì)本軟件的數(shù)據(jù)構(gòu)造包括3 個(gè)局部:1. 鄰接矩陣typedef int AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM; 定義一個(gè)鄰接矩陣,用鄰接矩陣來(lái)定義和儲(chǔ)存邊的相關(guān)信息。2. 頂點(diǎn)的構(gòu)造體typedef struct Vertex/定義圖中頂點(diǎn)的數(shù)據(jù)類型int num;/

23、景點(diǎn)編號(hào)char name30;/景點(diǎn)名稱char introduction200;/景點(diǎn)介紹Vertex;定義一個(gè)頂點(diǎn)的構(gòu)造體, 用來(lái)儲(chǔ)存景點(diǎn)的編號(hào)、 景點(diǎn)得名稱和景點(diǎn)的介紹等關(guān)于景點(diǎn)的信息。3.無(wú)向圖的構(gòu)造體typedef struct /定義圖的數(shù)據(jù)類型Vertex vexsMAX_VERTEX_NUM;/ 頂點(diǎn)的構(gòu)造體AdjMatrix arcs;/ 邊的鄰接矩陣int vexnum,arcnum;/頂點(diǎn)的個(gè)數(shù),邊的個(gè)數(shù)MGraph;定義一個(gè)圖的構(gòu)造體,用來(lái)儲(chǔ)存頂點(diǎn)的信息、邊的信息、 頂點(diǎn)的個(gè)數(shù)和邊的個(gè)數(shù)等相關(guān)的信息便于我們以后在用的時(shí)候能夠方便快捷的調(diào)用。定義好這些構(gòu)造體后, 當(dāng)我們

24、以后需要調(diào)用的時(shí)候,我們就能夠方便快捷的調(diào)用這些構(gòu)造體,從而使得我們?cè)谶\(yùn)行程序的時(shí)候能夠更加的快速能夠提高我們的程序的運(yùn)行效率,大大的節(jié)省了我們的時(shí)間還使得程序變得更加的簡(jiǎn)單。專業(yè)資料整理WORD格式9專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)軟件測(cè)試4 軟件測(cè)試4.1菜單的測(cè)試對(duì)于菜單函數(shù)的測(cè)試,首先菜單是一個(gè)可示化的界面,它能夠提示游客依據(jù)顯示屏上出現(xiàn)的提示來(lái)進(jìn)展相關(guān)的操作, 查看所有的景點(diǎn)從而方便游客進(jìn)展相關(guān)的操作,因而我們?cè)谶\(yùn)行程序的時(shí)候首先就會(huì)進(jìn)入到菜單函數(shù)當(dāng)中, 經(jīng)過(guò)測(cè)試其能夠?qū)崿F(xiàn)我們所要實(shí)現(xiàn)得根本功能,其效果圖如圖 4.1 所示:圖 4.1 菜單專業(yè)資料整理WORD格式10專

25、業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)軟件測(cè)試4.2查找景點(diǎn)簡(jiǎn)介的測(cè)試對(duì)于查找景點(diǎn)的介紹的測(cè)試, 首先依據(jù)顯示屏上的提示首先輸入要進(jìn)展的操作輸入 3 進(jìn)入查找景點(diǎn)信息的操作界面, 然后輸入需要查找的景點(diǎn)的名稱即可顯示出景點(diǎn)的介紹信息, 經(jīng)過(guò)測(cè)試可以得出其沒(méi)有什么錯(cuò)誤, 程序能夠按照我的要*現(xiàn)它的功能,其效果圖如圖 4.2 所示:圖 4.2 查找景點(diǎn)信息專業(yè)資料整理WORD格式11專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)軟件測(cè)試4.3查找兩個(gè)景點(diǎn)之間的最短距離的測(cè)試同查找景點(diǎn)的信息一樣,對(duì)于查找景點(diǎn)之間的最短距離的測(cè)試,我們就要依據(jù)提示輸入 2 進(jìn)入到查詢最短路徑的界面, 依次輸入所

26、需要查找的兩個(gè)景點(diǎn)就會(huì)顯示出怎樣到達(dá)這兩個(gè)景點(diǎn)并顯示出它們之間的最短路徑, 經(jīng)過(guò)測(cè)試可見(jiàn)程序能夠按照我的要求來(lái)實(shí)現(xiàn)其所需要的功能,其效果圖如圖4.3 所示:圖 4.3 查找兩個(gè)景點(diǎn)之間的最短距離專業(yè)資料整理WORD格式12專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)軟件測(cè)試4.4查看景點(diǎn)分布圖的測(cè)試對(duì)于查看景點(diǎn)分布圖的測(cè)試,我需要依據(jù)顯示屏上的提示,需要輸入1 進(jìn)入到分布圖的界面,系統(tǒng)就會(huì)直接調(diào)用browse_view_distribute();函數(shù),在屏幕上打印出景點(diǎn)的分布圖。圖 4.4 景點(diǎn)分布圖界面專業(yè)資料整理WORD格式13專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)軟件測(cè)試4.5

27、退出的測(cè)試原理同上,對(duì)于退出函數(shù)的測(cè)試,我需要依據(jù)顯示屏上的提示,需要輸入 4 進(jìn)入到退出的界面,系統(tǒng)就會(huì)直接調(diào)用退出的函數(shù), 顯示出“歡迎下次繼續(xù)使用! 的話,退出了系統(tǒng),其效果圖如圖 4.4 所示:圖 4.5 退出界面專業(yè)資料整理WORD格式14專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)軟件使用說(shuō)明5 軟件使用說(shuō)明對(duì)于軟件的使用,對(duì)于第一次使用軟件的游客來(lái)說(shuō),要讓他們?cè)诘谝淮斡玫臅r(shí)候就能夠快速輕松的掌握軟件的用法, 因此在程序一開(kāi)場(chǎng)運(yùn)行的時(shí)候, 我們要進(jìn)展如下的操作:1首先我會(huì)給游客提供一個(gè)可視化的菜單操作界面,在顯示屏上提示用戶其可以進(jìn)展的操作和他能夠查詢的景點(diǎn)的編號(hào)、名稱。2用戶輸

28、入了“ 1后,屏幕上會(huì)顯示出所有景點(diǎn)的位置關(guān)系平面圖。能夠大致了解景點(diǎn)的分布。3當(dāng)用戶輸入了“ 2后,進(jìn)入到查詢?nèi)我鈨删包c(diǎn)間最短路徑的界面,然后提示用戶依次輸入兩個(gè)景點(diǎn)的編號(hào), 程序就會(huì)將這兩個(gè)景點(diǎn)的最短路徑給我們表示出來(lái)并顯示出最短路徑是多少。4用戶輸入了“ 3后,進(jìn)入到查詢景點(diǎn)信息的界面,然后提示用戶輸入景點(diǎn)的編號(hào)一次限一個(gè) ,程序就會(huì)顯示出這個(gè)景點(diǎn)的詳細(xì)介紹。5當(dāng)用戶輸入了“ 4后,進(jìn)入到退出界面,這時(shí)系統(tǒng)就會(huì)顯示“歡迎下次繼續(xù)使用 ! 的提示語(yǔ),最后按下任意鍵退出系統(tǒng)。專業(yè)資料整理WORD格式15專業(yè)資料整理WORD格式*科技學(xué)院本科生課程設(shè)計(jì)參考文獻(xiàn)6 參考文獻(xiàn)【 1】 數(shù)據(jù)構(gòu)造 (

29、C 語(yǔ)言版 ) 嚴(yán)蔚敏 吳偉民 編著 清華大學(xué) 2002【 2】C程序設(shè)計(jì)經(jīng)典教程,美Deitel,H.M., 美 Deitel,P.J.著,清華大學(xué)2006【 3】Windows程序設(shè)計(jì),美 Charles Petzold著,大學(xué) 2004【 4】Data Structures: A Pseudecode Approach with C 美 Richard F.Gilberg, 美 Behrouz A.Forouzan著專業(yè)資料整理WORD格式16專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)附錄7 附錄7.1系統(tǒng)完整代碼#define INFINITY10000/*無(wú)窮大 */#defin

30、e MAX_VERTEX_NUM40#define MAX 40#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<string.h>#include "Exit.h"typedef struct ArCellint adj;/路徑長(zhǎng)度ArCell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;typedef struct/圖中頂點(diǎn)表示主要景點(diǎn),存放景點(diǎn)的編號(hào)、名稱、簡(jiǎn)介等信息,char name30;int num;char

31、introduction200;/簡(jiǎn)介infotype;typedef structinfotype vexsMAX_VERTEX_NUM;/ 景點(diǎn)AdjMatrix arcs;/路徑數(shù)組int vexnum,arcnum;/景點(diǎn)數(shù),路徑長(zhǎng)度記錄MGraph;MGraph b;/ 全局變量void cmd(void);/在主函數(shù)中用來(lái)調(diào)用其他應(yīng)用子函數(shù)的函數(shù)聲明MGraph InitGraph(void);/用來(lái)構(gòu)造學(xué)校地圖的子函數(shù)返回 MGraph類型void Menu(void);/菜單函數(shù);void Browser(MGraph *G);/調(diào)用 MGraph類型的地址,進(jìn)展void Sh

32、ortestPath_DIJ(MGraph * G);/迪杰斯特拉算法求最短路徑的子函數(shù)void Floyd(MGraph *G);/佛洛伊德算法void Search(MGraph *G);/尋找要查詢的景點(diǎn),并輸出該景點(diǎn)的信息void browse_view_distribute();/查看景點(diǎn)分布圖void tou(MGraph *G);/景點(diǎn)列表void panduan();專業(yè)資料整理WORD格式17專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)附錄/void Exit();/退出int LocateVex(MGraph *G,char* v);/定點(diǎn)位置MGraph * Creat

33、UDN(MGraph *G);/初始化圖形,承受用戶輸入void print(MGraph *G);/打印輸出子函數(shù)/*/void main(void)system("color 1f");/設(shè)置調(diào)試窗口背景和字體顏色system("mode con: cols=140 lines=130");/設(shè)置調(diào)試窗口的大小cmd();/用該函數(shù)來(lái)調(diào)用其他需要用到的函數(shù)/*/void cmd(void)/用來(lái)調(diào)用其他需要用到的函數(shù)的子函數(shù)int i;b=InitGraph();/構(gòu)造校園地圖Browser(&b);/Menu();/調(diào)用菜單函數(shù)scanf(

34、"%d",&i);while(i!=4)switch(i)case1:system("cls");/*ShortestPath_DIJ(&b);*/browse_view_distribute();Browser(&b);break;case 2:system("cls");tou(&b);Floyd(&b);Browser(&b);break; case 3:system("cls");tou(&b);Search(&b);Browser(&

35、b);break; case 4:exit(0);break;default:break;scanf("%d",&i);printf("歡迎下次繼續(xù)使用!nn");/*MGraph InitGraph(void)/構(gòu)造校園地圖MGraph G;int i,j;G.vexnum=13;/ 景點(diǎn)數(shù)量G.arcnum=21;/ 路徑數(shù)量for(i=1;i<=G.vexnum;i+)G.vexsi.num=i;/對(duì)景點(diǎn)進(jìn)展對(duì)應(yīng)編號(hào)專業(yè)資料整理WORD格式18專業(yè)資料整理WORD格式瓊州學(xué)院本科生課程設(shè)計(jì)附錄/* 對(duì)對(duì)應(yīng)的景點(diǎn)編號(hào)進(jìn)展命名,輸入簡(jiǎn)介*

36、/strcpy(G.,"行政辦公樓 ");strcpy(G.roduction,"學(xué)校的行政機(jī)構(gòu)。 ");strcpy(G.,"圖書(shū)館 ");strcpy(G.roduction,"體積龐大,是學(xué)校的標(biāo)志性建筑,目前還在建立中。 ");strcpy(G.,"果園 ");strcpy(G.roduction,"枝葉茂盛,各種新鮮水果。");strcpy(G.vexs

37、1.name,"校門 ");strcpy(G.roduction," 學(xué)校的形象,氣勢(shì)宏偉。 "); strcpy(G.," 體育運(yùn)動(dòng)區(qū) ");strcpy(G.roduction," 包括有排球場(chǎng)、籃球場(chǎng)、網(wǎng)球場(chǎng)等。 "); strcpy(G.," 教學(xué)區(qū) ");strcpy(G.roduction,"包括左教學(xué)樓、小湖、右教學(xué)樓、實(shí)驗(yàn)樓和醫(yī)務(wù)室等。 ");strcpy(G.vex

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論