校園導遊諮詢

2021-09-08 13:24:20 字數 2340 閱讀 9086

設計乙個校園導遊程式,為來訪的客人提供各種資訊查詢服務。

(1)設計學校的校園平面圖,所含景點不少於10個,以圖中頂點表示校內各景點,存放景點名稱、代號、簡介等資訊;以邊表示路徑,存放路徑長度等相關資訊;

(2)提供基本資訊的修改功能;

(3)為來訪客人提供圖中任意景點相關資訊的查詢;

(4)為來訪客人提供景點的問路查詢,即已知乙個景點,查詢到某景點之 間的一條最短路徑及長度。

這道題主要是圖的應用涉及到用弗洛伊德求兩點之間的最短路徑。我的datatype中有景點代號、景點名稱、景點介紹這些成員,在圖的資訊中包括乙個二維陣列用來儲存圖中路徑的資訊,一維陣列來儲存節點資訊,還有兩個變數用來記錄行和列的數目。

初始化時將每個景點的全部資訊賦值給相應的變數,給字串型別的變數賦值時可以使用賦值函式,然後再將可達路徑的長度賦值給陣列,將不可達的賦值為無窮大,將自己到自己的賦值為0.

顯示景點資訊時只需要遍歷陣列輸出即可。查詢資訊時依舊是遍歷陣列,當找到與輸入的資訊相匹配的元素時,根據要求輸出元素的資訊即可;編輯資訊時也是遍歷陣列,當找到與輸入的資訊相匹配的元素時,將該元素的資訊替換成要編輯的資訊即可。

求兩個景點之間的最短路徑時是用弗洛伊德演算法,具體是:例如求vi和vj之間的最短距離,在vi和vj之間加入點v0,比較(vi,vj)和(vi,v0,vj)的路徑長度,取其中較短者作為vi到vj的中間頂點序號不大於0的最短路徑。以此類推,在vi和vj之間加入vk,這樣經過n次比較之後,最後求得的必是從vi到vj的最短路徑,按此方法,可以同時求得各對頂點間的最短路徑。

#include#include#include#include#define inf 0x3f3f3f3f;

#define n 10

using namespace std;

const int max_v=50;

int path[max_v][max_v];

typedef struct

datatype;

typedef struct

view;

typedef struct

amgraph;

void displaytu()

void init(amgraph &am)

am.pl[1][2]=am.pl[2][1]=50;

am.pl[1][3]=am.pl[3][1]=300;

am.pl[2][3]=am.pl[3][2]=200;

am.pl[2][10]=am.pl[10][2]=460;

am.pl[1][5]=am.pl[5][1]=200;

am.pl[1][10]=am.pl[10][1]=400;

am.pl[3][5]=am.pl[5][3]=800;

am.pl[3][4]=am.pl[4][3]=900;

am.pl[4][5]=am.pl[5][4]=400;

am.pl[5][10]=am.pl[10][5]=500;

am.pl[5][9]=am.pl[9][5]=400;

am.pl[5][6]=am.pl[6][5]=700;

am.pl[8][10]=am.pl[10][8]=150;

am.pl[8][9]=am.pl[9][8]=100;

am.pl[6][8]=am.pl[8][6]=260;

am.pl[6][7]=am.pl[7][6]=50;

am.pl[6][4]=am.pl[4][6]=1000;

am.pl[7][8]=am.pl[8][7]=200;

am.pl[9][10]=am.pl[10][9]=50;

}void display(amgraph am)

void edit(amgraph &am)

}system("pause");

system("cls");

}void query(amgraph am)

}system("pause");

system("cls");

}void shortestpath(amgraph am)

printf("%s\n\n",am.view[b].data.name);

printf("兩景點之間的路徑長度為:%dm\n\n",sum);

system("pause");

system("cls");

}void menu()

int main()

else if(a!=1&&a!=2&&a!=3&&a!=4)

switch(a)

}return 0;}/*

修改:zzti_1

圖書館圖書館館迎門而立,俯瞰國道,是學校的標誌性建築之一.

*/

校園導遊諮詢

include include define maxv 20 define inf 32767 typedef struct mgraph 狄克斯特拉演算法 void ppath int path,int i,int v void printf int dist,int path,int s,int...

資料結構 校園導遊諮詢系統

include string.h include stdio.h include malloc.h include stdlib.h define max 20000 define num 9 typedef struct arccell arccell typedef struct vertext...

演算法設計 虎溪校園導遊系統

本科課程參見 軟體學院那些課 設計乙個校園導遊程式,為來訪的客人提供資訊查詢服務。1 設計學校的校園平面圖,所含景點不少於10個,以圖中頂點表示校內各景點,存放景點名稱 代號 簡介等資訊,以邊表示路徑,存放路徑長度等相關資訊。2 為來訪客人提供圖中任意景點相關資訊的查詢 3 為來訪客人提供從校門口到...