文檔校園導(dǎo)游圖_第1頁(yè)
文檔校園導(dǎo)游圖_第2頁(yè)
文檔校園導(dǎo)游圖_第3頁(yè)
文檔校園導(dǎo)游圖_第4頁(yè)
文檔校園導(dǎo)游圖_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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)介

計(jì)算機(jī)科學(xué)與工程學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告2014—2015學(xué)年第二學(xué)期小組成員學(xué)生姓名專業(yè)班級(jí)學(xué)號(hào)_黃煜__計(jì)算機(jī)132__201311243__范文浩__計(jì)算機(jī)132__201313463_指導(dǎo)教師:張沛露計(jì)算機(jī)科學(xué)與工程學(xué)院2015年6月數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)(報(bào)告)一、課程設(shè)計(jì)題目和要求 題目:校園導(dǎo)游圖要求:用無(wú)向網(wǎng)表示本學(xué)校校園景點(diǎn)平面圖,選取若干個(gè)有代表性的景點(diǎn)抽象成無(wú)向帶權(quán)圖,圖中頂點(diǎn)表示校內(nèi)各頂點(diǎn),邊上權(quán)值表示路徑長(zhǎng)度。能夠:(1)為來(lái)訪客人查詢各景點(diǎn)的相關(guān)信息;(2)為來(lái)訪客人查詢圖中任意兩個(gè)景點(diǎn)間的最短路徑(3)為來(lái)訪客人查詢圖中任意兩個(gè)景點(diǎn)間的所有路徑(4)為來(lái)訪客人修改圖中頂點(diǎn)和邊的信息(5)為來(lái)訪客人增加景點(diǎn)和路徑(6)為來(lái)訪客人刪除景點(diǎn)和路徑(7)為來(lái)訪客人輸出對(duì)應(yīng)編號(hào)景點(diǎn)的信息二、開(kāi)發(fā)平臺(tái) 處理器:IntelCorei5物理內(nèi)存:2048M操作系統(tǒng):MicrosoftWindows7開(kāi)發(fā)環(huán)境:MicrosoftVC6.0三、自定義數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)對(duì)象V:V具有相同特性的數(shù)組元素的集合,稱為頂點(diǎn)集數(shù)據(jù)關(guān)系R:R={VR}VR={<x,y>|P(x,y)^(x,y屬于V)}ADTGraph{數(shù)據(jù)對(duì)象V:一個(gè)集合,該集合中的所有元素具有相同的特性數(shù)據(jù)關(guān)系R:R={VR}VR={<x,y>|P(x,y)^(x,y屬于V)}基本操作:(1)

initgraph(&G);(2)

creatgraph(mgraph&G)

;(3)

DeleteplanArc(mgraph&G);

(4)

DeleteVertex(mgraph&G);(5)

enarc(mgraph&G);

(6)

enverx(mgraph&G)

;}ADTGraph應(yīng)輸出所有景點(diǎn)的信息,如下:景點(diǎn)編號(hào)(position)景點(diǎn)名稱(name)景點(diǎn)介紹(intoduction)0土木教學(xué)樓吉林建筑大學(xué)特色建筑,樓高5層1逸夫樓新建樓,樓高5層,內(nèi)含學(xué)術(shù)報(bào)告廳2行政樓校領(lǐng)導(dǎo)日常工作之處,樓高5層"3圖書館樓高5層,藏書逾十萬(wàn)4教學(xué)樓A區(qū)樓高5層,學(xué)生學(xué)習(xí)自習(xí)地點(diǎn)5教學(xué)樓B區(qū)樓高5層,學(xué)生學(xué)習(xí)自習(xí)地點(diǎn)6教學(xué)樓C區(qū)樓高5層,學(xué)生學(xué)習(xí)自習(xí)地點(diǎn)7南門建工南門,旁邊是財(cái)經(jīng)學(xué)院8實(shí)驗(yàn)樓做實(shí)驗(yàn)的地點(diǎn),樓高5層,內(nèi)有大量先進(jìn)實(shí)驗(yàn)儀器9文體中心學(xué)生體育鍛煉地點(diǎn)表1:建工各景點(diǎn)信息實(shí)際輸出的信息為:圖1:建工各景點(diǎn)信息操作成功,與預(yù)期結(jié)果一致。2.打印校園導(dǎo)游圖的鄰接矩陣:圖2:建工各景點(diǎn)鄰接矩陣操作成功,與預(yù)期結(jié)果一致。3、查詢景點(diǎn)間最短路徑:比如:查詢景點(diǎn)1(逸夫樓)和3(圖書館)之間的最短路徑,預(yù)期結(jié)果應(yīng)為:1520逸夫樓—>教學(xué)樓A區(qū)—>圖書館,1520路徑總長(zhǎng)度為35圖3:景點(diǎn)間最短路徑操作成功,與預(yù)期結(jié)果一致。4、景點(diǎn)信息查詢:比如:查詢景點(diǎn)為1的景點(diǎn)信息,預(yù)期結(jié)果應(yīng)為:景點(diǎn)序號(hào)(position)景點(diǎn)名稱(name)景點(diǎn)介紹(intoduction)1逸夫樓新建樓,樓高5層,內(nèi)含學(xué)術(shù)報(bào)告廳表2:景點(diǎn)信息1圖4:景點(diǎn)信息查詢與預(yù)期結(jié)果一致。查詢成功。5、更改圖的信息:更改圖信息主頁(yè)面:圖5:更改圖信息主頁(yè)面5.1重新建圖比如重新建一個(gè)有3個(gè)景點(diǎn)和3條路徑的無(wú)向圖:景點(diǎn)信息分別為:景點(diǎn)序號(hào)(position)景點(diǎn)名稱(name)景點(diǎn)介紹(intoduction)0計(jì)算機(jī)樓信息中心1第一食堂飲食中心2B#宿舍男生宿舍表3:景點(diǎn)信息2矩陣關(guān)系為:015251505025500圖6:重新建圖a圖7:重新建圖b與預(yù)期結(jié)果一致,重新建圖成功。5.2刪除景點(diǎn)比如刪除景點(diǎn)編號(hào)為1的景點(diǎn):則輸出的矩陣中應(yīng)失去原第一行第一列,并且其信息不再出現(xiàn)在校園導(dǎo)游中:刪除景點(diǎn)前的圖的信息(見(jiàn)圖1)刪除景點(diǎn)前的圖的矩陣(見(jiàn)圖2)刪除景點(diǎn)后的圖的信息和矩陣:圖8:刪除景點(diǎn)后的圖的信息和矩陣與預(yù)期結(jié)果一致,刪除景點(diǎn)成功。5.3刪除兩景點(diǎn)間的路徑比如刪除編號(hào)為0和2的兩景點(diǎn)間的路徑,則打印出來(lái)的矩陣在第0行第2列和第2行第0列的值應(yīng)為0。刪除路徑前的矩陣:(見(jiàn)圖2)刪除路徑后的矩陣:圖9:刪除路徑后的矩陣與預(yù)期結(jié)果一致,刪除路徑成功5.4增加景點(diǎn)信息比如增加一個(gè)景點(diǎn),其信息為:景點(diǎn)序號(hào)(position)景點(diǎn)名稱(name)景點(diǎn)介紹(intoduction)10A#7宿舍樓計(jì)算機(jī)學(xué)院女生宿舍表4:景點(diǎn)信息3對(duì)應(yīng)的矩陣中應(yīng)增加一行一列,第10行和第10列上所有元素都應(yīng)為0,輸出的圖信息中最后應(yīng)增加上述的信息。增加景點(diǎn)前的圖信息:(見(jiàn)圖1)增加景點(diǎn)前的矩陣:(見(jiàn)圖2)增加景點(diǎn)后的圖信息和矩陣:圖10:增加景點(diǎn)后的圖信息和矩陣與預(yù)期結(jié)果一致,增加景點(diǎn)成功。5.5增加一條路徑比如在景點(diǎn)0和4之間加一條長(zhǎng)度為10的路徑,則在第0行第4列與第4行第0列元素應(yīng)為10。增加路徑前的矩陣:(見(jiàn)圖2)增加路徑后的矩陣:圖11:增加路徑后的矩陣與預(yù)期結(jié)果一致,增加路徑成功。5.6更新圖信息比如要更新一個(gè)景點(diǎn)和一條路徑的信息,將景點(diǎn)信息:景點(diǎn)序號(hào)(position)景點(diǎn)名稱(name)景點(diǎn)介紹(intoduction)1逸夫樓新建樓,樓高5層,內(nèi)含學(xué)術(shù)報(bào)告廳表5:景點(diǎn)信息4改為:景點(diǎn)序號(hào)(position)景點(diǎn)名稱(name)景點(diǎn)介紹(intoduction)1B#8男生宿舍表6:景點(diǎn)信息5更改頂點(diǎn)編號(hào)為0和3路徑長(zhǎng)度,路徑由30改為15。更改后的圖中編號(hào)為1的信息應(yīng)變?yōu)楸砦?;矩陣中?行第3列和第3行第0列元素應(yīng)由30變?yōu)?5.更改景點(diǎn)前的圖信息:(見(jiàn)圖1)更改路徑前的矩陣:(見(jiàn)圖2)更新后的圖信息和矩陣:圖12:更新后的圖信息和矩陣6、查找兩頂點(diǎn)間的所有路徑比如查找1,3兩點(diǎn)間的所有路徑,所有路徑為:圖13:兩頂點(diǎn)間的所有路徑七測(cè)試成果操作主界面圖14:操作主頁(yè)面查看建工景點(diǎn)平面圖(見(jiàn)圖1)打印無(wú)向圖鄰接矩陣(見(jiàn)圖2)查詢兩頂點(diǎn)間的最短路徑(見(jiàn)圖3)按編號(hào)查詢景點(diǎn)信息(見(jiàn)圖4)查詢兩頂點(diǎn)間的所有路徑(見(jiàn)圖14)更改圖信息:(見(jiàn)圖5)退出系統(tǒng)圖15:退出系統(tǒng)附錄1組內(nèi)成員分工情況說(shuō)明黃煜負(fù)責(zé)代碼的核心算法的描寫范文浩負(fù)責(zé)問(wèn)題的分析與代碼的糾錯(cuò)源代碼由兩人共同思考完成附錄2程序?qū)崿F(xiàn)代碼#include<iostream>#include<malloc.h>#include<string>#include<iomanip>usingnamespacestd;#definemax_ver_num20#defineOK1#defineFALSE0#defineError-1#defineA1000#defineTRUE1typedefstructarcnode//設(shè)置邊的權(quán)值信息{intadj;//路徑權(quán)值}arcnode,adjarcs[max_ver_num][max_ver_num];typedefstructverdata//設(shè)置景點(diǎn)信息{intposition;charname[60];charintroduction[1000];}verdata;typedefstructmgraph{verdatavexs[max_ver_num];adjarcsarcs;intvernum,arcnum;}mgraph;//全局變量intvisited[20];intd[35];mgraphg;intinitgraph(mgraph&G)//校園導(dǎo)游圖的初始化{inti,j;G.vernum=10;G.arcnum=20;//初始化景點(diǎn)平面圖for(i=0;i<G.vernum;i++)G.vexs[i].position=i;strcpy(G.vexs[0].name,"土木教學(xué)樓");strcpy(G.vexs[1].name,"逸夫樓");strcpy(G.vexs[2].name,"行政樓");strcpy(G.vexs[3].name,"圖書館");strcpy(G.vexs[4].name,"教學(xué)樓A區(qū)");strcpy(G.vexs[5].name,"教學(xué)樓B區(qū)");strcpy(G.vexs[6].name,"教學(xué)樓C區(qū)");strcpy(G.vexs[7].name,"南門");strcpy(G.vexs[8].name,"實(shí)驗(yàn)樓");strcpy(G.vexs[9].name,"文體中心");strcpy(G.vexs[0].introduction,"吉林建筑大學(xué)特色建筑,樓高5層");strcpy(G.vexs[1].introduction,"新建樓,樓高5層,內(nèi)含學(xué)術(shù)報(bào)告廳");strcpy(G.vexs[2].introduction,"校領(lǐng)導(dǎo)日常工作之處,樓高5層");strcpy(G.vexs[3].introduction,"樓高5層,藏書逾十萬(wàn)");strcpy(G.vexs[4].introduction,"樓高5層,學(xué)生學(xué)習(xí)自習(xí)地點(diǎn)");strcpy(G.vexs[5].introduction,"樓高5層,學(xué)生學(xué)習(xí)自習(xí)地點(diǎn)");strcpy(G.vexs[6].introduction,"樓高5層,學(xué)生學(xué)習(xí)自習(xí)地點(diǎn)");strcpy(G.vexs[7].introduction,"建工南門,旁邊是財(cái)經(jīng)學(xué)院");strcpy(G.vexs[8].introduction,"做實(shí)驗(yàn)的地點(diǎn),樓高5層,內(nèi)有大量先進(jìn)實(shí)驗(yàn)儀器");strcpy(G.vexs[9].introduction,"學(xué)生體育鍛煉地點(diǎn)");//初始化邊矩陣for(i=0;i<G.vernum;i++)for(j=0;j<G.vernum;j++)G.arcs[i][j].adj=A;G.arcs[0][1].adj=15;G.arcs[0][2].adj=25;G.arcs[0][3].adj=30;G.arcs[1][4].adj=15;G.arcs[1][7].adj=20;G.arcs[1][9].adj=40;G.arcs[2][5].adj=10;G.arcs[2][8].adj=15;G.arcs[3][6].adj=30;G.arcs[3][8].adj=20;G.arcs[4][7].adj=10;G.arcs[4][9].adj=60;G.arcs[5][8].adj=25;G.arcs[6][8].adj=50;G.arcs[7][9].adj=35;G.arcs[4][5].adj=20;G.arcs[5][6].adj=25;G.arcs[5][7].adj=30;G.arcs[6][7].adj=15;G.arcs[6][9].adj=20;G.arcs[7][8].adj=40;G.arcs[8][9].adj=10;G.arcs[2][9].adj=15;G.arcs[3][9].adj=30;G.arcs[3][4].adj=20;G.arcs[4][8].adj=10;G.arcs[4][5].adj=60;G.arcs[5][9].adj=25;G.arcs[1][8].adj=50;G.arcs[1][7].adj=35;for(j=0;j<G.vernum;j++)for(i=0;i<G.vernum;i++)G.arcs[i][j].adj=G.arcs[j][i].adj;return1;}intlocatevex(mgraphc,intv)//景點(diǎn)的定位{inti;for(i=0;i<c.vernum;i++)if(v==c.vexs[i].position)returni;return-1;}voidprintmatrix(mgraphG)//打印圖的鄰接矩陣;{inti,j;cout<<"對(duì)應(yīng)的矩陣為:"<<endl;for(i=0;i<G.vernum;i++){for(j=0;j<G.vernum;j++){if(G.arcs[i][j].adj<A)cout<<setiosflags(ios::left)<<setw(5)<<G.arcs[i][j].adj;elsecout<<setiosflags(ios::left)<<setw(5)<<0;}cout<<endl;}}//求最短路徑,弗洛伊德算法voidshortestpath_Floyd(mgraph*G){intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];//D路徑for(v=0;v<G->vernum;v++)for(w=0;w<G->vernum;w++){D[v][w]=G->arcs[v][w].adj;for(u=0;u<G->vernum;u++)p[v][w][u]=0;if(D[v][w]<A){p[v][w][v]=1;p[v][w][w]=1;}}for(u=0;u<G->vernum;u++)for(v=0;v<G->vernum;v++)for(w=0;w<G->vernum;w++)if(D[v][u]+D[u][w]<D[v][w]){D[v][w]=D[v][u]+D[u][w];for(i=0;i<G->vernum;i++)p[v][w][i]=p[v][u][i]||p[u][w][i];}while(flag){cout<<"請(qǐng)輸入出發(fā)點(diǎn)編號(hào):";cin>>k;cout<<"請(qǐng)輸入目的地的編號(hào):"<<endl;cin>>j;if(k<0||k>G->vernum||j<0||j>G->vernum){cout<<"景點(diǎn)編號(hào)不存在!請(qǐng)重新輸入出發(fā)點(diǎn)和目的地的編號(hào):";cout<<"請(qǐng)輸入出發(fā)點(diǎn)編號(hào):";cin>>k;cout<<"請(qǐng)輸入目的地的編號(hào):"<<endl;cin>>j;}if(k>=0&&k<G->vernum&&j>=0&&j<G->vernum)flag=0;}printf("%s",G->vexs[k].name);for(u=0;u<G->vernum;u++)if(p[k][j][u]&&k!=u&&j!=u)printf("-->%s",G->vexs[u].name);printf("-->%s",G->vexs[j].name);printf("總路線長(zhǎng)%dm\n",D[k][j]);}//兩個(gè)景點(diǎn)間的所有路徑voidAllpath(mgraph*G){intv,w,k,j,flag=1,p[10][10],D[10][10];while(flag){cout<<"請(qǐng)輸入出發(fā)點(diǎn)和目的地的編號(hào):"<<endl;cout<<"請(qǐng)輸入出發(fā)點(diǎn)編號(hào):";cin>>k;cout<<"請(qǐng)輸入目的地的編號(hào):";cin>>j;if(k<0||k>G->vernum||j<0||j>G->vernum){cout<<"景點(diǎn)編號(hào)不存在!請(qǐng)重新輸入出發(fā)點(diǎn)和目的地的編號(hào):"<<endl;cout<<"請(qǐng)輸入出發(fā)點(diǎn)編號(hào):";cin>>k;cout<<"請(qǐng)輸入目的地的編號(hào):"<<endl;cin>>j;}if(k>=0&&k<G->vernum&&j>=0&&j<G->vernum)flag=0;}for(v=0;v<G->vernum;v++)for(w=0;w<G->vernum;w++){D[v][w]=G->arcs[v][w].adj;if(D[v][w]!=A){p[v][w]=1;p[w][v]=1;}}if(p[k][j]==1){cout<<G->vexs[k].name;cout<<"-->"<<G->vexs[j].name;cout<<"總路線長(zhǎng)"<<D[k][w]+D[w][j]<<endl;}for(w=0;w<G->vernum;w++)if(p[k][w]==1&&p[w][j]==1){cout<<G->vexs[k].name;cout<<"-->"<<G->vexs[w].name;cout<<"-->"<<G->vexs[j].name;cout<<"總路線長(zhǎng)"<<D[k][w]+D[w][j]<<endl;}for(v=0;v<G->vernum;v++)for(w=0;w<G->vernum;w++)if(p[k][v]==1&&p[v][w]==1&&p[w][j]==1){cout<<G->vexs[k].name;cout<<"-->"<<G->vexs[v].name;cout<<"-->"<<G->vexs[w].name;cout<<"-->"<<G->vexs[j].name;cout<<"總路線長(zhǎng)"<<D[k][v]+D[w][j]+D[v][w]<<endl;}}voiddisplaycampus(mgraphG)//顯示景點(diǎn)信息,顯示景點(diǎn)信息平面圖;{inti;cout<<"景點(diǎn)編號(hào)"<<"景點(diǎn)名稱"<<"景點(diǎn)簡(jiǎn)介"<<endl;for(i=0;i<G.vernum;i++){cout<<""<<G.vexs[i].position<<"";cout<<G.vexs[i].name<<"";cout<<G.vexs[i].introduction<<""<<endl;}}intcreatgraph(mgraph&G)//構(gòu)造無(wú)向圖的鄰接矩陣{inti,n,m,distance,v0,v1;cout<<"請(qǐng)輸入矩陣對(duì)應(yīng)的頂點(diǎn)數(shù):";cin>>G.vernum;cout<<"請(qǐng)輸入矩陣對(duì)應(yīng)的邊數(shù):";cin>>G.arcnum;for(i=0;i<G.vernum;i++){cout<<"請(qǐng)輸入景點(diǎn)編號(hào):";cin>>G.vexs[i].position;cout<<"請(qǐng)輸入景點(diǎn)名稱:";cin>>G.vexs[i].name;cout<<"請(qǐng)輸入景點(diǎn)簡(jiǎn)介:";cin>>G.vexs[i].introduction;}for(i=0;i<G.vernum;i++)for(intj=0;j<G.vernum;j++)G.arcs[i][j].adj=0;for(i=0;i<G.arcnum;i++){cout<<"輸入第"<<i<<"條邊的起點(diǎn)編號(hào):";cin>>v0;cout<<"輸入第"<<i<<"條邊的終點(diǎn)編號(hào):";cin>>v1;cout<<"輸入第"<<i<<"條邊的長(zhǎng)度編號(hào):";cin>>distance;m=locatevex(G,v0);n=locatevex(G,v1);if(m>=0&&n>=0)G.arcs[m][n].adj=G.arcs[n][m].adj=distance;}displaycampus(G);printmatrix(G);return1;}intDeleteVertex(mgraph&G)//刪除景點(diǎn)信息{inti,j,v,m;cout<<"請(qǐng)輸入要?jiǎng)h除的景點(diǎn)編號(hào):";cin>>v;m=locatevex(G,v);intflag=1;while(flag){if(m<0){cout<<"無(wú)此景點(diǎn),請(qǐng)重新輸入:";cin>>v;}m=locatevex(G,v);if(m>0){for(i=m;i<G.vernum;i++){strcpy(G.vexs[i].name,G.vexs[i+1].name);strcpy(G.vexs[i].introduction,G.vexs[i+1].introduction);}flag=0;}}for(i=m;i<G.vernum;i++)//刪除行for(j=0;j<G.vernum;j++)G.arcs[i][j]=G.arcs[i+1][j];for(i=m;i<G.vernum;i++)//刪除列for(j=0;j<G.vernum;j++)G.arcs[j][i]=G.arcs[j][i+1];G.vernum--;displaycampus(G);printmatrix(G);return1;}intDeleteplanArc(mgraph&G)//刪除圖一條邊信息;{inti,j,v0,v1;intflag=1;while(flag){cout<<"請(qǐng)輸入要?jiǎng)h除的一條邊對(duì)應(yīng)的兩個(gè)頂點(diǎn)編號(hào):"<<endl;cin>>v0>>v1;if(v0<0||v0>G.vernum||v0<0||v1>G.vernum){cout<<"景點(diǎn)編號(hào)不存在!請(qǐng)重新輸入要?jiǎng)h除的一條邊對(duì)應(yīng)的兩個(gè)頂點(diǎn)編號(hào):";cin>>v0>>v1;}if(v0>=0&&v0<G.vernum&&v1>=0&&v1<G.vernum)flag=0;}i=locatevex(G,v0);j=locatevex(G,v1);G.arcs[i][j].adj=A;G.arcs[j][i].adj=A;G.arcnum--;displaycampus(G);printmatrix(G);return1;}intenverx(mgraph&G)//增加景點(diǎn){inti;cout<<"請(qǐng)輸入要添加的景點(diǎn)的信息:"<<endl;cout<<"請(qǐng)輸入景點(diǎn)編號(hào):";cin>>G.vexs[G.vernum].position;cout<<"請(qǐng)輸入景點(diǎn)名稱:";cin>>G.vexs[G.vernum].name;cout<<"請(qǐng)輸入景點(diǎn)簡(jiǎn)介:";cin>>G.vexs[G.vernum].introduction;cout<<endl;G.vernum++;for(i=0;i<G.vernum;i++)G.arcs[i][G.vernum-1].adj=G.arcs[i][G.vernum-1].adj=A;displaycampus(G);printmatrix(G);return1;}intenarc(mgraph&G)//增加路徑{intv0,v1,distance;cout<<"請(qǐng)輸入增加路徑的起始點(diǎn)編號(hào):";cin>>v0;cout<<"請(qǐng)輸入增加路徑的終點(diǎn)編號(hào):"<<endl;cin>>v1;cout<<"請(qǐng)輸入增加路徑長(zhǎng)度"<<endl;cin>>distance;G.arcs[v0][v1].adj=G.arcs[v1][v0].adj=distance;displaycampus(G);printmatrix(G);return1;}voidseaabout(mgraphG)//景點(diǎn)信息查詢;{intn,flag=1;cout<<"請(qǐng)輸入要查詢的景點(diǎn)編號(hào):";cin>>n;while(flag){if(n<0||n>G.vernum){cout<<"該景點(diǎn)不存在,請(qǐng)重新輸入:";cin>>n;}else{cout<<"景點(diǎn)編號(hào)"<<"景點(diǎn)名稱"<<"景點(diǎn)簡(jiǎn)介"<<endl;cout<<""<<G.vexs[n].position<<"";cout<<G.vexs[n].name<<"";cout<<G.vexs[n].introduction<<""<<endl;flag=0;}}}intnewgraph(mgraph&G)//更新景點(diǎn)的信息{intn,m,t;cout<<"請(qǐng)輸入要更新的景點(diǎn)數(shù):"<<endl;cin>>n;while(n<0||n>G.vernum){cout<<"該景點(diǎn)不存在,請(qǐng)重新輸入:"<<endl;cin>>n;}for(inti=0;i<n;i++)//修改景點(diǎn)信息{cout<<"輸入景點(diǎn)的編號(hào):"<<endl;cin>>m;t=locatevex(G,m);cout<<"輸入景點(diǎn)的名稱:"<<endl;cin>>G.vexs[t].name;cout<<"輸入景點(diǎn)的簡(jiǎn)介:"<<endl;cin>>G.vexs[t].introduction;}cout<<"請(qǐng)輸入要更改的邊數(shù):"<<endl;cin>>n;intdistance,v0,v1;while(n<0||n>G.arcnum){cout<<"該路徑不存在,請(qǐng)重新輸入:"<<endl;cin>>n;}cout<<"輸入更新的路徑的信息:"<<endl;for(i=0;i<n;i++)//修改路徑信息{cout<<"起始景點(diǎn)編號(hào)v0:"<<endl;cin>>v0;cout<<"終點(diǎn)景點(diǎn)編號(hào)v1:"<<endl;cin>>v1;cout<<"路勁長(zhǎng)度:"<<endl;cin>>distance;m=locatevex(G,v0);t=locatevex(G,v1);if(m>=0&&t>=0)G.arcs[m][t].adj=G.arcs[t][m].adj=distance;}displaycampus(G);printmatrix(G);return1;}intchangegraph(mgraphG)//更改圖的信息{inti;cout<<"1、重新建圖2、刪除結(jié)點(diǎn)"<<endl;cout<<"3、刪除邊4、增加結(jié)點(diǎn)"<<endl;cout<<"5、增加邊6、更新圖信息"<<endl;cout<<"7、打印鄰接矩陣8、返回程序"<<endl;while(1){cout<<"請(qǐng)輸入要進(jìn)行的操作:";cin>>i;switch(i){case1:cout<<"重新建圖:"<<endl;creatgraph(g);break;case2:cout<<"刪除結(jié)點(diǎn):"<<endl;DeleteVertex(g);break;case3:cout<<"刪除邊:"<<endl;DeleteplanArc(g);break;case4:cout<<"增加結(jié)點(diǎn):"<<endl;enverx(g);break;case5:cout<<"增加邊:"<<endl;enarc(g);break;case6:cout<<"更新圖信息:"<<endl;newgraph(g);break;case7:cout<<"打印鄰接矩陣:"<<endl;printmatrix(g);break;case8:cout<<"返回程序:"<<endl;return1;}cout<<"1、重新建圖2、刪除結(jié)點(diǎn)"<<endl;cout<<"3、刪除邊4、增加結(jié)點(diǎn)"<<endl;cout<<"5、增加邊6、更新圖信息"<<endl;cout<<"7、打印鄰接矩陣8、返回程序"<<endl;}return1;}voidmain(){initgraph(g);cout<<"******************歡迎使用校園導(dǎo)游系統(tǒng)*******************

溫馨提示

  • 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)論