校園導(dǎo)游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第1頁(yè)
校園導(dǎo)游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第2頁(yè)
校園導(dǎo)游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第3頁(yè)
校園導(dǎo)游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第4頁(yè)
校園導(dǎo)游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、校園導(dǎo)游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)目錄1.設(shè)計(jì)要求2.1 需求分析2.2 概要設(shè)計(jì)2.3 各個(gè)模塊名稱(chēng)和功能2.4 系統(tǒng)導(dǎo)游主界面2.4.1 前臺(tái)系統(tǒng)2.4.2 后臺(tái)系統(tǒng)2.4.3 退出系統(tǒng)3 實(shí)驗(yàn)總結(jié)參考文獻(xiàn)附件1設(shè)計(jì)要求設(shè)計(jì)一個(gè)校園導(dǎo)游程序,為來(lái)訪(fǎng)的客人提供各種信息查詢(xún)服務(wù)。2.1需求分析設(shè)計(jì)學(xué)校的校園平面圖。選取若干個(gè)有代表性的景點(diǎn)抽象成一個(gè)無(wú)向帶權(quán)圖(無(wú)向網(wǎng)),所含景點(diǎn)不少于30個(gè)。以圖中頂點(diǎn)表示校內(nèi)各景點(diǎn),邊上的權(quán) 值表示兩景點(diǎn)之間的距離。矚慫潤(rùn)厲釤瘞睞櫪廡賴(lài)。存放景點(diǎn)代號(hào)、名稱(chēng)、簡(jiǎn)介等信息供用戶(hù)查詢(xún)。為來(lái)訪(fǎng)客人提供圖中任意景點(diǎn)相關(guān)信息的查詢(xún)。為來(lái)訪(fǎng)客人提供圖中任意景點(diǎn)之間的問(wèn)路查詢(xún)??梢詾樾@

2、平面圖增加或刪除景點(diǎn)或邊,修改邊上的權(quán)值等。景點(diǎn)距離圖2.2概要設(shè)計(jì)校園旅游模型是由景點(diǎn)和景點(diǎn)之間的路徑組成的, 所以這完全可以用數(shù)據(jù)結(jié)構(gòu)中 的圖來(lái)模擬。用圖的結(jié)點(diǎn)代表景點(diǎn),用圖的邊代表景點(diǎn)之間的路徑。所以首先應(yīng)設(shè)計(jì)一 個(gè)圖類(lèi)。結(jié)點(diǎn)值代表景點(diǎn)信息,邊的權(quán)值代表景點(diǎn)間的距離。結(jié)點(diǎn)值及邊的權(quán)值用順序 表存儲(chǔ),所以需要設(shè)計(jì)一個(gè)順序表類(lèi)。 本系統(tǒng)需要查詢(xún)景點(diǎn)信息和求一個(gè)景點(diǎn)到另一 個(gè)景點(diǎn)的最短路徑長(zhǎng)度及路線(xiàn),為方便操作,所以給每個(gè)景點(diǎn)一個(gè)代碼,用結(jié)構(gòu)體類(lèi)型 實(shí)現(xiàn)。計(jì)算路徑長(zhǎng)度和最短路線(xiàn)時(shí)可用迪杰斯特拉(Dijkastra)算法實(shí)現(xiàn)。最后用switch選擇語(yǔ)句選擇執(zhí)行瀏覽景點(diǎn)信息或查詢(xún)最短路徑。 聞創(chuàng)溝

3、燴鐺險(xiǎn)愛(ài)氌譴凈。1、主界面設(shè)計(jì)為了實(shí)現(xiàn)校園導(dǎo)游系統(tǒng)各功能的管理, 首先設(shè)計(jì)一個(gè)含有多個(gè)菜單項(xiàng)的主控菜單 子程序以鏈接系統(tǒng)的各項(xiàng)子功能,方便用戶(hù)使用本系統(tǒng)。 殘騖樓諍錈瀨濟(jì)溆塹籟。2、存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)采用圖結(jié)構(gòu)類(lèi)型(mgraph )存儲(chǔ)抽象校園圖的信息。其中,各景點(diǎn)間的鄰接 關(guān)系用圖鄰接矩陣類(lèi)型(adjmatrix)存儲(chǔ);景點(diǎn)(頂點(diǎn))信息用結(jié)構(gòu)數(shù)組 (vexs)存儲(chǔ),其 中每個(gè)數(shù)組元素是一個(gè)結(jié)構(gòu)變量,包含景點(diǎn)編號(hào)、景點(diǎn)名稱(chēng)及景點(diǎn)介紹三個(gè)分量;圖的 頂點(diǎn)個(gè)數(shù)及邊的條數(shù)由分量 vexnum、arcnum 表示,它們是整型數(shù)據(jù)。 釅錒極額閉鎮(zhèn)檜豬訣 錐。3、系統(tǒng)功能設(shè)計(jì)本系統(tǒng)除了要完成圖的初始化功能

4、外還設(shè)置了 9個(gè)子功能。圖的初始化由 initgraph() 函數(shù)實(shí)現(xiàn)。 依據(jù)讀入的圖的頂點(diǎn)個(gè)數(shù)和邊的條數(shù), 分別初始化圖結(jié)構(gòu)中圖的頂點(diǎn)數(shù)組和 圖的鄰接矩陣。 9 個(gè)子功能的設(shè)計(jì)描述如下。 彈貿(mào)攝爾霽斃攬磚鹵廡。 景點(diǎn)信息查詢(xún)景點(diǎn)信息查詢(xún)由函數(shù) seeabout()實(shí)現(xiàn)。該功能根據(jù)用戶(hù)輸入的景點(diǎn)編號(hào)輸出該景點(diǎn) 的相關(guān)信息。如景點(diǎn)編號(hào)、名稱(chēng)等。 謀蕎摶篋飆鐸懟類(lèi)蔣薔。 學(xué)校景點(diǎn)介紹學(xué)校景點(diǎn)介紹由函數(shù) browsecampus()實(shí)現(xiàn)。當(dāng)用戶(hù)選擇該功能,系統(tǒng)即能輸出學(xué)校 全部景點(diǎn)的信息:包括景點(diǎn)編號(hào)、景點(diǎn)名稱(chēng)及景點(diǎn)介紹。 廈礴懇蹣駢時(shí)盡繼價(jià)騷。 相鄰的景點(diǎn)及其距離為使游客能夠知道其周?chē)木包c(diǎn)和路徑

5、, 方便他們迅速知道其所在位置和周 圍信息 查看瀏覽線(xiàn)路查看瀏覽線(xiàn)路由函數(shù) shortestpath_dij()實(shí)現(xiàn)。該功能采用迪杰斯特拉(Dijkst算 法實(shí)現(xiàn)。當(dāng)用戶(hù)選擇該功能,系統(tǒng)能根據(jù)用戶(hù)輸入的起始景點(diǎn)編號(hào),求出從該景點(diǎn)到其 他景點(diǎn)的最短路徑線(xiàn)路及距離。 當(dāng)用戶(hù)選擇該功能,系統(tǒng)能根據(jù)用戶(hù)輸入的起始景點(diǎn)及 目的景點(diǎn)編號(hào),查詢(xún)?nèi)我鈨蓚€(gè)景點(diǎn)之間的最短路徑線(xiàn)路及距離。煢楨廣鰳鯡選塊網(wǎng)羈淚。 更改圖信息修改一個(gè)已有景點(diǎn)的相關(guān)信息、刪除一個(gè)景點(diǎn)及其相關(guān)信息、刪除一條路徑、加一 條路徑、修改路徑長(zhǎng)度、添加一個(gè)景點(diǎn) 鵝婭盡損鵪慘歷蘢鴛賴(lài)。 數(shù)據(jù)安全防范設(shè)置密碼,能保證數(shù)據(jù)不會(huì)被隨便更改,由pass()

6、判定密碼是否正確,可由changepw() 函數(shù)修改密碼,初始密碼為 gdufsx籟叢媽羥為贍債蟶練淨(jìng)。 寫(xiě)入文件并保存修改打開(kāi)該軟件,若沒(méi)有g(shù)raph.txt,則會(huì)由系統(tǒng)初始化生成一個(gè) graph.txt,若已存在該 文檔會(huì)由該文檔中的內(nèi)容初始化系統(tǒng)。 預(yù)頌圣鉉儐歲齦訝驊糴。 恢復(fù)初始狀態(tài)若數(shù)據(jù)已經(jīng)顯得很雜亂并很難修理,就可以啟用這個(gè)功能 退出即退出校園導(dǎo)游系統(tǒng),由 exit(0) 函數(shù)實(shí)現(xiàn)2.3 函數(shù)結(jié)構(gòu)void initgraph(mgraph &G);/ 依據(jù)讀入的圖的頂點(diǎn)個(gè)數(shù)和邊的條數(shù), 滲釤嗆儼勻諤鱉調(diào)硯錦。/分別初始化圖結(jié)構(gòu)中圖的頂點(diǎn)向量數(shù)組和圖的鄰接矩陣void bro

7、wsecampus(mgraph G); / 輸出學(xué)校全部景點(diǎn)的信息 :編號(hào)、名稱(chēng)、介 紹 鐃誅臥瀉噦圣騁貺頂廡。void cgraph(mgraph &G,Password &pw);/ 構(gòu)造無(wú)向圖和讀寫(xiě)文件 graph。 txt 擁締鳳 襪備訊顎輪爛薔。void writetxt(mgraph &G,Password &pw); / 寫(xiě)入文件int pass(Password pw);/ 認(rèn)證密碼的正確與否,正確返回 1,錯(cuò)誤返回 0void reception(mgraph &G);/ 前臺(tái)服務(wù)函數(shù)void seeabout(mgraph &

8、;G);/ 景點(diǎn)信息/ 相鄰的景點(diǎn)及其距離 壇摶鄉(xiāng)void shortestpath_dij(mgraph G); / 該景點(diǎn)到其他景點(diǎn)的最短路徑線(xiàn)路及距離 贓熱 俁閫歲匱閶鄴鎵騷。void near(mgraph G);囂懺蔞鍥鈴氈淚。/ 修改一個(gè)已有景點(diǎn)的相關(guān)信息 買(mǎi)/ 刪除一個(gè)景點(diǎn)及其相關(guān)信 綾鏑鯛駕void changegraph(mgraph &G,Password &pw); / 后臺(tái)函數(shù),并調(diào)用 蠟變黲癟報(bào)倀鉉 錨鈰贅。void changeP(mgraph &G,Password &pw);鯛鴯譖曇膚遙閆擷凄。void deleteP(mgrap

9、h &G,Password &pw);櫬鶘蹤韋轔糴。void deleteL(mgraph &G,Password &pw); / 刪除一條路徑 驅(qū)躓髏彥浹綏譎飴憂(yōu)錦 void addL(mgraph &G,Password &pw); / 添加一條路徑 void changeL(mgraph &G,Password &pw); / 修改路徑長(zhǎng)度 void Add(mgraph &G,Password &pw); / 添加一個(gè)景點(diǎn) void changepw(mgraph &G,Password &

10、pw); /修改密碼void regraph(mgraph &G,Password &pw);/ 恢復(fù)初始狀態(tài)2.42.4校園導(dǎo)游主界面程序運(yùn)行,后臺(tái)對(duì)圖結(jié)構(gòu)進(jìn)行初始化,運(yùn)行結(jié)果如圖主界面2.4.10前臺(tái)系統(tǒng)前臺(tái)系統(tǒng)是游客瀏覽查詢(xún)界面。如圖2.4.10 E:匚類(lèi)語(yǔ)言W十十橙園號(hào)晞系統(tǒng)設(shè)計(jì)與室現(xiàn)嵌國(guó)尋造系昨設(shè)計(jì)與主現(xiàn)刊已十 八詢(xún)二旦備 軍甲2.4.10游客瀏覽界面2.4.11個(gè)別景點(diǎn)的相關(guān)信息查詢(xún)景點(diǎn)的相關(guān)信息查詢(xún)是通過(guò)seeabout ()函數(shù)來(lái)調(diào)用輸出的,在前臺(tái)系統(tǒng)輸入 1,輸入任一景點(diǎn)編號(hào)即可知道其信息。運(yùn)行結(jié)果如圖2.4.11貓蠆驢繪燈鮒誅髏貺廡。2.4.

11、11信息查詢(xún)2412任意兩景點(diǎn)間最短路徑查詢(xún)根據(jù)用戶(hù)的需求,在用戶(hù)輸入了起點(diǎn)和終點(diǎn)后計(jì)算出最短路徑是哪一條路徑。 例如起點(diǎn)是3.中國(guó)銀行,終點(diǎn)是15.教學(xué)樓A棟。運(yùn)行結(jié)果如圖2.4.12鍬籟饗逕瑣筆 襖鷗婭薔。ey臨話(huà)言yj+t校園目游盍筑總t乞?qū)殦酙疫園弓游蔗航慢計(jì)與賣(mài)現(xiàn)用xe口陸34=討,入-as起,'喙寫(xiě)區(qū)工2.4.12任意兩景點(diǎn)間最短路徑查詢(xún)2.4.13輸出所有景點(diǎn)信息為方便用戶(hù)一次性知道所有景點(diǎn)信息,設(shè)置了查詢(xún)所有景點(diǎn)的信息如圖2.4.132413輸出所有景點(diǎn)信息2414相鄰的景點(diǎn)及其距離為使游客能夠知道其周?chē)木包c(diǎn)和路徑,方便他們迅速知道其所在位置和周?chē)畔?。如圖2.4.1

12、4二從士芒弓+ 咗勺=戶(hù)肅疔七5JU戶(hù)肅疔比-exrA 7 3 3 6 9 51 s 2 2 2 c*壬十E-TT.-K仁 子團(tuán)正 « w t d- 7 0 12 2 2 1F 十rv-2 6 3 1 6崗誕鬱埜莎出二 一" EB-. * t X/* XZ C.6 9 2 s S2.4.14相鄰的景點(diǎn)及其距離2.4.20后臺(tái)系統(tǒng)輸入密碼gdufsx,進(jìn)入為防止他人隨意修改景點(diǎn)信息,需密碼驗(yàn)證身份,初始密碼為 后臺(tái)系統(tǒng)后可修改密碼,如圖 2.4.200構(gòu)氽頑黌碩飩薺齦話(huà)騖。EACSkC+瘢園導(dǎo)確系痂計(jì)與實(shí)現(xiàn)XK園導(dǎo)濡戻銃諂計(jì)與翊2疣¥5 ( 止凰.1SS3 一H&#

13、39;J卞5 J12 8 £ 4 424200輸入密碼后臺(tái)服務(wù)后臺(tái)服務(wù)具有以下功能:修改一個(gè)已有景點(diǎn)的相關(guān)信息;刪除一個(gè)景點(diǎn)及其相關(guān)信息;刪除一條路徑;添加一條路徑;修改路徑長(zhǎng)度;添加一個(gè)景點(diǎn);修 改密碼;恢復(fù)初始狀態(tài)。如圖2420。功能如圖2.4.21至2428輒嶧陽(yáng)檉籪癤網(wǎng)儂號(hào)澩。EC矣語(yǔ)貳+様園導(dǎo)詰豳設(shè)計(jì)與實(shí)現(xiàn)M2園導(dǎo)那系趙計(jì)與實(shí)現(xiàn)曰強(qiáng)財(cái)【除期后臺(tái)系域< I >修改一 g肴爭(zhēng)點(diǎn)的楊詐息 +匸一尋加一士憐;視<3>mW(7>2.4.20后臺(tái)服務(wù)告廳W*正校門(mén)腿切繙管護(hù)路的會(huì)交車(chē)!乳并鑼仃ij7>*8 朮旳疇場(chǎng)29.7$ -i ?7ki'

14、請(qǐng)輸人餾董議貝宿丘,觀(guān)耳蟲(chóng)(:蜒翳言直+ +評(píng)曲血趙計(jì)與賓辭杏嶄*-t =二£仲上丄一叩価U-fS-IcIYT僞”:心昱匚n.r'-fK-ji?h.g*WE.礁17-P®Llj®-仁2叫:特2#取二孕:'2- 駐*u23iip応瀾If;處侖呂生_ 鶉羯龍的備耳工"宜一 pBi&SlK.野胡越封廿刑匕檢操坐融廖地鐵; 肇豊翹岸早悍評(píng)撤.不侃存槪2.4.21修改一個(gè)已有景點(diǎn)的相關(guān)信息ElCbC十+X+2S導(dǎo)曲點(diǎn)烷f&tf與冥鹹桂回導(dǎo)15吞SE1&1汁與5E馳exe園£三咖 i靈海扌2,5 廳 嚴(yán)吉餾:! -&

15、quot; 2- & tt 1 4 7 3 ¥111-231一 一廣外Q險(xiǎn)一17.M11LUW 加.瞬珀71鳥(niǎo)瑚23.喑心U »-X= 刖冷貢駆ft踏十號(hào)SB翳善保#抑,2422刪除一個(gè)景點(diǎn)及其相關(guān)信息<>L¥x27 <> 281C4g軸有也+ "皈園導(dǎo)血欣計(jì)與實(shí)現(xiàn)誡園導(dǎo)游靜瞬計(jì)與兵現(xiàn),己咫2H <> 2V 2t4ii如.a卓別貳丁弟上壬長(zhǎng)出圖個(gè)址點(diǎn)晦 里崔貳豪H供戻如*下仁b柵禪徇朽話(huà)老上注r =2423刪除一條路徑乞卞詡匕尸詁f 上亠 n F-.H -:3(i «詩(shī)輸入.暫瑋加的路左卡;席2圈&#

16、39;輕凰存異徉札不作椀E:也異進(jìn)右垃+ +假園導(dǎo)甜黑隔t與如R展園導(dǎo)ft曲»般計(jì)與趣ese2424添加一條路徑Ec#SWc "誦疽銅痣蛻設(shè)ifBEMiM號(hào)濟(jì)曲曲十KSeie <>23amze <>2131 <->11li?12 <>33強(qiáng)22 <->2413224 < >2?2B3M <-匚一>陽(yáng)隨託 C->361335 <>2f2325 <>陰RH祐吃>291«1托 <->29312班 C >ma? >3Bn2

17、1;3V 碼斗請(qǐng)輸I電務(wù)改的茹徑淫癢的兩亍爭(zhēng)點(diǎn)編號(hào) 鏑29謂垃以費(fèi)修改的路栓殺度355修刼成功H !尹斛護(hù)釋存杯不伸存揀 il0J&臺(tái)乗統(tǒng)披贏(yíng)維取懇加搜1糧軸音tt入袪全(2425修改路徑長(zhǎng)度出匸醍至応dS弓世泉曉啟討2定玩、扶W號(hào)衛(wèi)珈說(shuō)計(jì)與總琉m v2.4.26添加一個(gè)景點(diǎn)0-IU4£a -J>豈 -啟工 w Mg * &uij腎 度 "!TT,W 姐 : -ILT于咔點(diǎn)昭蠟一2 一一一 一一畫(huà)空 + .黑".趨恨Tlr,麺0科壺回后倉(cāng)乘址撒訂胡!傑改猿I如詞宦肓確上法 土 *2427修改密碼2428恢復(fù)初始狀態(tài)在后臺(tái)系統(tǒng)輸入8,就會(huì)詢(xún)問(wèn)你

18、是否恢復(fù)初始狀態(tài),暗“ Y'將會(huì)使之前 一切修改的數(shù)據(jù)信息都恢復(fù)原樣,重新初始化。堯側(cè)閆繭絳闕絢勵(lì)蜆贅。初姑狀態(tài).昱技丫,不是按N2.4.28恢復(fù)初始狀態(tài)243退出系統(tǒng)用戶(hù)滿(mǎn)足了需求之后,只要在主界面菜單處輸入0便可退出此次校園導(dǎo)游系 統(tǒng)。運(yùn)行結(jié)果如圖249。退出系統(tǒng)3 總結(jié) 由于設(shè)計(jì)者水平有限, 本導(dǎo)游圖系統(tǒng)的功能還比較簡(jiǎn)單, 沒(méi)有求出兩景點(diǎn)間 的多條可行路徑供游客選擇,無(wú)法在界面中顯示出地圖;由于鄰接矩陣是 30*30 的,所以無(wú)法在一個(gè)界面中完整簡(jiǎn)潔的顯示出來(lái)。 還有個(gè)很好的想法也沒(méi)有實(shí)現(xiàn), 就是怎樣求出游完所有景點(diǎn)是的最短路徑和線(xiàn)路, 這樣游客就不需要重復(fù)走過(guò)幾 個(gè)景點(diǎn)。在這次

19、作業(yè)中,我積累了不少經(jīng)驗(yàn),提高了動(dòng)手能力。在編程序過(guò)程中 不要急于求成, 如果一下字把所有的功能編出來(lái)了再去編譯, 一旦出錯(cuò), 就很難 找出是哪里錯(cuò)誤了, 這就需要一個(gè)一個(gè)的實(shí)現(xiàn)了。 這次作業(yè)也讓我增加了對(duì)文件 流的理解。 識(shí)饒鎂錕縊灩筧嚌儼淒。參考文獻(xiàn)1 嚴(yán)蔚敏,李冬梅,吳偉民數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)人民郵電出版社.2011.2 王珊珊,臧洌,張志航.C+程序設(shè)計(jì)教程 第二版.機(jī)械工業(yè)出版社.2011附件:/ 程序名稱(chēng):校園導(dǎo)游系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)/ 程序員: Joebug/編寫(xiě)時(shí)間: 2015年6 月#include <iostream>#include <string.h>

20、#include <stdlib.h>#include <fstream> #include <conio.h> using namespace std;#define N 50#define M 10/ 景點(diǎn)結(jié)構(gòu)體/ 景點(diǎn)名稱(chēng)/ 景點(diǎn)信息typedef struct Inforchar name20; char inf100;Infor;typedef structint adjNN; / 各景點(diǎn)間的鄰接關(guān)系用圖鄰接矩陣類(lèi)型Infor vexsN;/ 景點(diǎn)(頂點(diǎn))信息 :int vexnum,arcnum; / 圖的頂點(diǎn)個(gè)數(shù)及邊的條數(shù) mgraph;typ

21、edef struct char p6;Password;char inform30100="信息男宿舍,后面是內(nèi)環(huán),與風(fēng)采園相近,前面是南苑9-12 棟!"" 一樓價(jià)格還好,但飯菜比較難吃,二樓較貴,飯菜還行!","中國(guó)銀行營(yíng)業(yè)廳,如果要辦理業(yè)務(wù),需很早地去排隊(duì);有ATM 機(jī)!II"二樓有自強(qiáng)社辦公室、校學(xué)生會(huì)辦公室一樓有健身房!","東西較貴但品類(lèi)基本齊全! ", "主要是老師居住。喜祥數(shù)碼港要收費(fèi),云山數(shù)碼港在不換硬件條件 下免費(fèi)修! ","主要接待外來(lái)人員,招待所!&

22、quot;,"一樓有糖水和奶茶供應(yīng),晚上總有很多部門(mén)在此開(kāi)會(huì)。二樓有許多 套餐! ","一樓大眾點(diǎn)菜,品類(lèi)比三飯多。二樓的價(jià)格在8 元左右! "," 女生宿舍,北苑三棟樓下有創(chuàng)業(yè)園!","組成巡邏隊(duì),協(xié)助學(xué)校保障校園安全。 ! ","位于保衛(wèi)處后面,在校生校內(nèi)看病只需支付很少的費(fèi)用!"," 具有防空洞;連接宿舍區(qū)和教學(xué)區(qū)! "," 在隧道口的上方,可以乘坐很多路的公交車(chē)!","一樓有中國(guó)銀行ATM。早上和中午前面有校巴。不少活動(dòng)的舉辦地 點(diǎn)!&q

23、uot;, 八、,"是學(xué)習(xí)的主要地方,教室里面設(shè)施較為齊全,有多媒體、空調(diào)、電 視等,后面是語(yǔ)心湖和實(shí)驗(yàn)樓! ","早上會(huì)有學(xué)生在那里練嗓子,以及讀書(shū)! ","多種會(huì)議比賽的場(chǎng)所! ","學(xué)校政要的辦公室所在地! ","各學(xué)院老師的辦公室所在地! ","拍畢業(yè)照時(shí),校友回來(lái)時(shí)的聚集之地! ", "擺放著很多電腦的地方! ", "位于教學(xué)樓和實(shí)驗(yàn)樓之間,湖水平靜,還有黑天鵝嬉戲于水上!","各種活動(dòng)的舉辦場(chǎng)所! ",&

24、quot;主要是藝術(shù)生上課的地方,周六日為雅思考場(chǎng)!","重要會(huì)議進(jìn)行的地方,黨課和軍訓(xùn)理論課在這里上,有空調(diào)!","圖書(shū)館除了中英文借閱區(qū)與雜志借閱區(qū)外,還有自習(xí)區(qū);前面有大 廣場(chǎng),最前面是學(xué)校正門(mén)! "," 內(nèi)有排球場(chǎng)、籃球場(chǎng),外有足球場(chǎng)。還有游泳池、網(wǎng)球場(chǎng)!","體育館有多個(gè)觀(guān)眾席;中央可用做正規(guī)比賽場(chǎng)所。日常用來(lái)上羽毛 球課、跆拳道課! ","位于圖書(shū)館前面,學(xué)術(shù)報(bào)告廳與藝術(shù)樓中間,雖然不宏偉,但是也 是一個(gè)標(biāo)志! "char Name3020="南苑 13棟&quo

25、t;,"風(fēng)采園(三飯)","中國(guó)銀行","學(xué)活&水榭", "又康超市 ","師苑&數(shù)碼港","廣外友苑","博雅園(二飯)", "文采園(一飯)","創(chuàng)業(yè)園","后勤&保衛(wèi)處","校醫(yī)室","隧道口 ","廣外公交站","教學(xué)樓A棟","教學(xué)樓E、F棟", "鳳凰山

26、坡","八角樓","校辦公樓","院系辦公樓","校友林","實(shí)驗(yàn)樓", "語(yǔ)心湖","學(xué)術(shù)報(bào)告廳 ","藝術(shù)樓","大會(huì)堂","圖書(shū)館", "泳池&操場(chǎng)","體育館&場(chǎng)","正校門(mén)"void initgraph(mgraph &G);/ 依據(jù)讀入的圖的頂點(diǎn)個(gè)數(shù)和邊的條數(shù), 凍鈹鋨勞臘鍇癇婦脛糴。/ 分別

27、初始化圖結(jié)構(gòu)中圖的頂點(diǎn)向量數(shù)組和圖的鄰接矩陣 void browse(mgraph G);/ 輸出學(xué)校全部景點(diǎn)的信息 :編號(hào)、名稱(chēng)、介紹void cgraph(mgraph &G,Password &pw); /構(gòu)造無(wú)向圖和讀寫(xiě)文件 graph。 txt 恥諤銪 滅縈歡煬鞏鶩錦。void writetxt(mgraph &G,Password &pw); / 寫(xiě)入文件int pass(Password pw);/ 認(rèn)證密碼的正確與否, 正確返回 1,錯(cuò)誤返回 0鯊腎鑰詘褳鉀溈懼統(tǒng)庫(kù)。void reception(mgraph &G);/ 前臺(tái)服務(wù)函數(shù)vo

28、id seeabout(mgraph &G);/ 景點(diǎn)信息void shortestpath_dij(mgraph G); / 該景點(diǎn)到其他景點(diǎn)的最短路徑線(xiàn)路及距離 碩癘 鄴頏謅攆檸攜驤蘞。void browsecampus(mgraph G); / 輸出學(xué)校全部景點(diǎn)的信息 :編號(hào)、名稱(chēng)、介 紹閿擻輳嬪諫遷擇楨秘騖。void near(mgraph G); / 相鄰的景點(diǎn)及其距離void changegraph(mgraph &G,Password &pw); 瀘頷澩。void changeP(mgraph &G,Password &pw); 釷鵒資贏(yíng)車(chē)

29、贖孫滅獅贅。void deleteP(mgraph &G,Password &pw); 闡譜鯪逕導(dǎo)嘯畫(huà)長(zhǎng)涼。void deleteL(mgraph &G,Password &pw); 諂動(dòng)禪瀉類(lèi)。void addL(mgraph &G,Password &pw); 縲鐋囁偽純鉿錈。void changeL(mgraph &G,Password &pw); 譏鉦鏌觶鷹緇機(jī)庫(kù)。void Add(mgraph &G,Password &pw); 腎邏蘞。void changepw(mgraph &G,Passwo

30、rd &pw); 蔣氳頑薟驅(qū)藥憫騖。void regraph(mgraph &G,Password &pw); 莖蛺餑億頓裊賠瀧。int main()mgraph campus;Password pw;strcpy(pw.p,"gdufsx");闈詔寢賻。/ 后臺(tái)函數(shù),并調(diào)用 氬嚕躑竄貿(mào)懇彈/ 修改一個(gè)已有景點(diǎn)的相關(guān)信息/ 刪除一個(gè)景點(diǎn)及其相關(guān)信 慫/ 刪除一條路徑 諺辭調(diào)擔(dān)鈧/ 添加一條路徑 嘰覲詿/ 修改路徑長(zhǎng)度 熒紿/ 添加一個(gè)景點(diǎn) 鶼漬螻偉閱劍鯫/ 修改密碼 紂憂(yōu)/ 恢復(fù)初始狀態(tài) 穎芻/ 初始化密碼 濫驂膽閉驟羥initgraph(campu

31、s);cgraph(campus,pw);int n,m=1;while(m) system("cls"); cout<<" 銚銻縵嚌鰻鴻鋟謎諏涼。cout<<"歡迎使用GDUFS校園導(dǎo)游系統(tǒng)"<<endl;擠貼綬電麥結(jié)鈺贖嘵類(lèi)。*、'cout<<"(1)前臺(tái)服務(wù) (游客身份登陸 )"<<endl;賠荊紳諮侖驟遼輩襪錈。cout<<"塤礙籟饈決穩(wěn)賽釙冊(cè)庫(kù)。(2)后臺(tái)服務(wù) (管理員身份登陸 )"<<endl;cout

32、<<"(0)退出 "<<endl<<endl;cout<<"<<endl;裊樣祕(mì)廬廂顫諺鍘羋藺。請(qǐng)輸入您的選擇 (0-2): "cout<<"*、'cin>>n;switch(n)case 1: reception(campus); break;case 2: if(pass(pw)=1) changegraph(campus,pw); / 后臺(tái)函數(shù) break;case 0: m=0;coutvv'謝謝您的使用! " <<

33、endl<<"按任意鍵繼續(xù)"getch();exit(0);default:cout<<"您的輸入有誤 ,任意鍵繼續(xù) ."getch();void initgraph(mgraph &G)/ 依據(jù)讀入的圖的頂點(diǎn)個(gè)數(shù)和邊的條數(shù), 倉(cāng)嫗盤(pán)紲囑瓏詁鍬齊驁。/ 分別初始化圖結(jié)構(gòu)中圖的頂點(diǎn)向量數(shù)組和圖的鄰接矩陣 int i,j;for(i=0;i<N;i+) for(j=0;j<N;j+)G.adjij=9999; for(i=0;i<30;i+)strcpy(G.,Namei); strcpy

34、(G.vexsi.inf,informi); G.vexnum=30; G.arcnum=45;G.adj01=55;G.adj05=287;G.adj12=243;G.adj23=28;G.adj34=31;G.adj45=42;G.adj49=106;G.adj56=87;G.adj57=71;G.adj78=132;G.adj79=97;G.adj712=150;G.adj89=111;G.adj811=151;G.adj813=126;G.adj911=257;G.adj1011=33;G.adj1013=128;G.adj1027=287;G.adj1213=117;G.adj121

35、4=83;G.adj1216=160;G.adj1326=359;G.adj1415=118;G.adj1416=245;G.adj1522=94;G.adj1526=176;G.adj1618=62;G.adj1718=74;G.adj1719=88;G.adj1722=218;G.adj1920=64;G.adj2021=167;G.adj2122=68;G.adj2123=132;G.adj2326=203;G.adj2329=60;G.adj2425=129;G.adj2428=263;G.adj2429=80;G.adj2526=181;G.adj2527=212;G.adj2528

36、=192;G.adj10=55;G.adj50=287;G.adj21=243;G.adj32=28;G.adj43=31;G.adj54=42;G.adj94=106;G.adj65=87;G.adj75=71;G.adj87=132;G.adj97=97;G.adj127=150;G.adj98=111;G.adj118=151;G.adj138=126;G.adj119=257;G.adj1110=33;G.adj1310=128;G.adj2710=287;G.adj1312=117;G.adj1412=83;G.adj1612=160;G.adj2613=359;G.adj1514=

37、118;G.adj1614=245;G.adj2215=94;G.adj2615=176;G.adj1816=62;G.adj1817=74;G.adj1917=88;G.adj2217=218;G.adj2019=64;G.adj2120=167;G.adj2221=68;G.adj2321=132;G.adj2623=203;G.adj2923=60;G.adj2524=129;G.adj2824=263;G.adj2924=80;G.adj2625=181;G.adj2725=212;G.adj2825=192;G.adj2627=164;G.adj2726=164;G.adj2728=

38、354;G.adj2827=354;void cgraph(mgraph &G,Password &pw) / 寫(xiě)入文件并初始 化 綻萬(wàn)璉轆娛閬蟶鬮綰瀧。int i,j,dist;char c;ifstream infile("graph.txt");if(!infile)infile.close();writetxt(G,pw);elseinfile.close();ifstream infile("graph.txt");infile>>G.vexnum>>G.arcnum; for(i=0;i<G.ve

39、xnum;i+) infile>>G.; infile>>G.vexsi.inf;for(i=0;i<G.vexnum;i+)for(j=0;j<G.vexnum;j+) infile>>dist; G.adjij=dist;for(i=0;i<6;i+)infile>>pw.pi;infile.close();void writetxt(mgraph &G,Password &pw) / 寫(xiě)入文件 驍顧燁鶚巰 瀆蕪領(lǐng)鱺賻。int i,j;ofstream outfile("grap

40、h.txt"); outfile<<G.vexnum<<endl<<G.arcnum<<endl;for(i=0;i<G.vexnum;i+)outfile<<G.vexsi. namevve ndl<<G.vexsi.i nfvve ndl;瑣釙濺曖惲錕縞馭篩涼。for(i=0;i<G.vexnum;i+)for(j=0;j<G.vexnum;j+)outfile<<G.adjij<<" "for(i=0;i<6;i+) outfile<

41、<pw.pi<<" "outfile.close();void browse(mgraph G) / 輸出學(xué)校全部景點(diǎn)的信息 :編號(hào)、名稱(chēng) 鎦詩(shī)涇艷損樓紲鯗餳類(lèi)。int j=0,k;for(int i=0;i<G.vexnum;i+) k=i+1;cout<<k<<"."<<G.<<'t'j+; if(j%3=0)cout<<endl; if(j%3!=0)cout<<endl;int pass(Password pw)ch

42、ar ch6,judge=1;cout<<" 請(qǐng)輸入密碼: "for(int i=0;i<6;i+) chi=getch(); cout.flush(); cout<<"*"for(int i=0;i<6;i+) if(pw.pi!=chi) judge=0;return judge;void changepw(mgraph &G,Password &pw)int i,b=1;char ch6,ch16,judge1=1,judge2=1;while(b=1)cout<<"請(qǐng)輸入原

43、密碼:"<<e ndl;for(i=0;i<6;i+) chi=getch(); cout.flush(); cout<<"*" for(i=0;i<6;i+) if(pw.pi!=chi) judge1=0;if(judge1)cout«e ndlvv'請(qǐng)輸入新密碼:"<<e ndl;for(i=0;i<6;i+) chi=getch(); cout.flush(); cout<<"*" cout«e ndlvv"請(qǐng)確認(rèn)新密碼:&

44、quot;<<e ndl;for(i=0;i<6;i+) ch1i=getch(); cout.flush(); cout<<"*"for(i=0;i<6;i+) if(chi!=ch1i)judge2=0;if(judge2) for(i=0;i<6;i+) pw.pi=chi; cout«e ndlvv'修改成功! " <<e ndl; writetxt(G,pw);else coutvve ndlvv'修改錯(cuò)誤! " <<e ndl;else coutvv&

45、#39;密碼錯(cuò)誤! "<<e ndl; coutvvendlvv"返回后臺(tái)系統(tǒng)按0,繼續(xù)修改按1"<<endl; cin>>b;coutvvendl;/錟。前臺(tái) /櫛緶歐鋤棗鈕種鵑瑤void reception(mgraph &G) int n,i,j;while(1) system("cls"); 清屏CC、A"/''*/ 前臺(tái)函數(shù)歡迎使用*、'vvendl;轡燁棟剛殮攬瑤麗鬮應(yīng)coutvv"個(gè)別景點(diǎn)信息查詢(xún)"<<endl;cout&

46、#171;"(2)問(wèn)路查詢(xún)"<<endl;cout«"(3)輸出所有景點(diǎn)信息"<<endl;coutvv"相鄰的景點(diǎn)及其距離"<<endl;cout<<"(0)返回上一級(jí)菜單"<<endl;coutvv"請(qǐng)輸入您的選擇(0-4):"cin>>n;switch(n)case 1: seeabout(G); break;case 2:shortestpath_dij(G);break;case 3:browsecamp

47、us(G); break;case 4:near(G);break;case 0:return;break;default:coutvv"您的輸入有誤,任意鍵繼續(xù)"<<endl; getch();void seeabout(mgraph &G) / 景點(diǎn)信息 峴揚(yáng)斕滾澗輻灄興渙藺。int a;int b=1;system("cls");browse(G);while(b)coutvv'請(qǐng)輸入要查找的景點(diǎn)信息"vvendl;cin>>a; a-;if(a>=0&&avG.vexnum)

48、coutvva+1vv"."vvG.vexsa. namevve ndlvvG.vexsa.i nfvve nd;叁撻訥燼 憂(yōu)毀厲鋨驁。elsecout«"輸入錯(cuò)誤,無(wú)此景點(diǎn)"<<endl;cout«"返回前臺(tái)系統(tǒng)按0,繼續(xù)查找按1"<<endl;cin>>b; while(b!=0&&b!=1)cout«"返回前臺(tái)系統(tǒng)按0,繼續(xù)查找按1"<<endl;cin>>b;則鯤愜void shortestpath_d

49、ij(mgraph G) / 該景點(diǎn)到其他景點(diǎn)的最短路徑線(xiàn)路及距離 韋瘓賈暉園棟瀧。int b=1,i,j,vt,v,v0,w,min;bool SN;int DN,PathN;int n=G.vexnum;system("cls");browse(G);while(b)coutvv"請(qǐng)輸入要查詢(xún)路徑的兩個(gè)景點(diǎn)的編號(hào)"<<e ndl; cin>>v0; v0-; cin>>vt;vt-;for(v=0;v<n;v+)Sv=false;Dv=G.adjv0v; if(Dv<9999) Pathv=v0;/v0

50、 是 v 的前趨elsePathv=-1;/v 無(wú)前趨Dv0=0;Sv0=true;for(i=1;i<n;i+)min=9999; for(w=0;w<n;w+) if(!Sw&&Dw<min) v=w; min=Dw; / 選擇一條當(dāng)前的最短路徑,終點(diǎn)為 vSv=true;/ 將 v 加入 Sfor(w=0;w<n;w+)/ 更新當(dāng)前最短路徑及距離 if(!Sw&&(Dv+G.adjvw<Dw) Dw=Dv+G.adjvw; Pathw=v;cout«"距離為:"<<e ndl; cou

51、t<<Dvt<<endl;cout«"要經(jīng)過(guò)"<<e ndl;int f=Pathvt,eN;i=0;while(f!=-1)ei=f;f=Pathf;i+;for(v=i-1;v>=0;v-)cout<<ev+1<<"."<<G.<<">"cout<<vt+1<<"."<<G.<<endl;cout«&quo

52、t;返回后臺(tái)系統(tǒng)按0,繼續(xù)查詢(xún)按1"<<endl;cin>>b;void browsecampus(mgraph G) /輸出學(xué)校全部景點(diǎn)的信息:編號(hào)、名稱(chēng)、介紹 脹鏝彈奧秘孫戶(hù)孿釔賻。int k;for(int i=0;i<G.vexnum;i+)k=i+1;cout<<k<<"."<<G.<<endl<<G.vexsi.inf<<endl; 鰓躋峽禱紉誦幫廢掃減。cout«"按任意鍵返回前臺(tái)系統(tǒng)"<<

53、;endl;getch();void near(mgraph G)/ 相鄰的景點(diǎn)及其距離 稟虛嬪賑維嚌妝擴(kuò)踴糶。int b=1,i,j;bool a5050;system("cls");while(b)browse(G);for(i=0;i<50;i+)for(j=0;j<50;j+)aij=false;for(i=0;i<G.vexnum;i+)for(j=0;j<G.vexnum;j+)if(G.adjij!=9999)if(!aij)罷規(guī)嗚舊巋錟。aij=true;aji=true;cout«"返回后臺(tái)系統(tǒng)按0"&

54、lt;<endl;cin>>b;/后臺(tái)函數(shù) /諤應(yīng)。void changegraph(mgraph &G,Password &pw) 嵐縣緱虜榮產(chǎn)濤團(tuán)藺。溈氣嘮戇萇鑿鑿櫧/ 修改圖信息 鋇int n;while(1)system("cls");歡迎使用*、'<<endl;懨俠劑鈍觸樂(lè)鷴燼觶騮。CC、A"/''*coutvv"(1)修改一個(gè)已有景點(diǎn)的相關(guān)信息"<<endl; cout<<"(2)刪除一個(gè)景點(diǎn)及其相關(guān)信息"<<

55、;endl; cout«"(3)刪除一條路徑"<<endl;cout«"增加一條路徑"<<endl;cout«"(5)修改一條路徑長(zhǎng)度"<<endl;coutvv"(6)增加景點(diǎn)"<<endl;cout<<"(7)修改密碼"<<endl; cout<<"(8)恢復(fù)初始狀態(tài)"<<endl;cout<<"(0)返回上一級(jí)菜單"

56、;<<endl; coutvv"請(qǐng)輸入您的選擇(0-8):"cin>>n;switch(n)case 1:changeP(G,pw); break;case 2:deleteP(G,pw);break;case 3: deleteL(G,pw); break;case 4:addL(G,pw); break;case 5: changeL(G,pw); break;case 6:Add(G,pw); break;case 7: changepw(G,pw); break;case 8: regraph(G,pw); break;case 0:retu

57、rn;break;default:cout«"您的輸入有誤,任意鍵繼續(xù)"<<endl;getch();void changeP(mgraph &G,Password &pw)/ 修改一個(gè)已有景點(diǎn)的相關(guān)信息謾飽兗爭(zhēng)詣繚鮐癩別瀘。int a;int b=1;while(b)system("cls");browse(G);coutvv'請(qǐng)輸入要修改景點(diǎn)信息的編號(hào):"<<e ndl;cin>>a; a-;if(a>=0&&a<=G.vexnum)coutv

58、va+1vv"."v<G.vexsa. namevve ndl<<G.vexsa.i nfvve nd 咼鉉們歟謙 鴣餃競(jìng)蕩賺。cout«"請(qǐng)輸入該景點(diǎn)的修改后的信息"<<endl;cin>>G.vexsa.inf;cout«"修改成功!!"<<endl;coutvv"是否要保存?保存按1,不保存按2"<<endl;int c;cin>>c;if(c=1)writetxt(G,pw);elsecgraph(G,pw);

59、elsecout<<"error! 輸入有誤 !"<<endl;cout«"返回后臺(tái)系統(tǒng)按0,繼續(xù)修改按1"<<endl;cin>>b;瑩諧void deleteP(mgraph &G,Password &pw)/ 刪除一個(gè)景點(diǎn)及其相關(guān)信息齷蘄賞組靄縐嚴(yán)減。int b=1,i,j,k;while(b)system("cls");browse(G);coutvv"請(qǐng)輸入要?jiǎng)h除的景點(diǎn)的編號(hào)"<<endl;cin>>i; i

60、-;if(i>=0&&i<=G.vexnum)for(j=i;j<G.vexnum-1;j+)G.vexsj=G.vexsj+1;for(k=0;k<G.vexnum-1;k+)G.adjkj=G.adjkj+1;for(j=i;j<G.vexnum-1;j+)for(k=0;k<G.vexnum-1;k+)G.adjjk=G.adjj+1k;G.vexnum-;G.arcnum=0;for(i=0;i<G.vexnum;i+)for(j=0;j<G.vexnum;j+)if(G.adjij!=9999) G.arcnum+;G.arcnum=G.arcnum/2;b=0;cout«"刪除成功!!"<<endl;if(b!=0)cout«"輸入有誤!請(qǐng)看清楚!"<<endl;

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論