第一篇:旅游區(qū)導(dǎo)游圖
旅游區(qū)導(dǎo)游圖
題目?jī)?nèi)容: 問(wèn)題描述:
設(shè)某個(gè)旅游區(qū)共有n個(gè)旅游景點(diǎn)(n≥10),每個(gè)旅游景點(diǎn)都和相鄰的m個(gè)旅游景點(diǎn)(m≥2,m 以(Vi ,Vj ,d)的形式從鍵盤(pán)輸入建立該旅游區(qū)的旅游景點(diǎn)圖,其中:Vi和Vj表示兩個(gè)不同的旅游景點(diǎn),d表示這兩個(gè)景點(diǎn)之間的道路距離;該旅游景點(diǎn)圖采用鄰接鏈表存儲(chǔ)結(jié)構(gòu)。實(shí)現(xiàn)要求: ⑴ 旅游景點(diǎn)圖的輸出:分別以鄰接矩陣、鄰接鏈表的方式輸出該旅游景點(diǎn)圖。⑵ 相鄰景點(diǎn)查詢(xún):假設(shè)對(duì)于每個(gè)景點(diǎn),設(shè)置有簡(jiǎn)易的信息查詢(xún),要求能給出與該景點(diǎn)相鄰的所有景點(diǎn)(有直接的道路相通)及對(duì)應(yīng)的距離。 ⑶ 景點(diǎn)路線(xiàn)查詢(xún):假設(shè)對(duì)于每個(gè)景點(diǎn),設(shè)置有景點(diǎn)路線(xiàn)查詢(xún),要求能給出從該景點(diǎn)出發(fā)到任一其它景點(diǎn)的最短簡(jiǎn)單路徑及距離。 ⑷ 景點(diǎn)路線(xiàn)綜合查詢(xún):對(duì)于該旅游區(qū)的任意兩個(gè)景點(diǎn),找出它們之間的最短簡(jiǎn)單路徑及距離。 ⑸ 最佳旅游路線(xiàn)確定:假設(shè)該旅游區(qū)的入口也是出口,請(qǐng)確定一條最佳的旅游線(xiàn)路,該線(xiàn)路必須經(jīng)過(guò)所有的旅游景點(diǎn)(有些景點(diǎn)可以重復(fù)經(jīng)過(guò))且走的路最短。⑹ 設(shè)計(jì)一個(gè)菜單,上述操作要求都作為菜單中的主要菜單項(xiàng)。 代 碼 如 下: ································ #include“stdio.h” #include“malloc.h” #include “string.h” #define INFINITY 32767 /* 圖的最大權(quán)值,32767是整數(shù)表示的最大值*/ #define MAX_VEX 30 /* 最大頂點(diǎn)數(shù)目 */ #define MAX_VALUE 999999999 typedef int InfoType;typedef char VexType;typedef enum{DG=1, AG=2, WDG=3,WAG=4}GraphKind;/*枚舉常量定義旅游景點(diǎn)對(duì)應(yīng)的圖類(lèi)型*/ typedef struct Path { int vertex[MAX_VEX];int value;int count;}GPath; typedef struct MGraph { char vexs[MAX_VEX]; /*存放圖的鄰接矩陣的的頂點(diǎn),頂點(diǎn)向量 */ int arcs[MAX_VEX][MAX_VEX]; /*存放圖的鄰接矩陣的邊 */ int vexnum,arcnum; /*圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù) */ }MGraph; /*圖的鄰接鏈表轉(zhuǎn)換為矩陣后,圖的結(jié)構(gòu)定義 */ /*圖的鄰接矩陣存儲(chǔ)結(jié)構(gòu)中結(jié)點(diǎn)結(jié)構(gòu)體的定義*/ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct Linknode { char adjvex; /*鄰接點(diǎn)在頭結(jié)點(diǎn)數(shù)組中的位置(鄰接邊的弧頭頂點(diǎn)序號(hào))*/ InfoType info; /*與邊或弧相關(guān)的信息, 如權(quán)值 */ struct Linknode *nextarc; /*指向下一個(gè)表結(jié)點(diǎn) */ }LinkNode; /*鄰接邊單鏈表的結(jié)點(diǎn)結(jié)構(gòu)體 */ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct VexNode { char data; /*數(shù)據(jù)域存儲(chǔ)頂點(diǎn)信息 */ int indegree; /*頂點(diǎn)的度, 有向圖是入度或出度或沒(méi)有 */ LinkNode *firstarc; /*鏈域指向第一個(gè)表結(jié)點(diǎn)(鄰接邊頭指針)*/ }VexNode; /*頂點(diǎn)結(jié)點(diǎn)類(lèi)型定義 */ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct { GraphKind kind; /*圖的種類(lèi)標(biāo)志 */ int vexnum; /*頂點(diǎn)個(gè)數(shù) */ VexNode AdjList[MAX_VEX]; /*鄰接表數(shù)組 */ }ALGraph; /*圖的結(jié)構(gòu)定義 */ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct { VexType vex1, vex2; /*弧或邊所依附的兩個(gè)頂點(diǎn) */ InfoType info; /*與邊或弧相關(guān)的信息, 如權(quán)值 */ }ArcType; /*弧或邊的結(jié)構(gòu)定義 */ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Init_Graph(ALGraph * G) /*圖的初始化 */ { do { printf(“請(qǐng)確認(rèn)旅游景點(diǎn)的類(lèi)型(1:無(wú)向圖。2:有向圖。3:帶權(quán)有向圖。4:帶權(quán)無(wú)向圖):n”); } scanf(“%d”, &G->kind);if(G->kind==4)printf(“旅游區(qū)導(dǎo)游圖的類(lèi)型:帶權(quán)無(wú)向圖n”);else { } printf(“ ●您選擇的圖的類(lèi)型不對(duì)●n”); while(G->kind!=4);G->vexnum=0; /* 初始化頂點(diǎn)個(gè)數(shù)為0 */ } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int LocateVex(ALGraph *G, VexType vp) /*圖的頂點(diǎn)定位(圖的頂點(diǎn)定位實(shí)際上是確定一個(gè)頂點(diǎn)在AdjList數(shù)組中的某個(gè)元素的data域內(nèi)容。)*/ { int k;for(k=0;k /*如果存在此頂點(diǎn)返回頂點(diǎn)數(shù)組下標(biāo)值 return(-1); /*如果沒(méi)有則返回-1(圖中無(wú)此頂點(diǎn)) */ */ } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int AddVertex(ALGraph *G, char vp) /*向圖中增加頂點(diǎn)(向圖中增加一個(gè)頂點(diǎn)的操作,在AdjList數(shù)組的末尾增加一個(gè)數(shù)據(jù)元素。)*/ { int k;if(G->vexnum>=MAX_VEX){ } if(LocateVex(G,vp)!=-1){ printf(“所要添加的頂點(diǎn)已存在!n”);printf(“圖中頂點(diǎn)數(shù)已達(dá)到最多!n”); return(-1);return(-1);} G->AdjList[G->vexnum].data=vp;G->AdjList[G->vexnum].indegree=0;G->AdjList[G->vexnum].firstarc=NULL;k=++G->vexnum;return k;} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int AddArc(ALGraph *G, ArcType *arc)/*向圖中增加一條邊(弧)(根據(jù)給定的弧或邊所依附的頂點(diǎn),修改單鏈表:無(wú)向圖修改兩個(gè)單鏈表;)*/ { int k,j;LinkNode *p,*q;k=LocateVex(G,arc->vex1);j=LocateVex(G,arc->vex2);if(k==-1||j==-1) /*先判斷是否兩個(gè)頂點(diǎn)重復(fù)或者是否存在這兩個(gè)頂點(diǎn)*/ { printf(“該兩個(gè)景點(diǎn)為一點(diǎn)或兩景點(diǎn)都不存在,錯(cuò)誤!n”); return(-1);} p=(LinkNode *)malloc(sizeof(LinkNode));p->adjvex=arc->vex1;p->info=arc->info;p->nextarc=NULL; /* 邊的起始表結(jié)點(diǎn)賦值 */ q=(LinkNode *)malloc(sizeof(LinkNode));q->adjvex=arc->vex2;q->info=arc->info; q->nextarc=NULL; /* 邊的末尾表結(jié)點(diǎn)賦值 */ q->nextarc=G->AdjList[k].firstarc; G->AdjList[k].firstarc=q;p->nextarc=G->AdjList[j].firstarc;G->AdjList[j].firstarc=p; /* 是無(wú)向圖, 用頭插入法插入到兩個(gè)單鏈表 */ return(1); /*無(wú)向圖,把p和q互相連接到彼此的邊點(diǎn)上 */ } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ALGraph *Create_ALGraph()/*采用鄰接鏈表作為圖的存儲(chǔ)結(jié)構(gòu)建立帶權(quán)有向圖*/ { char stack1[MAX_VEX],stack2[MAX_VEX],vex,k1,k2;int weight;ALGraph *G;ArcType *p;printf(“首先對(duì)旅游區(qū)導(dǎo)游圖進(jìn)行初始化:nn”);G=(ALGraph *)malloc(sizeof(ALGraph));//申請(qǐng)動(dòng)態(tài)結(jié)點(diǎn)空間 Init_Graph(G);printf(“n請(qǐng)輸入旅游區(qū)導(dǎo)游圖的各個(gè)旅游景點(diǎn)代碼(以字符的形式出入),當(dāng)輸入0時(shí)作為結(jié)束標(biāo)志n”);while(1){ scanf(“%s”,stack1);/*以字符串的形式輸入存儲(chǔ)旅游區(qū)景點(diǎn),一次一個(gè)的存儲(chǔ)輸入的景點(diǎn)存到數(shù)組中之后又在圖中插入該頂點(diǎn),當(dāng)輸入0時(shí)結(jié)束*/ vex=stack1[0]; /*用字符串可以區(qū)別結(jié)束標(biāo)識(shí),用字符存到數(shù)組中不易設(shè)置結(jié)束標(biāo)志*/ } if(vex=='0')break;else AddVertex(G,vex);p=(ArcType *)malloc(sizeof(ArcType));printf(“n 從鍵盤(pán)輸入以(Vi ,Vj ,d)的形式建立該旅游區(qū)的旅游景點(diǎn)圖,n 其中: Vi和Vj表示兩個(gè)不同的旅游景點(diǎn), d表示這兩個(gè)景點(diǎn)之間的道路距離;n 該旅游景點(diǎn)圖采用鄰接鏈表存儲(chǔ)結(jié)構(gòu)(當(dāng)輸入第一個(gè)頂點(diǎn)是0時(shí)表示結(jié)束):n”); while(1){ scanf(“%s”,stack1);k1=stack1[0]; if(k1=='0') /* 輸入第一個(gè)頂點(diǎn),0結(jié)束 */ break; else { scanf(“%s”,stack2);scanf(“%d”,&weight); /* 輸入第二個(gè)頂點(diǎn)和權(quán)值 */ k2=stack2[0];p->vex1=k1;p->vex2=k2;p->info=weight; AddArc(G,p);printf(“n請(qǐng)繼續(xù)輸入下一條道路!n”);} } return(G);} ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void output_ALGraph(ALGraph *G) // 2:輸出圖的鄰接鏈表 { int j;LinkNode *p; printf(“n旅游區(qū)導(dǎo)游圖的鄰接鏈表景點(diǎn)輸出表示如下:n”);for(j=0;j printf(“%c”,G->AdjList[j].data); p=G->AdjList[j].firstarc; while(p!=NULL) //輸出一個(gè)鄰接鏈表的景點(diǎn)之后,繼續(xù)輸出他的其他鄰接景點(diǎn) } { } printf(“-> ”);printf(“<%c,%d>”,p->adjvex,p->info);p=p->nextarc;printf(“nn”);} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void output_Find_ALGraph(ALGraph *G) // 4:相鄰景點(diǎn)查詢(xún)并輸出 { int j;LinkNode *p; //定義鄰接邊單鏈表結(jié)點(diǎn)p printf(“請(qǐng)輸入您要查詢(xún)的景點(diǎn)(頂點(diǎn)數(shù)組下標(biāo)值):n”); //從輸入的景點(diǎn)開(kāi)始找和其相鄰的景點(diǎn)并輸出權(quán)值 scanf(“%d”,&j); p=G->AdjList[j].firstarc; //定義鄰接邊頭指針 while(p!=NULL){ printf(“景點(diǎn)%c到景點(diǎn)%c的距離是%d(兩景點(diǎn)之間有相連的道路)n”,G->AdjList[j].data,p->adjvex,p->info);//第j個(gè)景點(diǎn)和他下一個(gè)相鄰的景點(diǎn)和權(quán)值 p=p->nextarc; //指向下一個(gè)結(jié)點(diǎn)的地址,使全部與G->AdjList[j].data直接連通的頂點(diǎn)全部輸出,NULL時(shí)截止 } printf(“nn”);} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void ListToMat(ALGraph G, MGraph &g) /*將鄰接鏈表轉(zhuǎn)換成鄰接矩陣 */ { int k,i,j; LinkNode *p;for(i=0;i /*g.arcs[i][j]賦初值INFINITY for(j=0;j g.arcs[i][j]=INFINITY;for(i=0;i /*把鏈表的數(shù)組頂點(diǎn)保存到數(shù)組vexs[i]} for(i=0;i p=G.AdjList[i].firstarc;while(p!=NULL) { k=LocateVex(&G,p->adjvex); /*取和p相鄰的頂點(diǎn)下標(biāo)值用于鄰接*/ 中*/ 矩陣的下標(biāo)值 */ g.arcs[i][k]=g.arcs[k][i]=p->info;/*把權(quán)值賦值給二維數(shù)組用于矩陣輸出 */ */ } } p=p->nextarc; /*指向下一個(gè)鄰接表結(jié)點(diǎn) } g.vexnum=G.vexnum;///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void display(ALGraph *G,MGraph g) /*3:輸出鄰接矩陣 */ { int i,j;ListToMat(*G, g); /*將鄰接鏈表轉(zhuǎn)換成鄰接矩陣 */ printf(“ ”);for(i=0;i /*輸出矩陣橫向頂點(diǎn)值 */ printf(“n”);for(i=0;i printf(“%c ”,G->AdjList[i].data); /*輸出矩陣豎向頂點(diǎn)值,每輸出一行輸出一次頂點(diǎn)*/ } } for(j=0;j if(g.arcs[i][j]==INFINITY) printf(“∞ ”);else printf(“%-8d”, g.arcs[i][j]); /*每個(gè)權(quán)值占有8個(gè)字符,負(fù)號(hào)表示左端對(duì)齊 */ } printf(“n”);//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void dijkshort_One(ALGraph F, MGraph G,int v0,int distance[], int path[])/* 帶權(quán)圖G從頂點(diǎn)v0到其他定點(diǎn)的最短距離distance和最短路徑前驅(qū)結(jié)點(diǎn)的下標(biāo)path*/ //帶權(quán)圖F從下標(biāo)v0到其他頂點(diǎn)的最短距離diatance和最短路徑下標(biāo)path,path中存放了從輸入的v0到其他各個(gè)頂點(diǎn)的最短路徑的前一個(gè)頂點(diǎn)的下標(biāo) //基于狄克斯特拉函數(shù)的設(shè)計(jì) { int *S=(int *)malloc(sizeof(int)*G.vexnum);int minDis,i,j,u,p; ListToMat(F, G);printf(“你所要開(kāi)始查詢(xún)的景點(diǎn)是:%cn”,F.AdjList[v0].data);for(i=0;i distance[i]=G.arcs[v0][i];S[i]=0;if(distance[i] path[i]=-1;} S[v0]=1; //標(biāo)記頂點(diǎn)v0已從集合T加入到集合S中(以v0為下標(biāo)值的頂點(diǎn))for(i=0;i minDis=INFINITY;for(j=0;j { minDis=distance[j]; u=j;} } S[u]=1; //標(biāo)記頂點(diǎn)u已從集合T加入到集合S中(以u(píng)為下標(biāo)值的頂點(diǎn)) for(j=0;j // /修改從v0到其他頂點(diǎn)的最短距離和最短路徑 if(S[j]==0&&G.arcs[u][j] } } //頂點(diǎn)v0到其他所有的頂點(diǎn)的最短距離已經(jīng)保存在數(shù)組distance中 printf(“查詢(xún)結(jié)果是:n”);for(j=0;j if(path[j]!=-1){ printf(“從景點(diǎn)%c到景點(diǎn)%c”,F.AdjList[v0].data,G.vexs[j]); p=path[j]; printf(“的最短距離是: %d”,distance[j]);//輸出頂點(diǎn)v0到其他所有的頂點(diǎn)的最短printf(“ 途中經(jīng)過(guò)的景點(diǎn)有:”);while(p!=-1){ printf(“ %c”,G.vexs[p]); 路徑 } p=path[p];} printf(“n”); } else if(j!=v0) printf(“n%c到%c : 沒(méi)有通路!”,G.vexs[j],G.vexs[v0]);/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void dijkshort_Two(ALGraph F, MGraph G,int v0,int distance[], int path[])/*帶權(quán)圖G從頂點(diǎn)v0到其他定點(diǎn)的最短距離distance和最短路徑前驅(qū)結(jié)點(diǎn)的下標(biāo)path*/ { int w;int S[30],i,j,k,p,min,d;ListToMat(F, G);printf(“你所要開(kāi)始查詢(xún)的開(kāi)始景點(diǎn)是:%cnn”,F.AdjList[v0].data);for(i=0;i { distance[i]=G.arcs[v0][i];S[i]=0;if(distance[i] //頂點(diǎn)v0已加入到集合S中 for(i=0;i min=INFINITY;for(j=0;j if(!S[j]&&distance[j] { } min=distance[j];k=j;} S[k]=1; ///將找到的頂點(diǎn)加入到集合S中 for(w=0;w // /修改集合T中頂點(diǎn)的距離值 if(!S[w]&&distance[w]>distance[k]+G.arcs[k][w]){ distance[w]=distance[k]+G.arcs[k][w];} path[w]=k;} printf(“輸入你要查詢(xún)的另外一個(gè)景點(diǎn)(下標(biāo)值):”);scanf(“%d”,&d);printf(“你要查詢(xún)的另外一個(gè)景點(diǎn)是:%cn”,G.vexs[d]);printf(“n查詢(xún)結(jié)果:n”);//輸出結(jié)果 if(path[d]!=-1){ printf(“從景點(diǎn)%c到景點(diǎn)%c”,F.AdjList[v0].data,G.vexs[d]); p=path[d];printf(“的最短距離是: %d”,distance[d]);printf(“ 途中經(jīng)過(guò)的景點(diǎn)有:”);while(p!=-1){ printf(“ %c”,G.vexs[p]);p=path[p];} printf(“n”);} } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void dfs_path(ALGraph *g,int src,int cur,int vis[],GPath *cur_path,GPath * min_path){ LinkNode * node =g->AdjList[cur].firstarc;for(;node!=NULL;node=node->nextarc)/*起始條件為node =g->AdjList[cur].firstarc*/ { } char adj=node->adjvex;int index=LocateVex(g,adj);if(vis[index]==0){ } cur_path->vertex[cur_path->count++]=index;cur_path->value+=node->info;vis[index]=1;dfs_path(g,src,index,vis,cur_path,min_path);cur_path->count--;cur_path->value-=node->info;vis[index]=0;if(vis[src]){ } if(cur_path->count==g->vexnum){ if(cur_path->value min_path.value=MAX_VALUE;dfs_path(g,src,src,vis,&cur_path,&min_path);if(min_path.value!=MAX_VALUE){ int i=0;printf(“n最佳旅游路線(xiàn)景點(diǎn)下標(biāo)值是:n”);for(i=0;i printf(“%d->”,min_path.vertex[i]);} printf(“n”);printf(“n最佳旅游路線(xiàn)景點(diǎn)是:n”); for(i=0;i { printf(“%c-> ”,g->AdjList[min_path.vertex[i]].data); } } printf(“n”);}else { printf(“建立的圖中沒(méi)有最佳路徑n”);} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /*------------菜單------------*/ void main(){ int n,v0;MGraph g;int distance[MAX_VEX],path[2*MAX_VEX];ALGraph *G; printf(“ ============================n”); printf(“ !歡迎使用旅游區(qū)導(dǎo)游系統(tǒng) !n”);printf(“ ============================n”);do { printf(“n請(qǐng)選擇對(duì)該旅游區(qū)導(dǎo)游圖的操作→nn”); printf(“ ┏━━━━━━━━━━━━━━━━━━━━━┓n”);printf(“ ┃ 1.建立旅游區(qū)導(dǎo)游圖的鄰接鏈表存儲(chǔ) ┃n”);printf(“ ┃ 2.旅游區(qū)導(dǎo)游圖的鄰接鏈表的輸出 ┃n”);printf(“ ┃ 3.旅游區(qū)導(dǎo)游圖的鄰接矩陣的輸出 ┃n”);printf(“ ┃ 4.相鄰景點(diǎn)查詢(xún) ┃n”);printf(“ ┃ 5.景點(diǎn)路線(xiàn)查詢(xún) ┃n”);printf(“ ┃ 6.景點(diǎn)路線(xiàn)綜合查詢(xún)(查詢(xún)兩景點(diǎn)最短路徑)┃n”);printf(“ ┃ 7.最佳路徑 ┃n”);printf(“ ┃ 8.退出 ┃n”);printf(“ ┗━━━━━━━━━━━━━━━━━━━━━┛n”);do { } scanf(“%d”,&n);while(n<1||n>9);switch(n){ case 1: { G=(ALGraph *)malloc(sizeof(ALGraph));/*動(dòng)態(tài)申請(qǐng)圖G的內(nèi)存空間*/ G=Create_ALGraph();printf(“nn”);break; } case 2: { } { printf(“n旅游導(dǎo)游圖的鄰接鏈表表示如下所示:n”);output_ALGraph(G);printf(“nn”);break;case 3: printf(“n旅游區(qū)導(dǎo)游圖的鄰接矩陣表示如下所示:n”);printf(“n∞表示兩景點(diǎn)之間不存在連通的路線(xiàn)n”);printf(“n數(shù)值表示兩景點(diǎn)之間的路線(xiàn)長(zhǎng)度n”);display(G,g);printf(“nn”);break; } case 4: { } case 5: { } case 6: { } case 7: { } } } while(n!=8);} output_Find_ALGraph(G);printf(“nn”);break;printf(“輸入你要查詢(xún)的景點(diǎn)(下標(biāo)值):”);scanf(“ %d”,&v0);dijkshort_One(*G,g,v0,distance,path);break;printf(“輸入你要查詢(xún)的開(kāi)始景點(diǎn)(下標(biāo)值):”);scanf(“ %d”,&v0);dijkshort_Two(*G,g,v0,distance,path);break;printf(“輸入你要查詢(xún)的開(kāi)始景點(diǎn)(下標(biāo)值):”);scanf(“%d”,&v0);printf(“景點(diǎn)是%c ”,G->AdjList[v0].data);best_path(G,v0);break; 課程設(shè)計(jì)任務(wù)書(shū) 2013~2014學(xué)年第 1 學(xué)期 學(xué)生姓名:專(zhuān)業(yè)班級(jí):2012網(wǎng)絡(luò)工程(1)班 指導(dǎo)教師:馮珊工作部門(mén):計(jì)算機(jī)學(xué)院 一、課程設(shè)計(jì)題目: 公園導(dǎo)游圖 二、課程設(shè)計(jì)內(nèi)容 給出一張某公園的導(dǎo)游圖,游客通過(guò)終端詢(xún)問(wèn)可知:從某一景點(diǎn)到另一景點(diǎn)的最短路徑。游客從公園大門(mén)進(jìn)入,選一條最佳路線(xiàn),使游客可以不重復(fù)地游覽各景點(diǎn),最后回到出口(出口就在入口旁邊)。 三、進(jìn)度安排 1. 初步完成總體設(shè)計(jì),搭好框架,確定人機(jī)對(duì)話(huà)的界面,確定函數(shù)個(gè)數(shù); 2. 完成最低要求:建立一個(gè)文件,包括5個(gè)景點(diǎn)情況,能完成遍歷功能; 3. 進(jìn)一步要求:進(jìn)一步擴(kuò)充景點(diǎn)數(shù)目,畫(huà)出景點(diǎn)圖,有興趣的同學(xué)可以自己擴(kuò)充系統(tǒng)功能。 四、基本要求 1.界面友好,函數(shù)功能要?jiǎng)澐趾?/p> 2.總體設(shè)計(jì)應(yīng)畫(huà)一流程圖 3.程序要加必要的注釋 4.要提供程序測(cè)試方案 5.程序一定要經(jīng)得起測(cè)試,寧可功能少一些,也要能運(yùn)行起來(lái),不能運(yùn)行的程序是沒(méi)有價(jià) 值的。 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 實(shí)驗(yàn)四:圖(內(nèi)容:某公園導(dǎo)游圖) 一、問(wèn)題描述: 公園導(dǎo)游系統(tǒng):給出一張某公園的導(dǎo)游圖,游客通過(guò)終端詢(xún)問(wèn)可知︰從某一景到另一景點(diǎn)的最短路徑。游客從公園大門(mén)進(jìn)入,選一條最佳路線(xiàn),使游客可以不重復(fù)地游覽各景點(diǎn),最后回到出口(出口就在入口旁邊)。 二、設(shè)計(jì)描述: 1.輸入導(dǎo)游圖的算法(存儲(chǔ)方法).本程序特地設(shè)計(jì)函數(shù)void initgraph()用于實(shí)現(xiàn)鍵盤(pán)輸入圖的結(jié)構(gòu); 2.可訪(fǎng)問(wèn)導(dǎo)游圖中任一景點(diǎn)的算法.為此設(shè)計(jì)了函數(shù)void vist(GraphMatrix graph)用于實(shí)現(xiàn)訪(fǎng)問(wèn)任一景點(diǎn)的信息; 3.最短路徑從一景點(diǎn)到另一景點(diǎn)的算法。利用floyd算法-實(shí)現(xiàn)每一對(duì)景點(diǎn)間的最短路徑。并利用void outgraph()函數(shù)實(shí)現(xiàn)顯示起始點(diǎn)和終點(diǎn)間的最短路徑和其長(zhǎng)度; 三、程序清單: #include typedef char VexType;數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 typedef float AdjType;typedef struct //定義圖結(jié)構(gòu) { int n; /* 圖的頂點(diǎn)個(gè)數(shù) */ VexType vexs[MAXVEX]; /* 頂點(diǎn)信息 */ AdjType arcs[MAXVEX][MAXVEX]; /* 邊信息 */ } GraphMatrix;GraphMatrix graph; //定義一個(gè)圖graph typedef struct //定義最短路徑ShortPath結(jié)構(gòu) { AdjType a[MAXVEX][MAXVEX]; /* 關(guān)系矩陣A,存放每對(duì)頂點(diǎn)間最短路徑長(zhǎng)度 */ int nextvex[MAXVEX][MAXVEX]; /* nextvex[i][j]存放vi到vj最短路徑上vi的后繼頂點(diǎn)的下標(biāo)值 */ } ShortPath;ShortPath path; //定義路徑path void floyd(GraphMatrix * pgraph, ShortPath * ppath) //floyd算法-用于實(shí)現(xiàn)每一對(duì)景點(diǎn)間的最短路徑 { int i, j, k; for(i = 0;i < pgraph->n;i++) for(j = 0;j < pgraph->n;j++){ if(pgraph->arcs[i][j]!= MAX) ppath->nextvex[i][j] = j;數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 else ppath->nextvex[i][j] =-1; ppath->a[i][j] = pgraph->arcs[i][j]; } for(k = 0;k < pgraph->n;k++) for(i = 0;i < pgraph->n;i++) for(j = 0;j < pgraph->n;j++){ if(ppath->a[i][k] >= MAX || ppath->a[k][j] >= MAX) continue; if(ppath->a[i][j] > ppath->a[i][k]+ ppath->a[k][j]){ ppath->a[i][j] = ppath->a[i][k] + ppath->a[k][j]; ppath->nextvex[i][j] = ppath->nextvex[i][k]; } } } void outgraph() //out()函數(shù)用于實(shí)現(xiàn)顯示起始點(diǎn)和終點(diǎn)間的最短路徑和其長(zhǎng)度 { int c,b,i;cout< //輸入要查找起始點(diǎn)和終點(diǎn)(本程序限于編號(hào)(int型))cout< //通過(guò)path.a[c][b]把路徑長(zhǎng)度賦給i 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 cout<<“該路徑總長(zhǎng)為:”;cout< //輸出路徑長(zhǎng)度 cout<<“所得路徑順序?yàn)椤?cout< //此處輸出路徑的第一個(gè)編號(hào) c=path.nextvex[c][b]; for(;c!=b;c=path.nextvex[c][b]) //循環(huán)順序輸出路徑始點(diǎn)和終點(diǎn)之間的景點(diǎn)編號(hào) cout<<“,”< //再輸出路徑的最后一個(gè)編號(hào) cout< //該函數(shù)用于實(shí)現(xiàn)鍵盤(pán)輸入圖的結(jié)構(gòu) { int i,m,j;printf(“請(qǐng)輸入公園景點(diǎn)的個(gè)數(shù):”); //圖結(jié)點(diǎn)的個(gè)數(shù)賦給graph.n scanf(“%d”,&m);graph.n=m;for(i=0;i //循環(huán)輸入結(jié)點(diǎn)頂點(diǎn)信息 { printf(“請(qǐng)輸入第%i個(gè)景點(diǎn)信息:”,i);//為了簡(jiǎn)明起見(jiàn)此程序結(jié)點(diǎn)頂點(diǎn)信息限于字符型 cin>>graph.vexs[i];} printf(“請(qǐng)輸入公園的鄰接矩陣的信息n”);//循環(huán)輸入圖的鄰接矩陣信息(也就是輸入一個(gè)二維數(shù)組)for(i=0;i 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 for(j=0;j printf(“請(qǐng)輸入第%d行,第%d列的元素:”,i+1,j+1);cin>>graph.arcs[i][j];} } void vist(GraphMatrix graph) //函數(shù)用于實(shí)現(xiàn)訪(fǎng)問(wèn)任一景點(diǎn)的信息 { int i; cout< cout<<“你想知道哪個(gè)景點(diǎn)的信息:”;//注意輸入的是景點(diǎn)的編號(hào) cin>>i; cout< cout<<“景點(diǎn)信息查詢(xún)結(jié)果為:”; cout< cout< //用于判斷是否繼續(xù)執(zhí)行特定的下一步程序 {int a;cout<<“還想繼續(xù)查詢(xún)?(1&0)”;cin>>a;return a;} int main()數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 { int i,j; initgraph(); //initgraph()函數(shù)來(lái)實(shí)現(xiàn)鍵盤(pán)輸入圖的結(jié)構(gòu) floyd(&graph, &path); cout<<“為了驗(yàn)證下面運(yùn)算結(jié)果的方便,循環(huán)輸出nextvex[i][j]數(shù)組”; for(i = 0;i < graph.n;i++) { for(j = 0;j < graph.n;j++) //為了驗(yàn)證下面運(yùn)算結(jié)果的方便,循環(huán)輸出nextvex[i][j]數(shù)組 printf(“%d ”, path.nextvex[i][j]); //nextvex[i][j]存放vi到vj最短路徑上vi的后繼頂點(diǎn)的下標(biāo)值 putchar('n'); } cout< outgraph(); while(jud()) outgraph(); //outgraph()函數(shù)用于實(shí)現(xiàn)顯示起始點(diǎn)和終點(diǎn)間的最短路徑和其長(zhǎng)度 vist(graph); //函數(shù)用于實(shí)現(xiàn)訪(fǎng)問(wèn)任一景點(diǎn)的信息 cout< while(jud()) vist(graph); cout< return 0;} 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 驗(yàn)四:圖(內(nèi)容:某公園導(dǎo)游圖) .問(wèn)題描述 ① 給出一張某公園的導(dǎo)游圖,游客通過(guò)終端詢(xún)問(wèn)可知: (1)從某一景點(diǎn)到另一景點(diǎn)的最短路徑。 (2)游客從公園大門(mén)進(jìn)入,選一條最佳路線(xiàn),使游客可以不重復(fù)地游覽景點(diǎn),最后回到出口(出口就在入口處旁邊)。 .要求 ② 將導(dǎo)游圖看作一張帶權(quán)無(wú)向圖,頂點(diǎn)表示公園的各個(gè)景點(diǎn),邊表示各景點(diǎn)之間的道路,邊上的權(quán)值給游客。 .實(shí)現(xiàn)提示 ③ (1)第一問(wèn)實(shí)際是最短路徑問(wèn)題,如果有幾條路徑長(zhǎng)度相同,可選擇途徑景點(diǎn)較少的路徑提供給游客。 (2)第二問(wèn)可采用深度優(yōu)先搜索,如果有多種路徑可選擇,則選擇帶權(quán)路徑最小的路線(xiàn)提供給游客。 .選做內(nèi)容 ④ 可以把各種路徑都顯示給游客,由游客自己選擇游覽路線(xiàn)。數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告 班級(jí):06軟件工程 姓名:周鄧雄 學(xué)號(hào):06517037 摘要:隨著經(jīng)濟(jì)的發(fā)展,人民生活的改善。農(nóng)業(yè)旅游近年來(lái)成為旅游的熱門(mén)選擇,本文結(jié)合世界農(nóng)業(yè)旅游的發(fā)展,依據(jù)我國(guó)具體國(guó)情淺談我國(guó)農(nóng)業(yè)旅游的發(fā)展面臨的主要問(wèn)題,并做了相應(yīng)的對(duì)策研究。 關(guān)鍵詞:農(nóng)業(yè)旅游 規(guī)劃 管理 一、農(nóng)業(yè)旅游的概念 農(nóng)業(yè)旅游是把農(nóng)業(yè)與旅游業(yè)結(jié)合在一起,利用農(nóng)業(yè)景觀和農(nóng)村空間吸引游客前來(lái)觀賞、游覽、品嘗、休閑、體驗(yàn)、購(gòu)物的一種新型農(nóng)業(yè)經(jīng)營(yíng)形態(tài),即以農(nóng)、林、牧、副、漁等廣泛的農(nóng)業(yè)資源為基礎(chǔ)開(kāi)發(fā)旅游產(chǎn)品,并為游客提供特色服務(wù)的旅游業(yè)的統(tǒng)稱(chēng),也稱(chēng)觀光農(nóng)業(yè)、旅游農(nóng)業(yè)、鄉(xiāng)村旅游等。農(nóng)業(yè)旅游主要是為那些不了解農(nóng)業(yè)、不熟悉農(nóng)村,或者回農(nóng)村尋根,渴望在節(jié)假日到郊外觀光、旅游、度假的城市居民服務(wù)的,其目標(biāo)市場(chǎng)主要在城市居民。農(nóng)業(yè)旅游的發(fā)展,不僅可以豐富城鄉(xiāng)人民的精神生活,優(yōu)化投資環(huán)境等,而且達(dá)到了農(nóng)業(yè)生態(tài)、經(jīng)濟(jì)和社會(huì)效益的有機(jī)統(tǒng)一。 二、國(guó)外農(nóng)業(yè)旅游發(fā)展概況 農(nóng)業(yè)旅游作為一項(xiàng)新的旅游項(xiàng)目,已成為世界潮流。它源于歐洲的西班牙,二十世紀(jì)六十年代初,有些西班牙農(nóng)場(chǎng)把自家房屋改造裝修為旅館,接待來(lái)自城市的旅游者前往觀光度假,被認(rèn)為是農(nóng)業(yè)旅游的起源。據(jù)世界野生動(dòng)物基金會(huì)估計(jì),1988年,發(fā)展中國(guó)家生態(tài)旅游收入為120億美元,發(fā)達(dá)國(guó)家的收入更要高出幾倍,美國(guó)約300億美元、德國(guó)約80億美元。近年來(lái),國(guó)外農(nóng)業(yè)旅游又向深層次發(fā)展,旅游者不僅“看”而且“干”,由過(guò)去欣賞結(jié)果,變?yōu)閰⑴c過(guò)程。真正體驗(yàn)農(nóng)活的“原汁原味”。如一些旅行社,利用假期,組織城市游客到農(nóng)村和農(nóng)民共同生活、學(xué)習(xí)插秧和采茶,體驗(yàn)耕種和收獲,分享農(nóng)家樂(lè)的“插秧割稻旅行”或“采茶旅行”。在收獲的季節(jié),旅行社會(huì)選出一小包稻米或茶葉給游客寄去,讓大家親口嘗一下自己的勞動(dòng)果實(shí)。如今,在一些國(guó)家或地區(qū)如日本、瑞士、臺(tái)灣等出現(xiàn)了更高級(jí)的農(nóng)業(yè)旅游形式:租地自種。城里人在鄉(xiāng)下租一塊“自由地”,假日里,偕妻帶子,呼朋喚友,到鄉(xiāng)下的“自家地里”翻土耕種,施肥澆水,平時(shí)則由農(nóng)場(chǎng)主負(fù)責(zé)照看農(nóng)園。這種淺嘗輒止的勞作和藕斷絲連的鄉(xiāng)村情懷,為忙碌和煩躁的城市生活平添了許多雅趣。下面介紹幾個(gè)國(guó)家農(nóng)業(yè)旅游的研究與實(shí)踐情況: 1、法國(guó) 七十年代法國(guó)興起了城市居民興建“第二住宅”,開(kāi)辟人工菜園的活動(dòng),各地農(nóng)民適應(yīng)這一需求,紛紛推出農(nóng)莊旅游,并組建了全國(guó)性的聯(lián)合經(jīng)營(yíng)組織。近年,法國(guó)人推出新興的“農(nóng)莊旅游”業(yè),全國(guó)有1.6萬(wàn)戶(hù)農(nóng)家建立起了家庭旅館。3000多家農(nóng)民還組成了一個(gè)聯(lián)合經(jīng)營(yíng)組織,取名為“歡迎您到農(nóng)莊來(lái)”,吸引了眾多的游客。這種新興的“綠色度假”旅游活動(dòng)方興未艾,每年可以給法國(guó)農(nóng)民帶來(lái)700億法郎的收益,相當(dāng)于全國(guó)旅游業(yè)收入的1/4。 2、美國(guó) 每年參加農(nóng)業(yè)旅游的人數(shù)達(dá)到二千萬(wàn)人次,政府還制定了相關(guān)法律法規(guī),以保證農(nóng)業(yè)旅游的健康發(fā)展。“瓜果塑造”、“莊稼人藝術(shù)畫(huà)”等鄉(xiāng)間藝術(shù)也頗受游客青睞。最著名的作品是依梵高的名畫(huà)《向日葵》創(chuàng)作的20英畝的“莊稼畫(huà)” —向日葵。10多英畝盛開(kāi)的向日葵組成畫(huà)中的葵花,蒺麻組成花瓶,大豆為臺(tái)布,游人可以在飛機(jī)或附近高山上領(lǐng)略它的藝術(shù)魅力。 3、日本 日本的農(nóng)業(yè)旅游是開(kāi)展較早的。日本各地觀光農(nóng)業(yè)經(jīng)營(yíng)者們成立了協(xié)會(huì),各地農(nóng)場(chǎng)結(jié)合生產(chǎn)獨(dú)辟蹊徑,用富有詩(shī)情畫(huà)意的田園風(fēng)光和各種具有特色的服務(wù)設(shè)施,吸引了大批國(guó)內(nèi)外游客。旅行社開(kāi)發(fā)了豐富多彩的農(nóng)業(yè)旅游產(chǎn)品,組織旅游者春天插秧,秋天收割,捕魚(yú)撈蝦,草原放牧,牛棚擠奶。參加者有農(nóng)牧學(xué)研究人員、學(xué)生、銀行職員、公司白領(lǐng)等,人均消費(fèi)2.5至4萬(wàn)日元。日本巖水縣小井農(nóng)場(chǎng)是一個(gè)具有百余年悠久歷史的民間綜合性大農(nóng)場(chǎng)。自1962年起,農(nóng)場(chǎng)主結(jié)合生產(chǎn)經(jīng)營(yíng)項(xiàng)目,先后開(kāi)辟了600余畝觀光農(nóng)園,設(shè)有動(dòng)物農(nóng)場(chǎng),可以觀賞到各種家畜在自然懷抱中的憨態(tài),又能增加動(dòng)物學(xué)的知識(shí);牧場(chǎng)館,每天定時(shí)擠牛奶表演和定時(shí)看奶油的加工過(guò)程,觀賞之余,可以購(gòu)買(mǎi)到各種包裝精美而新鮮的奶制品;別具一格的農(nóng)具展覽館,陳設(shè)有各式各樣新奇古怪的農(nóng)用機(jī)械,有的是現(xiàn)在使用的,有的是已被淘汰的,人們可以藉此了解農(nóng)業(yè)發(fā)展歷史和農(nóng)機(jī)具知識(shí),農(nóng)場(chǎng)旁邊,是由廢機(jī)車(chē)改裝成的列車(chē)旅館,深受懷古思舊和青年人的歡迎。 三、農(nóng)業(yè)旅游的特點(diǎn) 開(kāi)發(fā)農(nóng)業(yè)旅游,要堅(jiān)持以農(nóng)業(yè)為基礎(chǔ),利用農(nóng)業(yè)、農(nóng)村資源,興辦休閑旅游事業(yè),然后逐步過(guò)渡到旅、農(nóng)、工、貿(mào)綜合發(fā)展,從而在農(nóng)村這片廣闊的地域上尋找并創(chuàng)造出城市旅游點(diǎn)無(wú)法與之媲美的農(nóng)業(yè)旅游景觀特色。根據(jù)系統(tǒng)設(shè)計(jì)的指導(dǎo)思想,為了在農(nóng)業(yè)旅游系統(tǒng)中建立不同門(mén)類(lèi)的子系統(tǒng),從而建設(shè)各具特色、內(nèi)容多樣、輕松愉快的不同農(nóng)業(yè)旅游模式,我們就要研究農(nóng)業(yè)旅游的基本特點(diǎn)。一般認(rèn)為農(nóng)業(yè)旅游具有以下基本特點(diǎn): 1、農(nóng)業(yè)特性 旅游農(nóng)業(yè)是在農(nóng)業(yè)生產(chǎn)的基礎(chǔ)上開(kāi)發(fā)其旅游功能的,旅游農(nóng)業(yè)的引人入勝主要是優(yōu)美的田園風(fēng)光。在開(kāi)發(fā)旅游功能的過(guò)程中,可能局部地改變?cè)瓉?lái)的農(nóng)業(yè)生產(chǎn)結(jié)構(gòu),但農(nóng)業(yè)生產(chǎn)仍是旅游農(nóng)業(yè)的主要方面,所以要防止旅游農(nóng)業(yè)的過(guò)度開(kāi)發(fā),避免破壞基本農(nóng)田保護(hù)區(qū)等。 2、生態(tài)特性 旅游農(nóng)業(yè)的發(fā)展的目標(biāo)之一是調(diào)整人和自然,經(jīng)濟(jì)發(fā)展與生態(tài)環(huán)境之間的矛盾。旅游農(nóng)業(yè)的興旺也要得益于寧?kù)o優(yōu)美的生態(tài)環(huán)境、天然的自然景觀以及純樸的鄉(xiāng)村生活方式、民族文化等。因此,在開(kāi)發(fā)建設(shè)旅游農(nóng)業(yè)過(guò)程中,盡可能不破壞原來(lái)的自然生態(tài)環(huán)境,減少人工作用,促進(jìn)農(nóng)業(yè)生態(tài)系統(tǒng)良性循環(huán)。 3、娛樂(lè)特性 旅游農(nóng)業(yè)除了具有優(yōu)美的生態(tài)環(huán)境外,還應(yīng)具有一定程度的娛樂(lè)性,否則也不能吸引大量的游客。娛樂(lè)性主要體現(xiàn)在觀光、農(nóng)業(yè)體驗(yàn)、民俗活動(dòng)和自然探險(xiǎn)等富有農(nóng)村農(nóng)業(yè)和自然風(fēng)光特色的游樂(lè)活動(dòng)中,而人工游樂(lè)設(shè)施則適可而止。 四、我國(guó)發(fā)展農(nóng)業(yè)旅游的現(xiàn)狀及問(wèn)題 農(nóng)業(yè)旅游是利用農(nóng)業(yè)生態(tài)環(huán)境開(kāi)展休閑度假的一種新嘗試,是農(nóng)業(yè)和生態(tài)旅游相結(jié)合、相交叉而形成的新興產(chǎn)業(yè),這種生態(tài)旅游資源的開(kāi)發(fā),在國(guó)內(nèi)總體上尚處于初級(jí)階段,所以其發(fā)展必然受到各種條件的制約。1.觀光的季節(jié)性是農(nóng)業(yè)旅游發(fā)展的瓶頸。由于農(nóng)業(yè)具有季節(jié)性的特點(diǎn),觀光農(nóng)業(yè)也具有非常鮮明的季節(jié)性。這是農(nóng)業(yè)旅游與其它景區(qū)景點(diǎn),尤其是與其它人文景點(diǎn)相比最明顯的區(qū)別。一般來(lái)說(shuō)春季和秋季是觀光農(nóng)園的黃金旺季,每天可以接待幾千人;但是,夏、冬淡季的時(shí)候只及旺季的1/3。像采摘節(jié)、賞花節(jié)前后僅持續(xù)十幾天甚至幾天的時(shí)間,這就造成了旅游旺季特別短。游客的數(shù)量比較少,旅游收入也就相應(yīng)減少。因此,如何延長(zhǎng)觀光時(shí)間、隨著季節(jié)的變換進(jìn)行項(xiàng)目的變換是觀光農(nóng)業(yè)研究的重要課題。,2.缺乏政府的統(tǒng)一規(guī)劃和有效地宏觀管理。目前,大多數(shù)地方市級(jí)及區(qū)縣級(jí)都沒(méi)有制定農(nóng)業(yè)旅游的總體規(guī)劃,也沒(méi)有明確的管理機(jī)構(gòu)和管理辦法,農(nóng)業(yè)旅游的發(fā)展基本上還是以鄉(xiāng)村和企業(yè)自主開(kāi)發(fā)為主,布局不盡合理。雖然有些地區(qū)的建設(shè)、農(nóng)林、水利和旅游部門(mén)都制定了一些相應(yīng)的標(biāo)準(zhǔn)來(lái)評(píng)定景區(qū)景點(diǎn)的等級(jí),實(shí)施著各自相應(yīng)的管理辦法,但這樣又往往形成了多頭管理,幾個(gè)部門(mén)都各自做規(guī)劃,缺乏宏觀控制和指。 3.項(xiàng)目論證不完善,區(qū)位選擇存在失誤。考慮到觀光農(nóng)業(yè)園的客源、經(jīng)營(yíng)、旅游項(xiàng)目等的特點(diǎn),觀光農(nóng)業(yè)應(yīng)該選擇以下四種區(qū)位:(1)大中城市的郊區(qū):具備觀光農(nóng)業(yè)發(fā)展最基本的客源市場(chǎng)——城市游客。(2)特色農(nóng)業(yè)基地:農(nóng)業(yè)基礎(chǔ)比較好,有豐富的生產(chǎn)經(jīng)驗(yàn),特色鮮明,容易吸引游人。(3)著名旅游景區(qū)附近:可以利用景區(qū)的客源市場(chǎng),吸引一部分游客,或者直接將觀光農(nóng)業(yè)園納入旅游景區(qū)內(nèi),納入旅游線(xiàn)路中,作為一個(gè)景點(diǎn)向游人開(kāi)放。(4)度假區(qū)周?chē)蚨燃賲^(qū)內(nèi),作為度假區(qū)的一部分,開(kāi)展農(nóng)業(yè)度假形式。目前的一些觀光農(nóng)業(yè)在區(qū)位選擇上,沒(méi)有充分考慮到本地區(qū)的情況,做出的區(qū)位選擇不恰當(dāng),使得游客在路上消耗的時(shí)間太多,難以在短暫的周末或一天的時(shí)間內(nèi)及時(shí)返回。直接導(dǎo)致了項(xiàng)目的失敗。 4.旅游景點(diǎn)重復(fù)建設(shè)、功能雷同。投資者自身缺乏發(fā)展規(guī)劃能力,導(dǎo)致投資決策的明顯隨意性和開(kāi)發(fā)的盲目性。很多投資者缺乏制定周密的發(fā)展規(guī)劃和市場(chǎng)調(diào)研,設(shè)置旅游景點(diǎn)往往不相協(xié)調(diào),多數(shù)功能設(shè)計(jì)簡(jiǎn)單、重復(fù)。缺乏特色和吸引力,活動(dòng)內(nèi)容相似,創(chuàng)新很少,因此。造成投資決策的隨意性和開(kāi)發(fā)的盲目性。比如北京市郊區(qū)縣區(qū)位條件優(yōu)越。有巨大的客源市場(chǎng),發(fā)展觀光農(nóng)業(yè)有得天獨(dú)厚的條件,但是由于各區(qū)縣缺乏協(xié)調(diào)。沒(méi)有從全市整體上進(jìn)行總體規(guī)劃,造成各區(qū)縣問(wèn)的盲目競(jìng)爭(zhēng),門(mén)頭溝、房山、密云、懷柔、延慶、昌平、平谷、順義、大興等郊區(qū)區(qū)縣都爭(zhēng)著上觀光農(nóng)業(yè)項(xiàng)目,每個(gè)區(qū)縣都有數(shù)十個(gè)項(xiàng)目,致使許多園區(qū)門(mén)前冷落,很少有游客光顧,造成很大損失。 5.單純模仿、缺乏系統(tǒng)的經(jīng)營(yíng)管理。有的地區(qū)沒(méi)有把觀光農(nóng)業(yè)看作是建立在農(nóng)業(yè)經(jīng)營(yíng)基礎(chǔ)上的農(nóng)業(yè)與旅游業(yè)有機(jī)結(jié)合的產(chǎn)業(yè),特另9是很多景點(diǎn)的投資者為當(dāng)?shù)鼐用瘢?dāng)他們認(rèn)識(shí)到身邊的環(huán)境資源能作為“搖錢(qián)樹(shù)”的時(shí)候,便按照自己的理解單純模仿別人的模式倉(cāng)促上馬。有不少觀光農(nóng)業(yè)區(qū)過(guò)于依賴(lài)非自然農(nóng)業(yè)技術(shù)手段,大搞城市化、大興人工化,使本來(lái)應(yīng)獨(dú)具特色的這一旅游項(xiàng)目成丁走了樣的“四不像”,或搞成非自然的純外國(guó)景觀,不重視可持續(xù)農(nóng)業(yè)效益,省略了前期的可行性研究和資源評(píng)估,以致造成了嚴(yán)重的環(huán)境污染,有的甚至破壞了地域的生態(tài)農(nóng)業(yè)環(huán)境。管理缺乏系統(tǒng)性,管理手段跟不上。 五、我國(guó)農(nóng)業(yè)旅游的應(yīng)對(duì)之策 (一)增強(qiáng)政府作用, 完善規(guī)制保障 政府作用的充分發(fā)揮,是觀光農(nóng)業(yè)核心競(jìng)爭(zhēng)力提升的重要保障。政府應(yīng)積極協(xié)調(diào)農(nóng)業(yè)旅游開(kāi)發(fā)經(jīng)營(yíng)者,共同開(kāi)發(fā)觀光農(nóng)業(yè)資源,傳播農(nóng)業(yè)旅游主題品牌和主題文化,提升農(nóng)業(yè)旅游整體形象和品牌價(jià)值,打造觀光農(nóng)業(yè)的持續(xù)競(jìng)爭(zhēng)優(yōu)勢(shì);政府還應(yīng)加大對(duì)農(nóng)業(yè)旅游產(chǎn)業(yè)發(fā)展所需基礎(chǔ)設(shè)施的投入力度,強(qiáng)化招商引資和社會(huì)資本的引導(dǎo),著力克服農(nóng)業(yè)旅游發(fā)展的資金短缺問(wèn)題,化解產(chǎn)業(yè)發(fā)展瓶頸問(wèn)題,如交通、環(huán)保等制約因素,實(shí)現(xiàn)地區(qū)農(nóng)業(yè)觀光的可持續(xù)發(fā)展。在農(nóng)業(yè)旅游的運(yùn)作管理上,積極創(chuàng)新形式,可采取國(guó)有國(guó)營(yíng)、國(guó)有民營(yíng)、、民有民營(yíng)或不同形式的聯(lián)合經(jīng)營(yíng),遵循誰(shuí)投資、誰(shuí)建設(shè)、誰(shuí)受益的原則,做到產(chǎn)權(quán)清晰,權(quán)責(zé)分明;進(jìn)一步完善市場(chǎng)競(jìng)爭(zhēng)規(guī)則,創(chuàng)造一個(gè)良好的競(jìng)爭(zhēng)環(huán)境,維護(hù)公平競(jìng)爭(zhēng)、優(yōu)勝劣汰,利用市場(chǎng)手段,優(yōu)化資源配置;進(jìn)一步健全產(chǎn)業(yè)扶持激勵(lì)政策,加大政府及社會(huì)的支持力度,并注重在實(shí)際運(yùn)行中將其真正落到實(shí)處。如出臺(tái)優(yōu)惠政策,重點(diǎn)扶持和培育觀光農(nóng)業(yè)龍頭企業(yè),提升觀光農(nóng)業(yè)企業(yè)的核心競(jìng)爭(zhēng)力。加快農(nóng)村土地流轉(zhuǎn)制度等改革,促進(jìn)觀光農(nóng)業(yè)用地的規(guī)模流轉(zhuǎn),以此吸引財(cái)力雄厚的大公司、大企業(yè)、大開(kāi)發(fā)商的投資建設(shè),打造高品位、多功能、高效益的觀光農(nóng)業(yè)精品,進(jìn)一步提升觀光農(nóng)業(yè)的綜合效益。 (二)凝煉特色, 打造精品 要因地制宜,講究特色。農(nóng)業(yè)旅游核心競(jìng)爭(zhēng)力的培育要立足于各地農(nóng)業(yè)自然資源的特點(diǎn),要盡量照顧到自身農(nóng)業(yè)資源環(huán)境優(yōu)勢(shì),使特色農(nóng)業(yè)資源環(huán)境優(yōu)勢(shì)轉(zhuǎn)化為現(xiàn)實(shí)生產(chǎn)力,發(fā)展具有競(jìng)爭(zhēng)優(yōu)勢(shì)的觀光農(nóng)業(yè)產(chǎn)品、產(chǎn)業(yè),形成人無(wú)我有,人有我優(yōu)的競(jìng)爭(zhēng)優(yōu)勢(shì)。如果觀光農(nóng)業(yè)產(chǎn)品缺乏特色與創(chuàng)新,不能很好地體現(xiàn)地方農(nóng)業(yè)特色和文化內(nèi)涵,就無(wú)法對(duì)消費(fèi)市場(chǎng)形成持久吸引力。一村一品模式是充分利用當(dāng)?shù)刭Y源優(yōu)勢(shì),因地制宜發(fā)展特色支柱產(chǎn)業(yè)的一種經(jīng)營(yíng)模式和經(jīng)營(yíng)理念,值得借鑒與推廣;要搞好主題定位,提升產(chǎn)品形象,打造觀光農(nóng)業(yè)精品。觀光農(nóng)業(yè)定位應(yīng)體現(xiàn)民族歷史性和地域性,體現(xiàn)地域生態(tài)農(nóng)業(yè)特色和地域文化特色的有機(jī)結(jié)合。要根據(jù)競(jìng)爭(zhēng)狀況和充分考慮各地自身的文化和農(nóng)業(yè)資源優(yōu)勢(shì),從資源稟賦、資源空間分布、輻射能力等方面進(jìn)行把脈,結(jié)合考慮客源、當(dāng)?shù)鼐用窈椭苓吢糜纬擎?zhèn)對(duì)自身形象的認(rèn)同來(lái)確定自身的發(fā)展定位,確定在市場(chǎng)上的競(jìng)爭(zhēng)優(yōu)勢(shì),來(lái)創(chuàng)造主題產(chǎn)品形象,并不斷地強(qiáng)化品牌形象,形成鮮明的品牌個(gè)性,以強(qiáng)化的競(jìng)爭(zhēng)優(yōu)勢(shì)來(lái)提升農(nóng)業(yè)旅游產(chǎn)業(yè)競(jìng)爭(zhēng)力,最終贏得客源市場(chǎng); 要不斷加強(qiáng)對(duì)消費(fèi)者消費(fèi)需求、消費(fèi)行為、消費(fèi)心理、消費(fèi)能力等的跟蹤研究,注重產(chǎn)品的改造升級(jí),在宣傳、接待、飲食、導(dǎo)游及各種設(shè)施的設(shè)置上,都要從消費(fèi)者角度出發(fā),全方位提升產(chǎn)品與服務(wù)質(zhì)量,形成可持續(xù)的競(jìng)爭(zhēng)優(yōu)勢(shì)。要根據(jù)區(qū)位特點(diǎn)與觀光農(nóng)業(yè)的特殊性,努力使觀光農(nóng)業(yè)向休閑體驗(yàn)、度假階段發(fā)展,加強(qiáng)高品位、高檔次、多功能、知識(shí)型的休閑觀光農(nóng)業(yè)精品建設(shè),努力實(shí)現(xiàn)小的特色化、差異化發(fā)展,大的綜合化、多功能、品牌化發(fā)展,構(gòu)建具有競(jìng)爭(zhēng)力的區(qū)域觀光農(nóng)業(yè)產(chǎn)品體系。 (三)健全服務(wù)設(shè)施, 提升服務(wù)水平 服務(wù)核心競(jìng)爭(zhēng)力主要包括服務(wù)設(shè)施硬件競(jìng)爭(zhēng)力和服務(wù)能力水平軟競(jìng)爭(zhēng)力兩個(gè)方面。要大力完善基礎(chǔ)設(shè)施建設(shè),增強(qiáng)硬件競(jìng)爭(zhēng)力,增強(qiáng)農(nóng)業(yè)旅游的物質(zhì)條件。既要擴(kuò)大投入,完善道路、交通、通信等基礎(chǔ)服務(wù)設(shè)施,提升觀光農(nóng)業(yè)的外部環(huán)境,增強(qiáng)可進(jìn)入性,也要加強(qiáng)觀光農(nóng)業(yè)園區(qū)的基礎(chǔ)設(shè)施、功能設(shè)施建設(shè),以更好地滿(mǎn)足消費(fèi)者多元化的消費(fèi)需求;深化制度建設(shè),優(yōu)化觀光農(nóng)業(yè)發(fā)展的制度環(huán)境。制度環(huán)境會(huì)影響觀光農(nóng)業(yè)的創(chuàng)新和發(fā)展動(dòng)力,會(huì)影響消費(fèi)者對(duì)觀光農(nóng)業(yè)所在地的形象評(píng)價(jià)。要注重健全觀光農(nóng)業(yè)發(fā)展的相關(guān)法規(guī)、政策和制度的創(chuàng)新,培育具有市場(chǎng)競(jìng)爭(zhēng)能力的觀光農(nóng)業(yè)經(jīng)營(yíng)主體和外部發(fā)展環(huán)境;大力推進(jìn)學(xué)習(xí)型企業(yè)建設(shè),著力提升觀光農(nóng)業(yè)經(jīng)營(yíng)企業(yè)的人力資源水平。農(nóng)業(yè)旅游核心競(jìng)爭(zhēng)力的培育是市場(chǎng)行為,其同樣具有生命周期。只有不斷加強(qiáng)學(xué)習(xí)型企業(yè)建設(shè),提升農(nóng)業(yè)旅游企業(yè)的人力資源水平,才能持續(xù)培養(yǎng)和強(qiáng)化自身的核心競(jìng)爭(zhēng)力;提高農(nóng)業(yè)旅游所在地居民的服務(wù)意識(shí),增強(qiáng)觀光農(nóng)業(yè)的文化輻射功能。觀光農(nóng)業(yè)所在地的人文地理、民風(fēng)民俗、居民態(tài)度等會(huì)影響消費(fèi)者對(duì)該觀光農(nóng)業(yè)地的印象和評(píng)價(jià),消費(fèi)者滿(mǎn)意度與所在地居民的好客度呈正相關(guān)。要想方設(shè)法提高觀光農(nóng)業(yè)所在地居民的服務(wù)意識(shí),挖掘并不斷深化觀光農(nóng)業(yè)的文化內(nèi)涵,為消費(fèi)者提供豐富而深刻的精神和文化享受,增強(qiáng)觀光農(nóng)業(yè)的文化輻射功能。 參考文獻(xiàn) 【1】 丁忠明,孫敬水 我國(guó)觀光農(nóng)業(yè)發(fā)展研究.中國(guó)農(nóng)村經(jīng)濟(jì) 2000 【2】 白凈夫 核心競(jìng)爭(zhēng)力:理論與戰(zhàn)略問(wèn)題.學(xué)習(xí)與探索 2006 【3】 王云才 國(guó)際鄉(xiāng)村旅游發(fā)展的政策經(jīng)驗(yàn)與借鑒 旅游學(xué)刊 2002(04)【4】 王繼全 發(fā)展觀光農(nóng)業(yè)旅游應(yīng)注意的幾個(gè)問(wèn)題 生態(tài)經(jīng)濟(jì) 2001(06)【5】 李君茹 淺析我國(guó)觀光農(nóng)業(yè)發(fā)展的現(xiàn)狀與對(duì)策 農(nóng)村經(jīng)濟(jì) 2004(11) 旅游片區(qū)開(kāi)發(fā)規(guī)劃 概述 旅游經(jīng)濟(jì)園區(qū)是指以園區(qū)的管理和發(fā)展特點(diǎn)來(lái)建設(shè)旅游景區(qū)的一種模式,既保持了旅游景區(qū)的性質(zhì),又具備園區(qū)的輻射、帶動(dòng)、示范功能。根據(jù)產(chǎn)業(yè)驅(qū)動(dòng)作用大小不同,可把旅游經(jīng)濟(jì)園區(qū)建設(shè)途徑分為旅游產(chǎn)業(yè)主導(dǎo)型和生態(tài)產(chǎn)業(yè)主導(dǎo)型兩種。 ◆旅游產(chǎn)業(yè)主導(dǎo)型 以當(dāng)?shù)芈糜钨Y源為基礎(chǔ),以開(kāi)發(fā)旅游景區(qū)和旅游項(xiàng)目為手段,旅游產(chǎn)業(yè)的發(fā)展帶動(dòng)生態(tài)農(nóng)業(yè)、生態(tài)林業(yè)和加工業(yè)的迅速發(fā)展,從而使旅游景區(qū)向旅游經(jīng)濟(jì)區(qū)轉(zhuǎn)變。 ◆生態(tài)產(chǎn)業(yè)主導(dǎo)型 以當(dāng)?shù)厣鷳B(tài)資源為基礎(chǔ),發(fā)展生態(tài)農(nóng)業(yè)、生態(tài)林業(yè)和加工業(yè),從而促進(jìn)旅游業(yè)的發(fā)展,使旅游景區(qū)向旅游經(jīng)濟(jì)園區(qū)轉(zhuǎn)變。 旅游片區(qū)規(guī)劃面臨的問(wèn)題 無(wú)論是現(xiàn)有旅游片區(qū)的進(jìn)一步發(fā)展,還是新的旅游片區(qū)的開(kāi)發(fā)建設(shè),旅游片區(qū)經(jīng)營(yíng)管理者都可能面臨一些共性的發(fā)展問(wèn)題。 ◆如何進(jìn)行旅游片區(qū)定位? ◆如何塑造旅游片區(qū)的主題形象? ◆如何構(gòu)建有效需求的旅游產(chǎn)品體系? ◆如何針對(duì)目標(biāo)客群進(jìn)行精準(zhǔn)營(yíng)銷(xiāo)? ◆如何獲取持續(xù)的旅游吸引力? ◆如何構(gòu)建旅游片區(qū)的專(zhuān)業(yè)服務(wù)系統(tǒng)? ◆如何確立旅游片區(qū)的規(guī)劃結(jié)構(gòu)? 旅游片區(qū)發(fā)展咨詢(xún)服務(wù) 針對(duì)旅游片區(qū)發(fā)展中存在的問(wèn)題,我們提供定位-規(guī)劃-開(kāi)發(fā)-招商-運(yùn)營(yíng)-營(yíng)銷(xiāo)策劃的全流程服務(wù),如下: 我們提供的咨詢(xún)內(nèi)容主要包括: ◆旅游片區(qū)開(kāi)發(fā)定位和戰(zhàn)略咨詢(xún) 為旅游片區(qū)開(kāi)發(fā)提供戰(zhàn)略性謀劃,系統(tǒng)探討“總體定位、市場(chǎng)定位、產(chǎn)品定位、項(xiàng)目設(shè)計(jì)、開(kāi)發(fā)模式、營(yíng)銷(xiāo)策略、運(yùn)營(yíng)策略”等關(guān)鍵問(wèn)題,明確旅游片區(qū)的方向特色,謀求一二級(jí)聯(lián)動(dòng)開(kāi)發(fā)效益,為旅游片區(qū)規(guī)劃設(shè)計(jì)和開(kāi)發(fā)運(yùn)營(yíng)提供指導(dǎo)。 ◆旅游片區(qū)規(guī)劃設(shè)計(jì)服務(wù) 繪制旅游片區(qū)的發(fā)展藍(lán)圖,提出“發(fā)展定位、功能結(jié)構(gòu)、項(xiàng)目建設(shè)、產(chǎn)品組織、品牌策劃、系統(tǒng)配套、行動(dòng)計(jì)劃”等內(nèi)容在內(nèi)的系統(tǒng)解決方案,提供發(fā)展規(guī)劃、建設(shè)規(guī)劃、專(zhuān)項(xiàng)設(shè)計(jì)等旅游規(guī)劃設(shè)計(jì)服務(wù),保障開(kāi)發(fā)建設(shè)順利推進(jìn)和可持續(xù)發(fā)展。 ◆旅游地產(chǎn)項(xiàng)目開(kāi)發(fā)策劃 針對(duì)旅游景點(diǎn)地產(chǎn)、旅游商業(yè)地產(chǎn)、旅游度假地產(chǎn)、旅游住宅地產(chǎn)等項(xiàng)目,創(chuàng)新性研究“開(kāi)發(fā)定位、主題品牌、客群定位、功能布局、產(chǎn)品組合、商業(yè)模式、營(yíng)銷(xiāo)策略”等內(nèi)容,編制可行性研究報(bào)告與項(xiàng)目建議書(shū)等,提供商業(yè)化操作戰(zhàn)術(shù)與行動(dòng)計(jì)劃,提供旅游房地產(chǎn)項(xiàng)目策劃、規(guī)劃、設(shè)計(jì)服務(wù)。 ◆旅游招商引資項(xiàng)目策劃 根據(jù)旅游片區(qū)規(guī)劃設(shè)計(jì)方案和項(xiàng)目開(kāi)發(fā)模式,結(jié)合地區(qū)經(jīng)濟(jì)特色、行業(yè)分布現(xiàn)狀及產(chǎn)業(yè)鏈條,挖掘園區(qū)核心招商訴求,并找出最佳招商點(diǎn),選擇優(yōu)質(zhì)招商企業(yè),并提供招商推介方案。 項(xiàng)目研究的理論模型 圖 鉆石定位模型 圖 定位過(guò)程圖 資料來(lái)源:中投顧問(wèn)第二篇:公園導(dǎo)游圖 課程設(shè)計(jì)任務(wù)書(shū)
第三篇:某數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)公園導(dǎo)游圖
第四篇:農(nóng)業(yè)旅游區(qū)
第五篇:旅游區(qū)規(guī)劃