設計乙個校園導遊程式,為來訪的客人提供各種資訊查詢服務。
(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 為來訪客人提供從校門口到...