(完整word版)校園導(dǎo)航系統(tǒng)_第1頁
(完整word版)校園導(dǎo)航系統(tǒng)_第2頁
(完整word版)校園導(dǎo)航系統(tǒng)_第3頁
(完整word版)校園導(dǎo)航系統(tǒng)_第4頁
(完整word版)校園導(dǎo)航系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、題號:第七題題目:校園導(dǎo)航問題1,需求分析:設(shè)計你的學(xué)校的平面圖,至少包括10個以上的景點(場所),每兩個景點間可以有不同的路,且路長也可能不同,找出從任意景點到達(dá)另一景點的最佳路徑(最短路徑)。要求:(1)以圖中頂點表示校園內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路 徑,存放路徑長度等有關(guān)信息。(2)為來訪客人提供圖中任意景點相關(guān)信息的查詢。(3)為來訪客人提供任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短路徑。(4)修改景點信息。實現(xiàn)提示:一般情況下,校園的道路是雙向通行的,可設(shè)計校園平面圖是一個無向網(wǎng)。頂點和邊均含有相關(guān)信息。選做內(nèi)容:(1)提供圖的編輯功能:增、刪景點;

2、增、刪道路;修改已有信息等。(2)校園導(dǎo)游圖的仿真界面。2,設(shè)計:2.1 設(shè)計思想:,數(shù)據(jù)結(jié)構(gòu)設(shè)計:(1)圖。采用鄰接矩陣存儲,其中圖所用到的結(jié)構(gòu)體為:typedef structSeqList vertices;/表示圖中的頂點int EdgeMaxVerticesMaxVertices;表示圖中的邊int numOfEdge;表示圖中邊的數(shù)目AdjMGraph;(2)景點。用順序表存儲。所用到的結(jié)構(gòu)體為:typedef structchar name20;頂點名稱int code;/頂點代號char introduction50;頂點信息簡介DataType;(3)景點之間的連接描述,所用

3、到的結(jié)構(gòu)體為:typedef structint row;int col;int weight;RowColWeight;用圖來存放所提供的所有景點,然后用線性表來存放每一個景點的信息,其中包括景點的名稱, 代號,信息簡介,以及其它的一些信息。這樣就將對景點的操作,變成對圖中各頂點的操作。,算法設(shè)計:關(guān)于本課題的算法,很大部分來源于這學(xué)期數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí),其中包括: 圖的創(chuàng)建,線性表的一些操作。對于具體的問題實現(xiàn),都有不同的算法,在下面的分析中, 我將詳細(xì)說明2.2 設(shè)計表示:,函數(shù)調(diào)用關(guān)系及函數(shù)說明:首先,main()函數(shù)調(diào)用Creat()函數(shù),用來創(chuàng)建圖, 然后調(diào)用menu()函數(shù)來選擇

4、用戶所要 進(jìn)行的操作。其中 menu()函數(shù)就是一個菜單供使用者來選擇他所要進(jìn)行的相關(guān)操作,比如 信息的查詢,最短路徑查詢之類。對于要求1:以圖中頂點表示校園內(nèi)各景點,存放景點名稱、代號、簡介等信 息;以邊表示路徑,存放路徑長度等有關(guān)信息。圖的創(chuàng)建設(shè)計流程圖為:main()Creat()Creat()函數(shù)原型為:void Creat(AdjMGraph *G , DataType v口,RowColWeight E, int n,int e)其中,G為所創(chuàng)建的圖結(jié)構(gòu)體對象,v為所有頂點的集合,它是 DataType型,這個類型前面已經(jīng)介紹過;E口存放著各頂點之間的連接關(guān)系,它是RowColWe

5、ight型,前面也介紹過;n表示頂點的個數(shù);e表示邊數(shù)。Creat()函數(shù)的功能就是實現(xiàn)圖的創(chuàng)建,將已知的景點的一些信息,轉(zhuǎn)換成圖的信息,并進(jìn)行存儲。對于要求2:為來訪客人提供圖中任意景點相關(guān)信息的查詢。流程圖為:menu()函數(shù)的原型為:void menu()他就是一個菜單,供用戶選擇他們所要進(jìn)行的操作。Information) 函數(shù)原型為:voidInformation)它的功能就是輸入查詢景點的信息,并調(diào)用Information。Information。函數(shù)原型為:void Information(AdjMGraph G , char scenery) G 依然是所創(chuàng)建的圖的結(jié)構(gòu)體對象,

6、后面所有的G都是表示這個意思;scenery口是在Information)中輸入的景點的名稱。此函數(shù)的功能就是根據(jù)輸入的景點的名稱來查詢其相關(guān)的信息。對于要求3:為來訪客人提供任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條 最短路徑。流程圖為:Path1()函數(shù)原型為:void Path1()它的功能就是輸入查詢景點的名稱,并調(diào)用 Path()Path ()函數(shù)原型為:void Path(AdjMGraph G ,char sceneryname口,char sceneryname1)其中sceneryname口,sceneryname1就是在 Path1()函數(shù)中所輸入的景點的名稱,這個函

7、數(shù)的功能就是通過這兩個景點的名稱找到它們在線性表中的位置,然后調(diào)用Floyd()函數(shù),查找出它們的最短路徑,并輸出所要的信息。Floyd()函數(shù)原型為:void Floyd (int cos皿 MaxVertices,int n,int weight口MaxVertices,int path口MaxVertices) 其中參數(shù)cost MaxVertices即是圖中邊的鄰接存儲矩陣,weightMaxVertices用來存放經(jīng)此算法后的各頂點間的最短路徑的值,path口MaxVertices就是每兩個頂點之間最短路徑中到達(dá)目的頂點的前一個頂點的位置。Path()函數(shù)中的輸出信息就是據(jù)此而來。對

8、于要求4:修改景點信息。流程圖為:menu()* Modify()Modify()void Modify() 它不帶任何參數(shù),功能是通過手動輸入景點名稱,然后找到景點的 存儲空間,然后在修改相應(yīng)的信息。對于選做要求:增加景點。其工作流程圖為:AddVertic()函數(shù)原型為:void AddVertic()他不帶任何參數(shù),該函數(shù)的功能是在這個函數(shù)里面輸入景點的信息,然后調(diào)用ListInsert()函數(shù),將所要增加的頂點信息插入到線性表中。ListInsert()函數(shù)原型為:void ListInsert(SeqList *L, int i, DataType x) 參數(shù) L 表示頂點存儲的線性

9、表,i 表示要插入白位置,x表示要插入的景點的信息。同時我在插入頂點時也將他與其他頂點之間的距 離設(shè)置為MaxWeight ,這樣做主要是為了方便在Floyd函數(shù)里面求最短路徑對于選做要求:刪除景點。其工作流程圖為DeleteVertic()函數(shù)原型為:void DeleteVertic()他不帶任何參數(shù),該函數(shù)的功能就是在函數(shù)體里面輸入要刪除的景點的名稱,然后根據(jù)名稱找到該景點在線性表中的存儲位置,然后調(diào)用線性表中的ListDelete ()函數(shù)進(jìn)行相應(yīng)頂點的刪除。ListDelete ()函數(shù)原型為:ListDelete(SeqList *L, int i, DataType *x) 其中

10、參數(shù) L為存放頂點信息的線性表,i表示要刪除頂點在線性表中的存放位置,,x就是要刪除的那一個景點。它的功能就是從線性表中刪除指定的頂點。對于選做要求:增、刪道路,流程圖為:AddRoad()和 DeleteRoad()兩函數(shù)原型為:void AddRoad()和void DeleteRoad()。這兩個函數(shù)都不帶參數(shù),它們的功能就是在這兩個函數(shù)里面輸入要刪除要增加或者的邊連接的兩個景點的名稱,然后在線性表中找到這兩個景點的相對存儲空間,最后調(diào)用 InsertEdge ()或者DeleteEdge ()函數(shù)。InsertEdge ()和 DeleteEdge ()兩函數(shù)原型為:void Inse

11、rtEdge(AdjMGraph *G , int v1, int v2, int weight)void DeleteEdge(AdjMGraph *G, int v1, int v2) 這兩個函數(shù)中同名參數(shù)所代表的意義是相同的,其中v1, v2是所輸入景點在線性表中的相對位置;weight就是增加的邊的權(quán)值函數(shù)接口說明我所設(shè)計整個程序就是一些子函數(shù)的集合,每個功能都對應(yīng)一個或者幾個子函數(shù),他們之間可以沒有任何限制,只要能保證程序正確運(yùn)行就可以調(diào)用,特別是 AdjMGraph.h ,AdjMGraph.h和SeqList.h頭文件之中的函數(shù),他們被很多函數(shù)調(diào)用過。這其中都沒有任何 特殊類型的

12、函數(shù)2.3 詳細(xì)設(shè)計:根據(jù)題目分析,對于信息查詢與修改功能,設(shè)計如下:1,輸入景點名稱2,從線性表頭掃描到表尾,if(找到該景點)輸出景點結(jié)構(gòu)體信息else輸出提示信息找不到該頂點實現(xiàn)查找最短路徑,設(shè)計如下:1, 景點名稱2,根據(jù)輸入的信息找到它們所在的線性表中的位置3,調(diào)用Floyd算法找出最短路徑4,輸出信息實現(xiàn)增刪景點功能,設(shè)計如下:1,增加或者刪除景點的名稱2, if(輸入景點),將景點信息保存在相應(yīng)的結(jié)構(gòu)體中,并插入到線性表尾;if(刪除景點),找到景點在線性表中所在的位置,然后將景點信息從線性表中刪除實現(xiàn)增刪道路功能,設(shè)計如下:1,入增加或刪除道路連接的兩個景點的名稱;2,找到它們

13、的相對位置;3, if(刪除道路),將連接它們的邊置為 MaxWeight ;if(增加道路),將輸入的邊值賦給相應(yīng)的鄰接矩陣表;3,調(diào)試分析: ,調(diào)試過程中遇到的問題與解決方案:1,關(guān)于最短路徑的輸出問題。在進(jìn)行最短路徑輸出時,我剛開始時只能正序輸出,具體的描述為:比如,我要查尋從東區(qū)到東湖的最短路徑,那么它能正確輸出結(jié)果,他的形 式為:東區(qū) 一一主樓 一一西體育館 一一隧道 一一北大門 一一東湖。但是,當(dāng)我逆 向輸出時,得到的結(jié)果卻有點問題,經(jīng)過分析調(diào)試后,找到了錯誤的所在。在找最短路徑的時候我用的是Floyd算法,在這個算法中有三重循環(huán),形式均為:for(k=0;k食堂 一一東湖。經(jīng)過分

14、析調(diào)試后,其原因也是出在Floyd算法那,在 Floyd 算法中,有這么一個判斷if(weightijweightik+weightkj),由于我在輸入新景點信息時并沒有建立它與其它景點之間的連接信息,所以在圖中,該新景點與其它景點之間的邊得連接信息是空的,也就是說在鄰接矩陣中,它的邊得信息是空的,那么在進(jìn)行 if(weightijweightik+weightkj)判斷時 weight新增景點序號其它景點序號的值將是一個很大的負(fù)數(shù),所以最短路徑將會出錯。解決這個問題的方 法就是在增加新景點時就將它與其它景點之間的邊(距離)設(shè)置為MaxWeight,這時如果再用Floyd函數(shù)進(jìn)行最短路徑的求解

15、時就不會再出現(xiàn)問題了。另外,在做這個題時也還出現(xiàn)過一些其他的小問題,不過都比較容易解決,這里我就不再列出了,算法的時空復(fù)雜度分析對應(yīng)題目的要求,我總共提供了八個選項操作對于每一個操作的分析如下:1 ,相關(guān)信息的查詢。在這個操作中允許使用者輸入一個景點名稱,然后再根據(jù)景點名 稱來或取其相關(guān)的信息,這個操作要掃描線性表,其時間復(fù)雜度為o(n),空間復(fù)雜度為o(n);2,最短路徑查詢。實現(xiàn)這個功能用到了Floyd算法,他用到了一個三重的for()循環(huán),故其時間復(fù)雜度為 o(nA3),空間復(fù)雜度為。(1);3,修改景點信息。要修改信息,必須首先找到景點所在的存儲位置,那么就需要掃描 線性表,其時間復(fù)雜

16、度為o(n),空間復(fù)雜度為o(1);4,增加景點。增加景點信息時,直接將此景點結(jié)構(gòu)體信息插入到線性表表尾,而不需 要進(jìn)行遍歷,其時間復(fù)雜度與空間復(fù)雜度均為o(1);5,刪除景點。刪除景點時必須找到所要刪除景點所在的位置,這樣就必須遍歷線性表,除此之外,刪除后線性表還要進(jìn)行移動操作,其時間復(fù)雜度為o(n),空間復(fù)雜度為 o(n1);6,增加道路。增加道路也要掃描線性表,找到要增加路的兩景點的存儲位置,然后再 根據(jù)找到的存儲位置去改變鄰接矩陣的邊的值,改變鄰接矩陣的時間復(fù)雜度為o(1),其總時間消耗在線性表的掃描上,故最終其時間復(fù)雜度為o(n),空間復(fù)雜度為o(1);7,刪除道路。刪除道路和增加道

17、路類似,都是先找到存儲位置,然后再改變鄰接矩陣,它的時空復(fù)雜度分別為o(n) , o(1);8,瀏覽所有景點。瀏覽所有景點的實質(zhì)就是從頭到尾遍歷線性表,然后輸出遍歷到的 節(jié)點的信息,其時間復(fù)雜度為o(n),空間復(fù)雜度為。(1)。4,用戶手冊:使用說明:當(dāng)用戶將程序經(jīng)過編譯,連接后,點擊運(yùn)行,在DOS環(huán)境里面將看到一個選項菜單,菜單里面提供了 8種操作,同時輸出了一行提示信息:請選擇您想進(jìn)行的操作。 然后用戶可以輸入一個 18之間的數(shù)字進(jìn)行選擇性的操作,例如,您想進(jìn)行信息的查詢 操作,您可以從鍵盤輸入數(shù)字 1;當(dāng)然,一般而言先應(yīng)該進(jìn)行“瀏覽所有景點名稱”操作。 如果您選擇了瀏覽所有景點名稱操作,

18、在屏幕上將會顯示出10個景點的名稱,這些景點是事先加進(jìn)去的,用戶可以對這些景點進(jìn)行任何程序所提供的操作。下面,我將詳細(xì)介紹本程序的使用方法:在瀏覽景點后,菜單將會繼續(xù)顯示出來,為 您提供操作選擇。如果您想進(jìn)行“相關(guān)信息的查詢”操作,輸入數(shù)字1,然后程序?qū)嵝涯斎氩樵兙包c的名稱,在您輸入景點名稱后回車即可。如果您想進(jìn)行“最短路徑查詢”操作,首先輸入數(shù)字2,然后程序?qū)嵝涯斎氩樵兊木包c的名稱,您輸入按要求輸入所提供的兩個景點名稱即可, 要注意的是景點名稱間 以空格隔開,最后程序就會告訴您最短的路徑,以及最短路的長度。如果您想修改景點的信息,同樣先輸入數(shù)字3,然后程序就會提醒您輸入所要修改景

19、點的名稱,您可以根據(jù)要求輸入一個景點的名稱,然后回車,之后屏幕上就會顯示您所輸入的景點的所有信息,同時會有三個修改選項供用戶選擇,然后您可以輸入13之間的一個數(shù)字進(jìn)行選擇性的修改。比如,您可以輸入1對景點名稱進(jìn)行修改,修改完后又會返回到菜單項繼續(xù)選擇。如果您想進(jìn)行“增加景點”操作,可以輸入數(shù)字4,然后程序就會提示您輸入新增加的景點的名稱,代號,信息簡介,各種輸入之間以空格隔開。當(dāng)輸入完畢后回車,景點也 就成功加入了,然后用戶可以再次選擇第八項操作瀏覽所有景點名稱,檢測新輸入的景點是否已經(jīng)成功添加。如果您想進(jìn)行“刪除景點”操作,可以輸入數(shù)字5,回車后系統(tǒng)將會提示您輸入要刪除的景點的名稱,您可以輸

20、入您想要刪除的景點的名稱,然后回車,這樣刪除景點的操作就已經(jīng)完成,您同樣可以選擇第八項操作,檢測是否成功刪除了景點。如果您想進(jìn)行“增加道路”操作,您可以輸入數(shù)字 6,然后回車,系統(tǒng)將會提示您 輸入增加道路所連接的兩個景點的名稱, 輸入兩景點名稱后回車, 然后系統(tǒng)又會提示輸入增 加道路的長度,輸入后回車,這時增加道路操作也就完了。 用戶如果想要檢查道路是否增加 成功可以進(jìn)行“最短路徑查詢”操作。如果您想進(jìn)行“刪除道路”操作,您可以輸入數(shù)字 7,然后系統(tǒng)就會提示您輸入刪 除道路所連接的兩景點的名稱, 輸入名稱后回車即可,當(dāng)然,如果您想檢測刪除是否成功您 可以選擇“最短路徑查詢”操作。備注:經(jīng)過測試

21、,本程序的所有操作都能正常執(zhí)行,您可以選擇性的對他進(jìn)行操作, 同時也可以混合著操作,混合操作是檢測錯誤的最好的一個方法。5,測試數(shù)據(jù)及測試結(jié)果:菜單顯示為:* 菜單 *1,相關(guān)信息查詢2,最短路徑查詢3,修改景點信息4,增加景點5,刪除景點6,增加道路7,刪除道路8,瀏覽所有景點名稱*請選擇您想進(jìn)行的操作:8東區(qū) 博物館主樓 圖書館西體育館隧道 北綜 北體育館北大門東湖請選擇您想進(jìn)行的操作:1請輸入您所想要查詢的景點的名稱:博物館您輸入的景點的名稱是:博物館您輸入的景點的代碼為:11您輸入的景點的相關(guān)信息有: 有各種化石請選擇您想進(jìn)行的操作:2請輸入你要查詢的兩景點的名稱: 東區(qū) 東湖最短路徑

22、為:108從東區(qū)點到東湖景點的最短路徑為:東區(qū)一一 主樓一一 體育個t 隧道一一 北大門一一 東湖請選擇您想進(jìn)行的操作:3您想修改的景點的名稱為:隧道您輸入的景點的名稱是:隧道您輸入的景點的代碼為:15您輸入的景點的相關(guān)信息有:自主修建您想修改什么信息?1,名稱;2,代號;3,信息簡介:1請輸入要修改的的景點的新名稱:地大隧道請選擇您想進(jìn)行的操作:8東區(qū) 博物館主樓 圖書館西體育館地大隧道北綜 北體育館 北大門東湖請選擇您想進(jìn)行的操作:4請輸入增加節(jié)點的名稱,代號,信息簡介北一樓34教師辦公室請選擇您想進(jìn)行的操作:1請輸入您所想要查詢的景點的名稱:北一樓您輸入的景點的名稱是:北一樓您輸入的景點

23、的代碼為:34您輸入的景點的相關(guān)信息有:教師辦公室請選擇您想進(jìn)彳T的操作:5請輸入您要刪除景點的名稱:北一樓請選擇您想進(jìn)行的操作:8東區(qū) 博物館主樓 圖書館西體育館地大隧道北綜 北體育館北大門東湖請選擇您想進(jìn)行的操作:6輸入您要增加的道路鏈接的兩個景點名稱:東區(qū) 北綜輸入您要增加的道路的長度:50請選擇您想進(jìn)行的操作:2請輸入你要查詢的兩景點的名稱:東區(qū) 北綜最短路徑為:50從東區(qū)點到北綜景點的最短路徑為:東區(qū) 北綜請選擇您想進(jìn)行的操作:7輸入您要刪除的道路鏈接的兩個景點名稱:東區(qū) 北綜請選擇您想進(jìn)行的操作:2請輸入你要查詢的兩景點的名稱:東區(qū) 北綜最短路徑為:103從東區(qū)點到北綜景點的最短路

24、徑為:東區(qū)一一 主樓一一 體育個t 地大隧道一一 北大門一一 北綜156,源程序清單:school.cpp AdjMGraph.h AdjMGraphCreat.h SeqList.hFloyd.h Operation.hInquiry.h/線性表的最大數(shù)組空間/景點個數(shù)所允許的最大值無窮邊權(quán)值程序源文件圖的相關(guān)操作頭文件創(chuàng)建圖的頭文件線性表操作頭文件/Floyd算法頭文件/自己所定義的一些操作的頭文件/查詢信息包含的頭文件/詳細(xì)school.cpp程序源文件#include #include #include #define MaxSize 20#define MaxVertices 20#

25、define MaxWeight 1000 #include Floyd.h#include AdjMGraphCreat.h#include Inquiry.hAdjMGraph G;#include Operation.hvoid main() 初始景點信息DataType a尸東區(qū),10,研究生院,博物館,11,有各種化石,主樓,12,學(xué) 校的標(biāo)志建筑 ,圖書館,13,”藏書50萬冊,西體育館,14,”主要供西區(qū)學(xué) 生使用,隧道,15,自主修建,北綜”,16,”北區(qū)標(biāo)志樓,北體育館,17, 主要供北區(qū)學(xué)生使用,北大門,18,外出通道,東湖,19,武漢最美的湖;鄰接矩陣的表示RowColW

26、eightrcw尸0,1,20,0,2,30,0,3,35,1,0,20,1,3,20,2,0,30,2,3,15,2 ,4,30,3,0,35,3,1,20,3,2,15,3,4,30,4,2,30,4,3,30,4,5,10,5,4,10,5,6,35 ,5,8,8,6,5,35,6,7,20,6,8,25,6,9,5,7,6,20,7,8,10,8,5,8,8,6,25,8,7,10,9,6,5;int n=10,e=28; 景點數(shù)與邊數(shù)Creat(&G,a,rcw,n,e);構(gòu)造圖menu();/詳細(xì)Floyd.h頭文件void Floyd(int cost口MaxVertices,i

27、nt n,int weight口MaxVertices,int path口MaxVertices)初始化int i,j,k;for(i=0;in;i+)for(j=0;jn;j+)weightij=costij;pathij=-1;/n次遞推for(k=0;kn;k+)for(i=0;in;i+)for(j=0;jweightik+weightkj)weightij=weightik+weightkj;pathij=k;/詳細(xì)Inquiry.h 頭文件void Information(AdjMGraph G , char scenery)int i;for(i=0;iG .vertices.s

28、ize;i+)if(strcmp(G .,scenery)=0)printf(您輸入的景點的名稱是:sn,G.);printf(您輸入的景點的代碼為:dn,G.vertices.listi.code);printf(您輸入的景點的相關(guān)信息有:snn,G.roduction);break;if(i=G.vertices.size) printf(您所查詢的景點不在我們所提供的范圍內(nèi)!nn);void Path(AdjMGraph G,char sceneryname口,char sce

29、neryname1) int i,j,k,n,m,count=0; n=G.vertices.size;int weightMaxVerticesMaxVertices,pathMaxVerticesMaxVertices;int valueMaxVertices;for(i=0;i%sn,sceneryname,sceneryname1); else while(m!=-1)valuecount=m;if(j,sceneryname);if(j=0;i-)printf(%s,G.);printf(%sn,sceneryname1); elsef

30、or(i=0;i,G.);printf(%sn,sceneryname1);/詳細(xì)Operation.h頭文件 void menu();/查詢景點信息的函數(shù)void Information1()char sceneryname20;printf(請輸入您所想要查詢的景點的名稱:);scanf(%s,sceneryname);Information(G ,sceneryname); menu();/查詢最短路徑的函數(shù)void Path1()char sceneryname20,sceneryname120;printf(請輸入你要查詢的兩景點的名稱

31、:);scanf(%s%s,sceneryname,sceneryname1);Path(G,sceneryname,sceneryname1);menu();printf(n);修改景點信息的函數(shù)void Modify() char sceneryname20; int i,x;printf(您想修改的景點的名稱為:);scanf(%s,sceneryname);Information(G ,sceneryname);for(i=0;iG .vertices.size;i+) if(strcmp(G .,sceneryname)=0) );printf(

32、您想修改什么信息?1,名稱;2,代號;3,信息簡介scanf(%d,&x);if(x=1) printf(請輸入要修改的的景點的新名稱:力scanf(%s,G.);break;if(x=2)printf(請輸入要修改的的景點的新代號:力scanf(%d,&(G .vertices.listi.code); break;if(x=3)printf(請輸入要修改的的景點的新信息簡介:”);scanf(%s,G.roduction); break; menu();增加景點的函數(shù)void AddVertic()int i,k;D

33、ataType ver;printf(請輸入增加節(jié)點的名稱,代號,信息簡介:n);scanf(%s%d%s,,&(ver.code),roduction);ListInsert(&(G .vertices), G.vertices.size, ver);k= G.vertices.size-1;for(i=0;iG .vertices.size;i+)if(k!=i)G.Edgeki=MaxWeight;G.Edgeik=MaxWeight;else G.Edgeki=0;menu();void DeleteVertic()DataType x;char name

34、20;int i,k;printf(請輸入您要刪除景點的名稱:);scanf(%s,name);for(i=0;iG.vertices.size;i+)if(strcmp(G .,name)=0)k=i;ListDelete(&(G .vertices),k,&x);for(i=0;iG .vertices.size;i+)if(k!=i)G.Edgeki=MaxWeight;G.Edgeik=MaxWeight;else G.Edgeki=0;menu();刪除景點的函數(shù)void AddRoad()char name20,name120;int length,i,j,k;printf(輸入您要增加的道路鏈接的兩個景點名稱:);scanf(%s%s,na

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論