版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、-校園導(dǎo)游系統(tǒng)設(shè)計與實現(xiàn)目錄1.設(shè)計要求2.1需求分析2.2概要設(shè)計2.3各個模塊名稱和功能2.4系統(tǒng)導(dǎo)游主界面前臺系統(tǒng)后臺系統(tǒng)退出系統(tǒng)3實驗總結(jié)參考文獻1.設(shè)計要求設(shè)計一個校園導(dǎo)游程序,為來訪的客人提供各種信息查詢效勞。2.1需求分析設(shè)計學校的校園平面圖。選取假設(shè)干個有代表性的景點抽象成一個無向帶權(quán)圖無向網(wǎng),所含景點不少于 30 個。以圖中頂點表示校各景點,邊上的權(quán)值表示兩景點之間的距離。存放景點代號、名稱、簡介等信息供用戶查詢。為來訪客人提供圖中任意景點相關(guān)信息的查詢。為來訪客人提供圖中任意景點之間的問路查詢??梢詾樾@平面圖增加或刪除景點或邊,修改邊上的權(quán)值等。景點距離圖2.2概要設(shè)計校
2、園旅游模型是由景點和景點之間的路徑組成的,所以這完全可以用數(shù)據(jù)構(gòu)造中的圖來模擬。用圖的結(jié)點代表景點,用圖的邊代表景點之間的路徑。所以首先應(yīng)設(shè)計一個圖類。結(jié)點值代表景點信息,邊的權(quán)值代表景點間的距離。結(jié)點值及邊的權(quán)值用順序表存儲,所以需要設(shè)計一個順序表類。本系統(tǒng)需要查詢景點信息和求一個景點到另一個景點的最短路徑長度及路線,為方便操作,所以給每個景點一個代碼,用構(gòu)造體類型實現(xiàn)。計算路徑長度和最短路線時可用迪杰斯特拉Dijkastra算法實現(xiàn)。最后用 switch 選擇語句選擇執(zhí)行瀏覽景點信息或查詢最短路徑。1、主界面設(shè)計為了實現(xiàn)校園導(dǎo)游系統(tǒng)各功能的管理,首先設(shè)計一個含有多個菜單項的主控菜單子程序以
3、系統(tǒng)的各項子功能,方便用戶使用本系統(tǒng)。2、存儲構(gòu)造設(shè)計本系統(tǒng)采用圖構(gòu)造類型mgraph存儲抽象校園圖的信息。其中,各景點間的鄰接關(guān)系用圖鄰接矩陣類型adjmatri*存儲;景點頂點信息用構(gòu)造數(shù)組(ve*s)存儲,其中每個數(shù)組元素是一個構(gòu)造變量,包含景點編號、景點名稱及景點介紹三個分量;圖的頂點個數(shù)及邊的條數(shù)由分量 ve*num、arum 表示,它們是整型數(shù)據(jù)。3、系統(tǒng)功能設(shè)計本系統(tǒng)除了要完成圖的初始化功能外還設(shè)置了9個子功能。圖的初始化由 initgraph()函數(shù)實現(xiàn)。依據(jù)讀入的圖的頂點個數(shù)和邊的條數(shù),分別初始化圖構(gòu)造中圖的頂點數(shù)組和圖的鄰接矩陣。9個子功能的設(shè)計描述如下。1 景點信息查詢景
4、點信息查詢由函數(shù) seeabout()實現(xiàn)。該功能根據(jù)用戶輸入的景點編號輸出該景點的相關(guān)信息。如景點編號、名稱等。2 學校景點介紹學校景點介紹由函數(shù) browsecampus()實現(xiàn)。當用戶選擇該功能,系統(tǒng)即能輸出學校全部景點的信息:包括景點編號、景點名稱及景點介紹。3 相鄰的景點及其距離為使游客能夠知道其周圍的景點和路徑,方便他們迅速知道其所在位置和周圍信息4 查看瀏覽線路查看瀏覽線路由函數(shù) shortestpath_dij()實現(xiàn)。該功能采用迪杰斯特拉(Dijkstra)算法實現(xiàn)。當用戶選擇該功能,系統(tǒng)能根據(jù)用戶輸入的起始景點編號,求出從該景點到其他景點的最短路徑線路及距離。當用戶選擇該功
5、能,系統(tǒng)能根據(jù)用戶輸入的起始景點及目的景點編號,查詢?nèi)我鈨蓚€景點之間的最短路徑線路及距離。5 更改圖信息修改一個已有景點的相關(guān)信息、刪除一個景點及其相關(guān)信息、刪除一條路徑、加一條路徑、修改路徑長度、添加一個景點6 數(shù)據(jù)平安防設(shè)置密碼,能保證數(shù)據(jù)不會被隨便更改,由pass()判定密碼是否正確,可由changepw()函數(shù)修改密碼,初始密碼為gdufs*7 寫入文件并保存修改翻開該軟件,假設(shè)沒有g(shù)raph.t*t,則會由系統(tǒng)初始化生成一個graph.t*t,假設(shè)已存在該文檔會由該文檔中的容初始化系統(tǒng)。8 恢復(fù)初始狀態(tài)假設(shè)數(shù)據(jù)已經(jīng)顯得很雜亂并很難修理,就可以啟用這個功能9 退出即退出校園導(dǎo)游系統(tǒng),由
6、 e*it(0)函數(shù)實現(xiàn)2.3函數(shù)構(gòu)造void initgraph(mgraph &G); /依據(jù)讀入的圖的頂點個數(shù)和邊的條數(shù),/分別初始化圖構(gòu)造中圖的頂點向量數(shù)組和圖的鄰接矩陣void browsecampus(mgraph G); /輸出學校全部景點的信息:編號、名稱、介紹void cgraph(mgraph &G,Password &pw);/構(gòu)造無向圖和讀寫文件graph。t*tvoid writet*t(mgraph &G,Password &pw);/寫入文件int pass(Password pw);/認證密碼的正確與否,正確返回1,錯誤返
7、回0void reception(mgraph &G); /前臺效勞函數(shù)void seeabout(mgraph &G); /景點信息void shortestpath_dij(mgraph G); /該景點到其他景點的最短路徑線路及距離void near(mgraph G); /相鄰的景點及其距離void changegraph(mgraph &G,Password &pw); /后臺函數(shù),并調(diào)用void changeP(mgraph &G,Password &pw); /修改一個已有景點的相關(guān)信息void deleteP(mgraph &am
8、p;G,Password &pw); /刪除一個景點及其相關(guān)信void deleteL(mgraph &G,Password &pw); /刪除一條路徑void addL(mgraph &G,Password &pw); /添加一條路徑void changeL(mgraph &G,Password &pw); /修改路徑長度void Add(mgraph &G,Password &pw); /添加一個景點void changepw(mgraph &G,Password &pw); /修改密碼void reg
9、raph(mgraph &G,Password &pw); /恢復(fù)初始狀態(tài)2.42.4校園導(dǎo)游主界面程序運行,后臺對圖構(gòu)造進展初始化,運行結(jié)果如圖。2.4主界面前臺系統(tǒng)前臺系統(tǒng)是游客瀏覽查詢界面。如圖游客瀏覽界面?zhèn)€別景點的相關(guān)信息查詢景點的相關(guān)信息查詢是通過seeabout ( )函數(shù)來調(diào)用輸出的,在前臺系統(tǒng)輸入1,輸入任一景點編號即可知道其信息。運行結(jié)果如圖信息查詢?nèi)我鈨删包c間最短路徑查詢根據(jù)用戶的需求,在用戶輸入了起點和終點后計算出最短路徑是哪一條路徑。例如起點是3.中國銀行,終點是15.教學樓A棟。運行結(jié)果如圖任意兩景點間最短路徑查詢輸出所有景點信息為方便用戶一次性知道所
10、有景點信息,設(shè)置了查詢所有景點的信息如圖輸出所有景點信息相鄰的景點及其距離為使游客能夠知道其周圍的景點和路徑,方便他們迅速知道其所在位置和周圍信息。如圖相鄰的景點及其距離后臺系統(tǒng)輸入密碼為防止他人隨意修改景點信息,需密碼驗證身份,初始密碼為gdufs*,進入后臺系統(tǒng)后可修改密碼,如圖輸入密碼后臺效勞后臺效勞具有以下功能:修改一個已有景點的相關(guān)信息;刪除一個景點及其相關(guān)信息;刪除一條路徑;添加一條路徑;修改路徑長度;添加一個景點;修改密碼;恢復(fù)初始狀態(tài)。如圖。功能如圖至后臺效勞修改一個已有景點的相關(guān)信息刪除一個景點及其相關(guān)信息刪除一條路徑添加一條路徑修改路徑長度 2.4.26 添加一個景點修改密
11、碼恢復(fù)初始狀態(tài)在后臺系統(tǒng)輸入8,就會詢問你是否恢復(fù)初始狀態(tài),暗“Y將會使之前一切修改的數(shù)據(jù)信息都恢復(fù)原樣,重新初始化。恢復(fù)初始狀態(tài)退出系統(tǒng)用戶滿足了需求之后,只要在主界面菜單處輸入0便可退出此次校園導(dǎo)游系統(tǒng)。運行結(jié)果如圖。退出系統(tǒng)3總結(jié)由于設(shè)計者水平有限,本導(dǎo)游圖系統(tǒng)的功能還比較簡單,沒有求出兩景點間的多條可行路徑供游客選擇,無法在界面中顯示出地圖;由于鄰接矩陣是30*30的,所以無法在一個界面中完整簡潔的顯示出來。還有個很好的想法也沒有實現(xiàn),就是怎樣求出游完所有景點是的最短路徑和線路,這樣游客就不需要重復(fù)走過幾個景點。在這次作業(yè)中,我積累了不少經(jīng)歷,提高了動手能力。在編程序過程中不要急于求成
12、,如果一下字把所有的功能編出來了再去編譯,一旦出錯,就很難找出是哪里錯誤了,這就需要一個一個的實現(xiàn)了。這次作業(yè)也讓我增加了對文件流的理解。參考文獻1嚴蔚敏,冬梅,吳偉民.數(shù)據(jù)構(gòu)造C語言版.人民郵電.2021.2王珊珊,臧洌,志航.C+程序設(shè)計教程第二版.機械工業(yè).2021:/程序名稱:校園導(dǎo)游系統(tǒng)設(shè)計與實現(xiàn)/程序員:Joebug/編寫時間:2021 年6月*include <iostream>*include <string.h>*include <stdlib.h>*include <fstream>*include <conio.h&g
13、t;using namespace std;*define N 50*define M 10typedef struct Infor /景點構(gòu)造體char name20; /景點名稱char inf100; /景點信息Infor;typedef structint adjNN; /各景點間的鄰接關(guān)系用圖鄰接矩陣類型Infor ve*sN; /景點頂點信息:int ve*num,arum; /圖的頂點個數(shù)及邊的條數(shù)mgraph;typedef struct char p6; Password;char inform30100="信息男宿舍,后面是環(huán),與風采園相近,前面是南苑9-12棟!
14、","一樓價格還好,但飯菜比較難吃,二樓較貴,飯菜還行!","中國銀行營業(yè)廳,如果要辦理業(yè)務(wù),需很早地去排隊;有ATM機!","二樓有自強社辦公室、校學生會辦公室一樓有健身房!","東西較貴但品類根本齊全!","主要是教師居住。喜祥數(shù)碼港要收費,云山數(shù)碼港在不換硬件條件下免費修!","主要接待外來人員,招待所!","一樓有糖水和奶茶供應(yīng),晚上總有很多部門在此開會。二樓有許多套餐!","一樓群眾點菜,品類比三飯多。二樓的價格在8元左右!&
15、quot;,"女生宿舍,北苑三棟樓下有創(chuàng)業(yè)園!","組成巡邏隊,協(xié)助學校保障校園平安。!","位于保衛(wèi)處后面,在校生??床≈恍柚Ц逗苌俚馁M用!","具有防空洞;連接宿舍區(qū)和教學區(qū)!","在隧道口的上方,可以乘坐很多路的公交車!","一樓有中國銀行ATM。早上和中午前面有校巴。不少活動的舉辦地點!","是學習的主要地方,教室里面設(shè)施較為齊全,有多媒體、空調(diào)、電視等,后面是語心湖和實驗樓!","早上會有學生在那里練嗓子,以及讀書!",&qu
16、ot;多種會議比賽的場所!","學校政要的辦公室所在地!","各學院教師的辦公室所在地!","拍畢業(yè)照時,校友回來時的聚集之地!","擺放著很多電腦的地方!","位于教學樓和實驗樓之間,湖水平靜,還有黑天鵝嬉戲于水上!","各種活動的舉辦場所!","主要是藝術(shù)生上課的地方,周六日為雅思考場!","重要會議進展的地方,黨課和軍訓理論課在這里上,有空調(diào)!","圖書館除了中英文借閱區(qū)與雜志借閱區(qū)外,還有自習區(qū);前面有大廣場
17、,最前面是學校正門!","有排球場、籃球場,外有足球場。還有游泳池、網(wǎng)球場!","體育館有多個觀眾席;中央可用做正規(guī)比賽場所。日常用來上羽毛球課、跆拳道課!","位于圖書館前面,學術(shù)報告廳與藝術(shù)樓中間,雖然不宏偉,但是也是一個標志!"char Name3020="南苑13棟","風采園(三飯)","中國銀行","學活&水榭", "又康超市","師苑&數(shù)碼港","廣外友苑"
18、,"博雅園(二飯)","文采園(一飯)","創(chuàng)業(yè)園","后勤&保衛(wèi)處","校醫(yī)室","隧道口","廣外公交站","教學樓A棟","教學樓E、F棟","鳳凰山坡","八角樓","校辦公樓","院系辦公樓","校友林","實驗樓","語心湖","學術(shù)報告廳"
19、;,"藝術(shù)樓","大會堂","圖書館","泳池&操場","體育館&場","正校門"void initgraph(mgraph &G); /依據(jù)讀入的圖的頂點個數(shù)和邊的條數(shù), /分別初始化圖構(gòu)造中圖的頂點向量數(shù)組和圖的鄰接矩陣void browse(mgraph G); /輸出學校全部景點的信息:編號、名稱、介紹void cgraph(mgraph &G,Password &pw); /構(gòu)造無向圖和讀寫文件graph。t*tvoid wr
20、itet*t(mgraph &G,Password &pw); /寫入文件int pass(Password pw); /認證密碼的正確與否,正確返回1,錯誤返回0 void reception(mgraph &G); /前臺效勞函數(shù)void seeabout(mgraph &G); /景點信息void shortestpath_dij(mgraph G); /該景點到其他景點的最短路徑線路及距離void browsecampus(mgraph G); /輸出學校全部景點的信息:編號、名稱、介紹void near(mgraph G); /相鄰的景點及其距離voi
21、d changegraph(mgraph &G,Password &pw); /后臺函數(shù),并調(diào)用void changeP(mgraph &G,Password &pw); /修改一個已有景點的相關(guān)信息void deleteP(mgraph &G,Password &pw); /刪除一個景點及其相關(guān)信void deleteL(mgraph &G,Password &pw); /刪除一條路徑void addL(mgraph &G,Password &pw); /添加一條路徑void changeL(mgraph &am
22、p;G,Password &pw); /修改路徑長度void Add(mgraph &G,Password &pw); /添加一個景點void changepw(mgraph &G,Password &pw); /修改密碼void regraph(mgraph &G,Password &pw); /恢復(fù)初始狀態(tài)int main()mgraph campus;Password pw;strcpy(pw.p,"gdufs*"); /初始化密碼initgraph(campus);cgraph(campus,pw);int n
23、,m=1;while(m) system("cls"); cout<<" 歡迎使用GDUFS校園導(dǎo)游系統(tǒng)"<<endl;cout<<" *"<<endl<<endl; cout<<" (1)前臺效勞(游客身份登陸)"<<endl; cout<<" (2)后臺效勞(管理員身份登陸)"<<endl; cout<<" (0)退出"<<endl<&
24、lt;endl;cout<<" *"<<endl;cout<<" 請輸入您的選擇(0-2):" cin>>n; switch(n) case 1: reception(campus); break; case 2:if(pass(pw)=1) changegraph(campus,pw); /后臺函數(shù)break; case 0: m=0;cout<<"您的使用!" <<endl<<"按任意鍵繼續(xù)" ;getch();e*it(0);
25、 default: cout<<" 您的輸入有誤,任意鍵繼續(xù)." getch(); void initgraph(mgraph &G) /依據(jù)讀入的圖的頂點個數(shù)和邊的條數(shù), /分別初始化圖構(gòu)造中圖的頂點向量數(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.ve*,Namei);strcpy(G.ve*si.inf,informi);G.ve*num=30;G.arum=45;G.adj01=55; G.
26、adj10=55; G.adj05=287; G.adj50=287;G.adj12=243; G.adj21=243;G.adj23=28; G.adj32=28;G.adj34=31; G.adj43=31;G.adj45=42; G.adj54=42;G.adj49=106; G.adj94=106; G.adj56=87; G.adj65=87;G.adj57=71; G.adj75=71;G.adj78=132; G.adj87=132;G.adj79=97; G.adj97=97;G.adj712=150; G.adj127=150;G.adj89=111; G.adj98=111
27、;G.adj811=151; G.adj118=151;G.adj813=126; G.adj138=126;G.adj911=257; G.adj119=257;G.adj1011=33; G.adj1110=33;G.adj1013=128; G.adj1310=128;G.adj1027=287; G.adj2710=287;G.adj1213=117; G.adj1312=117;G.adj1214=83; G.adj1412=83;G.adj1216=160; G.adj1612=160;G.adj1326=359; G.adj2613=359;G.adj1415=118; G.ad
28、j1514=118;G.adj1416=245; G.adj1614=245;G.adj1522=94; G.adj2215=94;G.adj1526=176; G.adj2615=176;G.adj1618=62; G.adj1816=62;G.adj1718=74; G.adj1817=74;G.adj1719=88; G.adj1917=88;G.adj1722=218; G.adj2217=218;G.adj1920=64; G.adj2019=64;G.adj2021=167; G.adj2120=167;G.adj2122=68; G.adj2221=68;G.adj2123=13
29、2; G.adj2321=132;G.adj2326=203; G.adj2623=203;G.adj2329=60; G.adj2923=60;G.adj2425=129; G.adj2524=129;G.adj2428=263; G.adj2824=263;G.adj2429=80; G.adj2924=80;G.adj2526=181; G.adj2625=181;G.adj2527=212; G.adj2725=212;G.adj2528=192; G.adj2825=192;G.adj2627=164; G.adj2726=164;G.adj2728=354; G.adj2827=3
30、54;void cgraph(mgraph &G,Password &pw) /寫入文件并初始化int i,j,dist;char c;ifstream infile("graph.t*t");if(!infile)infile.close();writet*t(G,pw);elseinfile.close();ifstream infile("graph.t*t");infile>>G.ve*num>>G.arum;for(i=0;i<G.ve*num;i+)infile>>G.ve*si.na
31、me;infile>>G.ve*si.inf; for(i=0;i<G.ve*num;i+)for(j=0;j<G.ve*num;j+)infile>>dist;G.adjij=dist;for(i=0;i<6;i+)infile>>pw.pi; infile.close();void writet*t(mgraph &G,Password &pw) /寫入文件int i,j;ofstream outfile("graph.t*t");outfile<<G.ve*num<<endl
32、<<G.arum<<endl;for(i=0;i<G.ve*num;i+)outfile<<G.ve*<<endl<<G.ve*si.inf<<endl; for(i=0;i<G.ve*num;i+)for(j=0;j<G.ve*num;j+)outfile<<G.adjij<<" "for(i=0;i<6;i+)outfile<<pw.pi<<" "outfile.close();void bro
33、wse(mgraph G) /輸出學校全部景點的信息:編號、名稱int j=0,k;for(int i=0;i<G.ve*num;i+)k=i+1;cout<<k<<"."<<G.ve*<<'t'j+;if(j%3=0)cout<<endl;if(j%3!=0)cout<<endl;int pass(Password pw)char ch6,judge=1;cout<<" 請輸入密碼:"for(int i=0;i<6;i+)chi
34、=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<<"請輸入原密碼:"<<endl;for(i=0;i<6;i+)chi=getch();cout.flush();cout<&
35、lt;"*" for(i=0;i<6;i+)if(pw.pi!=chi)judge1=0;if(judge1)cout<<endl<<"請輸入新密碼:"<<endl;for(i=0;i<6;i+)chi=getch();cout.flush();cout<<"*" cout<<endl<<"請確認新密碼:"<<endl;for(i=0;i<6;i+)ch1i=getch();cout.flush();cout<
36、;<"*" for(i=0;i<6;i+)if(chi!=ch1i)judge2=0; if(judge2)for(i=0;i<6;i+)pw.pi=chi;cout<<endl<<"修改成功!" <<endl;writet*t(G,pw);elsecout<<endl<<"修改錯誤!" <<endl; else cout<<"密碼錯誤!"<<endl;cout<<endl<<&
37、quot;返回后臺系統(tǒng)按0,繼續(xù)修改按1"<<endl; cin>>b;cout<<endl; /前臺/ void reception(mgraph &G) /前臺函數(shù) int n,i,j; while(1) system("cls");/清屏 cout<<"*歡迎使用前臺系統(tǒng)*"<<endl; cout<<"(1)個別景點信息查詢"<<endl; cout<<"(2)問路查詢"<<endl
38、; cout<<"(3)輸出所有景點信息"<<endl; cout<<"(4)相鄰的景點及其距離"<<endl; cout<<"(0)返回上一級菜單"<<endl; cout<<"請輸入您的選擇(0-4):" cin>>n; switch(n) case 1: seeabout(G); break; case 2: shortestpath_dij(G); break; case 3: browsecampus(G);
39、break; case 4: near(G); break; case 0: return; break; default: cout<<"您的輸入有誤,任意鍵繼續(xù)."<<endl; getch(); void seeabout(mgraph &G) /景點信息int a; int b=1;system("cls");browse(G); while(b) cout<<"請輸入要查找的景點信息"<<endl; cin>>a; a-;if(a>=0&&am
40、p;a<G.ve*num)cout<<a+1<<"."<<G.ve*<<endl<<G.ve*sa.inf<<endl; else cout<<"輸入錯誤,無此景點"<<endl; cout<<"返回前臺系統(tǒng)按0,繼續(xù)查找按1"<<endl; cin>>b;while(b!=0&&b!=1)cout<<"返回前臺系統(tǒng)按0,繼續(xù)查找按1"&
41、lt;<endl;cin>>b; void shortestpath_dij(mgraph G) /該景點到其他景點的最短路徑線路及距離 int b=1,i,j,vt,v,v0,w,min; bool SN; int DN,PathN; int n=G.ve*num; system("cls"); browse(G); while(b) cout<<"請輸入要查詢路徑的兩個景點的編號"<<endl; cin>>v0; v0-; cin>>vt; vt-; for(v=0;v<n;v+
42、) Sv=false; Dv=G.adjv0v; if(Dv<9999) Pathv=v0;/v0是v的前趨 else Pathv=-1;/v無前趨 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;/選擇一條當前的最短路徑,終點為v Sv=true; /將v參加S for(w=0;w<n;w+)/更新當前最短路徑及距離 if(!Sw&&(Dv+G.adjvw<Dw) Dw=Dv+G.adjvw; Pat
43、hw=v; cout<<"距離為:"<<endl; cout<<Dvt<<endl; cout<<"要經(jīng)過"<<endl; 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.ve*<<"->" cout<<vt+1<&l
44、t;"."<<G.ve*<<endl; cout<<"返回后臺系統(tǒng)按0,繼續(xù)查詢按1"<<endl; cin>>b;void browsecampus(mgraph G) /輸出學校全部景點的信息:編號、名稱、介紹int k;for(int i=0;i<G.ve*num;i+)k=i+1;cout<<k<<"."<<G.ve*<<endl<<G.ve*si.inf<<e
45、ndl;cout<<"按任意鍵返回前臺系統(tǒng)"<<endl;getch();void near(mgraph G) /相鄰的景點及其距離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.ve*num;i+) for(j=0;j<G.ve*num;j+) if(G.adjij!=9999)if(!aij)cout<<i+1&
46、lt;<" <-> "<<j+1<<"t"<<G.adjij<<endl;aij=true;aji=true; cout<<"返回后臺系統(tǒng)按0"<<endl; cin>>b; /后臺函數(shù)/ void changegraph(mgraph &G,Password &pw) /修改圖信息 int n; while(1) system("cls"); cout<<"*歡迎使用后臺系統(tǒng)
47、*"<<endl; cout<<"(1)修改一個已有景點的相關(guān)信息"<<endl; cout<<"(2)刪除一個景點及其相關(guān)信息"<<endl; cout<<"(3)刪除一條路徑"<<endl; cout<<"(4)增加一條路徑"<<endl; cout<<"(5)修改一條路徑長度"<<endl; cout<<"(6)增加景點&quo
48、t;<<endl; cout<<"(7)修改密碼"<<endl; cout<<"(8)恢復(fù)初始狀態(tài)"<<endl; cout<<"(0)返回上一級菜單"<<endl; cout<<"請輸入您的選擇(0-8):" cin>>n; switch(n) case 1: changeP(G,pw); break; case 2: deleteP(G,pw); break; case 3: deleteL(G,pw);
49、 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: return; break; default: cout<<"您的輸入有誤,任意鍵繼續(xù)."<<endl; getch(); void changeP(mgraph &G,Password &pw) /修改一個已有景點的相
50、關(guān)信息int a; int b=1; while(b) system("cls");browse(G);cout<<"請輸入要修改景點信息的"<<endl; cin>>a; a-;if(a>=0&&a<=G.ve*num) cout<<a+1<<"."<<G.ve*<<endl<<G.ve*sa.inf<<endl; cout<<"請輸入該景點的修改后的信息&quo
51、t;<<endl; cin>>G.ve*sa.inf; cout<<"修改成功!"<<endl; cout<<"是否要保存.保存按1,不保存按2"<<endl; int c; cin>>c; if(c=1) writet*t(G,pw); elsecgraph(G,pw); else cout<<"error!輸入有誤!"<<endl; cout<<"返回后臺系統(tǒng)按0,繼續(xù)修改按1"<<
52、;endl; cin>>b; void deleteP(mgraph &G,Password &pw) /刪除一個景點及其相關(guān)信息int b=1,i,j,k; while(b) system("cls");browse(G);cout<<"請輸入要刪除的景點的編號"<<endl; cin>>i; i-; if(i>=0&&i<=G.ve*num) for(j=i;j<G.ve*num-1;j+) G.ve*sj=G.ve*sj+1; for(k=0;k<
53、;G.ve*num-1;k+) G.adjkj=G.adjkj+1; for(j=i;j<G.ve*num-1;j+) for(k=0;k<G.ve*num-1;k+) G.adjjk=G.adjj+1k; G.ve*num-; G.arum=0; for(i=0;i<G.ve*num;i+) for(j=0;j<G.ve*num;j+) if(G.adjij!=9999) G.arum+; G.arum=G.arum/2; b=0; cout<<"刪除成功!"<<endl; if(b!=0) cout<<&quo
54、t;輸入有誤!請看清楚!"<<endl; else cout<<"是否要保存.保存按1,不保存按2"<<endl; int c; cin>>c; if(c=1) writet*t(G,pw); elsecgraph(G,pw); cout<<"返回后臺系統(tǒng)按0,繼續(xù)刪除按1"<<endl; cin>>b; void deleteL(mgraph &G,Password &pw) /刪除一條路徑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=fals
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州大學《影視音樂欣賞》2023-2024學年第一學期期末試卷
- 貴陽幼兒師范高等??茖W?!段枧_語言基礎(chǔ)》2023-2024學年第一學期期末試卷
- 2025江蘇省建筑安全員A證考試題庫及答案
- 貴陽學院《復(fù)合材料學》2023-2024學年第一學期期末試卷
- 2025重慶建筑安全員-B證考試題庫附答案
- 2025年-浙江省安全員C證考試(專職安全員)題庫附答案
- 2025貴州省建筑安全員-C證考試(專職安全員)題庫及答案
- 廣州醫(yī)科大學《材料創(chuàng)新導(dǎo)論》2023-2024學年第一學期期末試卷
- 2025四川省建筑安全員知識題庫附答案
- 2025遼寧建筑安全員B證(項目經(jīng)理)考試題庫
- 2024年道路清障拖車服務(wù)合同協(xié)議3篇
- 2025年1月八省聯(lián)考河南新高考物理試卷真題(含答案詳解)
- 建設(shè)工程檢試驗工作管理實施指引
- 軟件租賃合同范例
- 匯川技術(shù)在線測評題及答案
- 廣東省廣州市2023-2024學年高一上學期期末物理試卷(含答案)
- 安徽省蕪湖市2023-2024學年高一上學期期末考試 物理 含解析
- 食品企業(yè)產(chǎn)品出廠檢驗報告
- 鍋爐本體水壓試驗記錄
- 綜治工作中心信訪穩(wěn)定和矛盾糾紛排查化解工作流程圖
- 牛初乳知識課件
評論
0/150
提交評論