第一篇:課程設(shè)計(jì)(校園導(dǎo)游)
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué)
課程設(shè)計(jì)紙
一、設(shè)計(jì)題目
校園導(dǎo)游咨詢
二、需求分析
(1)設(shè)計(jì)你的學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示學(xué)校各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。
(2)為來訪客人提供圖中任意景點(diǎn)的問路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一條最短的簡單路徑。
(3)為來訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。(4)界面美觀,方便使用。通過主菜單操作。
三、總體設(shè)計(jì)
3.1 設(shè)計(jì)思路
設(shè)計(jì)一個(gè)校園導(dǎo)游系統(tǒng),應(yīng)用到數(shù)據(jù)結(jié)構(gòu)中學(xué)到的圖的建立,各景點(diǎn)應(yīng)存在一個(gè)圖中,而計(jì)算不重復(fù)路線的時(shí)候需要應(yīng)用到弗洛伊德圖的遍歷。計(jì)算倆景點(diǎn)間最短路徑應(yīng)用到最小生成樹的遍歷。
景點(diǎn)數(shù)據(jù)裝在一個(gè)圖中,能夠輸入圖的頂點(diǎn)和邊的信息,并存儲(chǔ)到相應(yīng)存儲(chǔ)結(jié)構(gòu)中然后輸出圖的鄰接矩陣。
鄰接矩陣是表示頂點(diǎn)之間相鄰關(guān)系。
生成樹是指:如果G是一個(gè)圖,這個(gè)圖的生成子圖T是樹,那么可以說T為G的生成樹。一個(gè)圖有生成樹當(dāng)且僅當(dāng)這個(gè)圖連通??赏ㄟ^求該網(wǎng)絡(luò)的最小生成樹達(dá)到求解線路或總代價(jià)最小的最佳方案。
弗洛伊德算法是通過一個(gè)圖的權(quán)值矩陣求出它的每兩點(diǎn)間的最短路徑矩陣。它是從圖的帶權(quán)鄰接矩A=[a(i,j)] n×n開始,遞歸地進(jìn)行n次更新,即由矩陣D(0)=A,按一個(gè)公式,構(gòu)造出矩陣D(1);又用同樣地公式由D(1)構(gòu)造出D(2);??;最后又用同樣的公式由D(n-1)構(gòu)造出矩陣D(n)。矩陣D(n)的i行j列元素便是i號(hào)頂點(diǎn)到j(luò)號(hào)頂點(diǎn)的最短路徑長度,稱D(n)為圖的距離矩陣,同時(shí)還可引入一個(gè)后繼節(jié)點(diǎn)矩陣path來記錄兩點(diǎn)間的最短路徑。3、2系統(tǒng)功能設(shè)計(jì)
本系統(tǒng)除了有主程序模塊外還有3個(gè)子功能菜單。3個(gè)子功能的設(shè)計(jì)描述如下。(1)學(xué)校景點(diǎn)介紹
學(xué)校景點(diǎn)介紹由函數(shù)introduce()實(shí)現(xiàn)。當(dāng)用戶選擇該功能,系統(tǒng)即能輸出學(xué)校全部景點(diǎn)的信息:包括景點(diǎn)編號(hào)、景點(diǎn)名稱及景點(diǎn)簡介。
共 頁
第 頁
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué)
課程設(shè)計(jì)紙
(2)查看兩景點(diǎn)間最短路徑
查看兩景點(diǎn)間最短路徑由函數(shù)shortestdistance()實(shí)現(xiàn)。該功能采用弗洛伊德(Floyd)算法實(shí)現(xiàn)。當(dāng)用戶選擇該功能,系統(tǒng)能根據(jù)用戶輸入的起始景點(diǎn)及目的地景點(diǎn)編號(hào),查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的最短路徑線路及距離。
(3)退出
即退出校園導(dǎo)游系統(tǒng),由exit(0)函數(shù)實(shí)現(xiàn)。3、3 模塊間調(diào)用關(guān)系
主程序模塊
(界面)
景點(diǎn)最短路徑查詢
景點(diǎn)信息查詢
退出
四、詳細(xì)設(shè)計(jì) 4、1數(shù)據(jù)存儲(chǔ)
(1)無向帶權(quán)圖(無向網(wǎng))的定義
int i,j;
char k;
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
{
cost[i][j]=INT_MAX;
}
cost[1][3]=cost[3][1]=2;
cost[2][3]=cost[3][2]=1;
cost[2][4]=cost[4][2]=2;
cost[3][10]=cost[10][3]=4;
cost[1][10]=cost[10][1]=4;
cost[2][10]=cost[10][2]=4;
cost[4][10]=cost[10][4]=4;
cost[1][4]=cost[4][1]=5;
cost[4][5]=cost[5][4]=3;
cost[4][9]=cost[9][4]=4;
共 頁
第 頁
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué)
課程設(shè)計(jì)紙
cost[5][9]=cost[9][5]=8;cost[5][7]=cost[7][5]=4;cost[5][6]=cost[6][5]=2;cost[6][7]=cost[7][6]=1;cost[7][8]=cost[8][7]=3;cost[8][6]=cost[6][8]=4;cost[1][1]=cost[2][2]=cost[3][3]=cost[4][4]=cost[5][5]=0;cost[6][6]=cost[7][7]=cost[8][8]=cost[9][9]=cost[10][10]=0;
(2)全局變量定義
#define INT_MAX 10000 #define n 10 int cost[n][n];
/* 邊的值*/ int shortest[n][n];
/* 兩點(diǎn)間的最短距離*/ int path[n][n];
/* 經(jīng)過的景點(diǎn)*/ 4、2主程序模塊
用于作為界面,顯示校園景點(diǎn)和概況描述,提供各子模塊的連接 如上圖所示 程序設(shè)計(jì) while(1)
{
printf(“----------------歡迎使用中北大學(xué)導(dǎo)游系統(tǒng)!----------------n”);
printf(“1.景點(diǎn)信息查詢???請按 i(introduc)鍵n”);
printf(“2.景點(diǎn)最短路徑查詢?請按 s(shortestdistance)鍵n”);
printf(“3.退出系統(tǒng)?????請按 e(exit)鍵n”);
printf(“學(xué)校景點(diǎn)列表:n”);
printf(“1:學(xué)校南門
”);
printf(“2:學(xué)生公寓
”);
printf(“3:柏林園
”);
printf(“4:餐廳
”);
printf(“5:體育館n”);
printf(“6:圖書館
”);
printf(“7:重點(diǎn)實(shí)驗(yàn)室
”);
printf(“8:主樓
”);
printf(“9:科藝苑
”);
printf(“10:國防生公寓n”);
printf(“請選擇服務(wù):”);
scanf(“n%c”,&k);
共 頁
第 頁
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué)
課程設(shè)計(jì)紙
switch(k)
{
case 'i':
printf(“進(jìn)入景點(diǎn)信息查詢:”);
introduce();
break;
case 's':
printf(“進(jìn)入最短路徑查詢:”);
shortestdistance();
break;
case 'e':
exit(0);
default:
printf(“輸入信息錯(cuò)誤!n請輸入字母i或s或e.n”);
break;
}
} 4、3景點(diǎn)信息查詢模塊
在主菜單下,用戶輸入i回車,根據(jù)屏幕提示輸入一個(gè)要查詢的景點(diǎn)編號(hào)3回車后,運(yùn)行結(jié)果如上圖所示。
不足之處:僅能根據(jù)景點(diǎn)編號(hào)進(jìn)行查詢,可以增加根據(jù)景點(diǎn)名進(jìn)行查詢的功能。
程序設(shè)計(jì)
void introduce(){/*景點(diǎn)介紹*/
int a;
printf(“您想查詢哪個(gè)景點(diǎn)的詳細(xì)信息?請輸入景點(diǎn)編號(hào):”);
scanf(“%d”,&a);
getchar();
printf(“n”);
switch(a)
{
case 1:
printf(“1:學(xué)校南門nn 學(xué)校的正門,前面豎立著一尊彭德華的石
共 頁
第 頁
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué)
課程設(shè)計(jì)紙
像,氣勢宏偉。nn”);break;
case 2:
printf(“2:學(xué)生公寓集中的地方。nn”);break;
case 3:
printf(“3:柏林園nn 晨讀鍛煉得地方。nn”);break;
case 4:
printf(“4:餐廳nn 學(xué)生老師就餐的地方nn”);break;
case 5:
printf(“5:體育館nn 體育館nn 學(xué)生上體育課及運(yùn)動(dòng)的場地,設(shè)有田徑場、足球場、籃球場等。nn”);break;
case 6:
printf(“6:圖書館nn 學(xué)校信息資源中心,內(nèi)設(shè)大量的自習(xí)室。nn”);break;
case 7:
printf(“7:重點(diǎn)實(shí)驗(yàn)室nn 我校的研究科研中心nn”);break;
case 8:
printf(“8:主樓nn 學(xué)校行政辦公的主樓。nn”);break;
case 9:
printf(“9:科藝苑nn 有咖啡廳和放映室。nnn”);break;
case 10:
printf(“10: 國防生公寓nn 國防生居住地地方。nn”);break;
default:
printf(“景點(diǎn)編號(hào)輸入錯(cuò)誤!請輸入1->10的數(shù)字編號(hào)!nn”);break;
} }/*introduce*/ 4、4景點(diǎn)最短路徑查詢模塊
在主菜單下,用戶輸入3回車,根據(jù)屏幕提示輸入一個(gè)出發(fā)景點(diǎn)編號(hào)及目的地景點(diǎn)號(hào):6“,”3回車后,運(yùn)行結(jié)果如上圖所示。
不足之處:只能看到最短路徑編號(hào),但不知具體名稱,設(shè)計(jì)還不夠人性化。
程序設(shè)計(jì)(由floyed()和display(i,j)兩個(gè)子模塊完成)void floyed(){/*用floyed算法求兩個(gè)景點(diǎn)的最短路徑*/
共 頁
第 頁
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué)
課程設(shè)計(jì)紙
int i,j,k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
shortest[i][j]=cost[i][j];
path[i][j]=0;
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(shortest[i][j]>(shortest[i][k]+shortest[k][j]))
{/*用path[][]記錄從i到j(luò)的最短路徑上點(diǎn)j的前驅(qū)景點(diǎn)的序號(hào)*/
shortest[i][j]=shortest[i][k]+shortest[k][j];
path[i][j]=k;
path[j][i]=k;
} }/*floyed*/
void display(int i,int j){/* 打印兩個(gè)景點(diǎn)的路徑及最短距離 */
int a,b;
a=i;
b=j;
printf(“您要查詢的兩景點(diǎn)間最短路徑是:nn”);
if(shortest[i][j]!=INT_MAX)
{
if(i { printf(“%d”,b); while(path[i][j]!=0) {/* 把i到j(luò)的路徑上所有經(jīng)過的景點(diǎn)按逆序打印出來*/ printf(“<-%d”,path[i][j]); if(i j=path[i][j]; else i=path[j][i]; } printf(“<-%d”,a); printf(“nn”); printf(“(%d->%d)最短距離是:%d米nn”,a,b,shortest[a][b]); } else { printf(“%d”,a); while(path[i][j]!=0) {/* 把i到j(luò)的路徑上所有經(jīng)過的景點(diǎn)按順序打印出來*/ printf(“->%d”,path[i][j]); 共 頁 第 頁 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué) 課程設(shè)計(jì)紙 if(i j=path[i][j]; else i=path[j][i]; } printf(“->%d”,b); printf(“nn”); printf(“(%d->%d)最短距離是:%5d米nn”,a,b,shortest[a][b]); } } else printf(“輸入錯(cuò)誤!不存在此路!nn”); printf(“n”);}/*display*/ 4、5退出 在主菜單下,用戶輸入e回車,即退出校園導(dǎo)游系統(tǒng)。 五、設(shè)計(jì)總結(jié)5、1用戶手冊 1.本程序執(zhí)行文件為:湖北第二師范學(xué)院校園導(dǎo)游系統(tǒng).exe 2.進(jìn)入本系統(tǒng)之后,隨即顯示系統(tǒng)主菜單界面。用戶可在該界面下輸入各子菜單前對應(yīng)的數(shù)字并按回車,執(zhí)行相應(yīng)子菜單命令。 3.查詢景點(diǎn)信息都是通過輸入景點(diǎn)編號(hào)并按回車實(shí)現(xiàn),兩個(gè)景點(diǎn)號(hào)之間用空格隔開。進(jìn)入本系統(tǒng)后,建議先選擇子菜單1――學(xué)校景點(diǎn)介紹,以了解景點(diǎn)名稱和景點(diǎn)編號(hào)的對應(yīng)關(guān)系。5、2心得體會(huì) 通過本次課程設(shè)計(jì)實(shí)驗(yàn),使我更能熟練地掌握c語言和數(shù)據(jù)結(jié)構(gòu)等知識(shí)的綜合運(yùn) 共 頁 第 頁 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué) 課程設(shè)計(jì)紙 用。當(dāng)然在課程設(shè)計(jì)期間,也遇到了大大小小的一些問題,是我看到了自己的不足之處,使我認(rèn)識(shí)到在以后的學(xué)習(xí)中要善于發(fā)現(xiàn)自己的不足,找出自己的薄弱環(huán)節(jié),以便能夠更好的去鞏固所學(xué)的。 本次設(shè)計(jì)中要求求最短路徑,不重復(fù)走完一個(gè)圖,就必須了解最短路徑的算發(fā)和圖的遍歷。在拿到題目時(shí),通過查找相關(guān)的資料才回憶起這兩種方法的具體算法。根據(jù)程序的具體要求來設(shè)計(jì)算法。在選用存儲(chǔ)方法是,要盡量選用時(shí)間復(fù)雜度較小的方法,這樣能夠節(jié)省程序執(zhí)行時(shí)間,提高查詢效率。 課程設(shè)計(jì)中所使用的計(jì)算機(jī)語言其使用范圍比較廣闊,在很多編程中都可以用到,所以無論以后我們從事計(jì)算機(jī)編程、軟件設(shè)計(jì)還是硬件、網(wǎng)絡(luò)等領(lǐng)域,都應(yīng)該學(xué)會(huì)、學(xué)精一門編程語言,這對我們以后的學(xué)習(xí)和工作有很大的幫助。 共 頁 第 頁 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué) 課程設(shè)計(jì)紙 附錄 /*包含頭文件*/ #include /*定義符號(hào)常量*/ #define INT_MAX 10000 #define n 10 /*定義全局變量*/ int cost[n][n];/* 邊的值*/ int shortest[n][n];/* 兩點(diǎn)間的最短距離*/ int path[n][n];/* 經(jīng)過的景點(diǎn)*/ /*自定義函數(shù)原型說明*/ void introduce();int shortestdistance();void floyed(); void display(int i,int j); void main(){/*主函數(shù)*/ int i,j; char k; for(i=0;i<=n;i++) for(j=0;j<=n;j++) cost[i][j]=INT_MAX; cost[1][3]=cost[3][1]=2; cost[2][3]=cost[3][2]=1; cost[2][4]=cost[4][2]=2;cost[3][10]=cost[10][3]=4;cost[1][10]=cost[10][1]=4;cost[2][10]=cost[10][2]=4;cost[4][10]=cost[10][4]=4; cost[1][4]=cost[4][1]=5;cost[4][5]=cost[5][4]=3;cost[4][9]=cost[9][4]=4;cost[5][9]=cost[9][5]=8;cost[5][7]=cost[7][5]=4; cost[5][6]=cost[6][5]=2; 共 頁 第 頁 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué) 課程設(shè)計(jì)紙 cost[6][7]=cost[7][6]=1; cost[7][8]=cost[8][7]=3; cost[8][6]=cost[6][8]=4; cost[1][1]=cost[2][2]=cost[3][3]=cost[4][4]=cost[5][5]=0; cost[6][6]=cost[7][7]=cost[8][8]=cost[9][9]=cost[10][10]=0; while(1) { printf(“----------------歡迎使用中北大學(xué)導(dǎo)游系統(tǒng)!----------------n”); printf(“1.景點(diǎn)信息查詢???請按 i(introduc)鍵n”); printf(“2.景點(diǎn)最短路徑查詢?請按 s(shortestdistance)鍵n”); printf(“3.退出系統(tǒng)?????請按 e(exit)鍵n”); printf(“學(xué)校景點(diǎn)列表:n”); printf(“1:學(xué)校南門 ”); printf(“2:學(xué)生公寓 ”); printf(“3:柏林園 ”); printf(“4:餐廳 ”); printf(“5:體育館n”); printf(“6:圖書館 ”); printf(“7:重點(diǎn)實(shí)驗(yàn)室 ”); printf(“8:主樓 ”); printf(“9:科藝苑 ”); printf(“10:國防生公寓n”); printf(“請選擇服務(wù):”); scanf(“n%c”,&k); switch(k) { case 'i': printf(“進(jìn)入景點(diǎn)信息查詢:”); introduce(); break; case 's': printf(“進(jìn)入最短路徑查詢:”); shortestdistance(); break; case 'e': exit(0); default: printf(“輸入信息錯(cuò)誤!n請輸入字母i或s或e.n”); break; } } }/*main*/ 共 頁 第 頁 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué) 課程設(shè)計(jì)紙 void introduce(){/*景點(diǎn)介紹*/ int a; printf(“您想查詢哪個(gè)景點(diǎn)的詳細(xì)信息?請輸入景點(diǎn)編號(hào):”); scanf(“%d”,&a); getchar(); printf(“n”); switch(a) { case 1: printf(“1:學(xué)校南門nn 學(xué)校的正門,前面豎立著一尊彭德華的石像,氣勢宏偉。nn”);break; case 2: printf(“2:學(xué)生公寓集中的地方。nn”);break; case 3: printf(“3:柏林園nn 晨讀鍛煉得地方。nn”);break; case 4: printf(“4:餐廳nn 學(xué)生老師就餐的地方nn”);break; case 5: printf(“5:體育館nn 體育館nn 學(xué)生上體育課及運(yùn)動(dòng)的場地,設(shè)有田徑場、足球場、籃球場等。nn”);break; case 6: printf(“6:圖書館nn 學(xué)校信息資源中心,內(nèi)設(shè)大量的自習(xí)室。nn”);break; case 7: printf(“7:重點(diǎn)實(shí)驗(yàn)室nn 我校的研究科研中心nn”);break; case 8: printf(“8:主樓nn 學(xué)校行政辦公的主樓。nn”);break; case 9: printf(“9:科藝苑nn 有咖啡廳和放映室。nnn”);break; case 10: printf(“10: 國防生公寓nn 國防生居住地地方。nn”);break; default: printf(“景點(diǎn)編號(hào)輸入錯(cuò)誤!請輸入1->10的數(shù)字編號(hào)!nn”);break; } }/*introduce*/ int shortestdistance(){/*要查找的兩景點(diǎn)的最短距離*/ int i,j; printf(“請輸入要查詢的兩個(gè)景點(diǎn)的編號(hào)(1->10的數(shù)字編號(hào)并用','間隔):”); 共 頁 第 頁 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué) 課程設(shè)計(jì)紙 scanf(“%d,%d”,&i,&j); if(i>n||i<=0||j>n||j<0) { printf(“輸入信息錯(cuò)誤!nn”); printf(“ 請輸入要查詢的兩個(gè)景點(diǎn)的編號(hào)(1->10的數(shù)字編號(hào)并用','間隔):n”); scanf(“%d,%d”,&i,&j); } else { floyed(); display(i,j); } return 1;}/*shortestdistance*/ void floyed(){/*用floyed算法求兩個(gè)景點(diǎn)的最短路徑*/ int i,j,k; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { shortest[i][j]=cost[i][j]; path[i][j]=0; } for(k=1;k<=n;k++) for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(shortest[i][j]>(shortest[i][k]+shortest[k][j])) {/*用path[][]記錄從i到j(luò)的最短路徑上點(diǎn)j的前驅(qū)景點(diǎn)的序號(hào)*/ shortest[i][j]=shortest[i][k]+shortest[k][j]; path[i][j]=k; path[j][i]=k; } }/*floyed*/ void display(int i,int j){/* 打印兩個(gè)景點(diǎn)的路徑及最短距離 */ int a,b; a=i; b=j; 共 頁 第 頁 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 裝 ┊ ┊ ┊ ┊ ┊ 訂 ┊ ┊ ┊ ┊ ┊ 線 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 長 春 大 學(xué) 課程設(shè)計(jì)紙 printf(“您要查詢的兩景點(diǎn)間最短路徑是:nn”); if(shortest[i][j]!=INT_MAX) { if(i { printf(“%d”,b); while(path[i][j]!=0) {/* 把i到j(luò)的路徑上所有經(jīng)過的景點(diǎn)按逆序打印出來*/ printf(“<-%d”,path[i][j]); if(i j=path[i][j]; else i=path[j][i]; } printf(“<-%d”,a); printf(“nn”); printf(“(%d->%d)最短距離是:%d米nn”,a,b,shortest[a][b]); } else { printf(“%d”,a); while(path[i][j]!=0) {/* 把i到j(luò)的路徑上所有經(jīng)過的景點(diǎn)按順序打印出來*/ printf(“->%d”,path[i][j]); if(i j=path[i][j]; else i=path[j][i]; } printf(“->%d”,b); printf(“nn”); printf(“(%d->%d)最短距離是:%5d米nn”,a,b,shortest[a][b]); } } else printf(“輸入錯(cuò)誤!不存在此路!nn”); printf(“n”);}/*display*/ 共 頁 第 頁 《數(shù)據(jù)結(jié)構(gòu)》 課 程 設(shè) 計(jì) 實(shí) 驗(yàn) 報(bào) 告 課程名稱: 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì) 課程設(shè)計(jì)題目: 校園導(dǎo)游 姓名: 邱可昉 院系: 計(jì)算機(jī)學(xué)院 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級: 10052313 學(xué)號(hào): 10051319 指導(dǎo)老師: 王立波 2012年5月18日 目錄 1.課程設(shè)計(jì)的目的?????????????????????3 2.問題分析????????????????????????3 3.課程設(shè)計(jì)報(bào)告內(nèi)容????????????????????3(1)概要設(shè)計(jì)?????????????????????3(2)詳細(xì)設(shè)計(jì)?????????????????????3(3)測試結(jié)果?????????????????????7(4)程序清單?????????????????????9 4.個(gè)人小結(jié) ???????????????????????14 1.課程設(shè)計(jì)的目的 《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)軟件的一門基礎(chǔ)課程,計(jì)算機(jī)科學(xué)各領(lǐng)域及有關(guān)的應(yīng)用軟件都要用到各種類型的數(shù)據(jù)結(jié)構(gòu)。學(xué)好數(shù)據(jù)結(jié)構(gòu)對掌握實(shí)際編程能力是很有幫助的。為了學(xué)好《數(shù)據(jù)結(jié)構(gòu)》,必須編寫一些在特定數(shù)據(jù)結(jié)構(gòu)上的算法,通過上機(jī)調(diào)試,才能更好地掌握各種數(shù)據(jù)結(jié)構(gòu)及其特點(diǎn),同時(shí)提高解決計(jì)算機(jī)應(yīng)用實(shí)際問題的能力。 2.問題分析 [問題描述](1)設(shè)計(jì)你的學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示學(xué)校各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。 (2)為來訪客人提供圖中任意景點(diǎn)的問路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一條最短的簡單路徑。 (3)為來訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。[測試數(shù)據(jù)] 由讀者根據(jù)實(shí)際情況指定。 3.課程設(shè)計(jì)報(bào)告內(nèi)容 (1)概要設(shè)計(jì) 根據(jù)學(xué)校具體分布構(gòu)建無向連通圖,再通過幾個(gè)模塊運(yùn)行函數(shù)完成校園信息簡介查詢,校園景點(diǎn)間最短距離計(jì)算和輸出以及退出功能。 (2)詳細(xì)設(shè)計(jì) //定義全局變量 int bian[n][n];int zhjl[n][n];int path[n][n];//構(gòu)建dy類 class dy{ public: dy(); ~dy();void jj();int zuiduan();void floyed();void shuchu(int,int); // 邊的值 // 兩點(diǎn)間的最短距離 // 經(jīng)過的景點(diǎn) };首先,通過dy類的構(gòu)造函數(shù)構(gòu)建鄰接矩陣。dy::dy(){ for(int i=0;i bian[1][3]=bian[3][1]=150;bian[1][6]=bian[6][1]=300;bian[2][3]=bian[3][2]=100;bian[3][4]=bian[4][3]=50;bian[3][5]=bian[5][3]=200;bian[4][5]=bian[5][4]=100;bian[4][8]=bian[8][4]=350; bian[4][9]=bian[9][4]=250;bian[5][6]=bian[6][5]=100;bian[5][7]=bian[7][5]=250;bian[5][8]=bian[8][5]=300;bian[6][7]=bian[7][6]=200;bian[7][8]=bian[8][7]=100;bian[8][9]=bian[9][8]=400;bian[9][10]=bian[10][9]=100;//將各點(diǎn)到自己的距離定義為0 bian[1][1]=bian[2][2]=bian[3][3]=bian[4][4]=bian[5][5]=0;bian[6][6]=bian[7][7]=bian[8][8]=bian[9][9]=bian[10][10]=0;} 接著,jj函數(shù)實(shí)現(xiàn)景點(diǎn)列表輸出和景點(diǎn)查詢。void dy::jj(){ int a;cout<<“您想查詢哪個(gè)景點(diǎn)的詳細(xì)信息?”< cin>>i>>j;if(i>n||i<=0||j>n||j<=0){ cout<<“輸入信息錯(cuò)誤!”< cout<<“請輸入要查詢的兩個(gè)景點(diǎn)的編號(hào)(1-10的數(shù)字編號(hào)):”< void dy::floyed(){ int i,j,k;for(i=1;i zdjl[i][j]=zdjl[i][k]+zdjl[k][j];path[i][j]=k;path[j][i]=k;} } 最后,shuchu函數(shù)判斷輸入兩景點(diǎn)編號(hào)大小,完成正序輸出和逆序輸出。void dy::shuchu(int i,int j){ int a,b;a=i;b=j;cout<<“您要查詢的兩景點(diǎn)間最短路徑是:”< cout<<“<-”< “<“< ”<”< (4)測試結(jié)果 (4)程序清單 #include using namespace std; #define INT_MAX 10000 #define n 11 //定義全局變量 int bian[n][n];int zdjl[n][n];int path[n][n]; class dy{ public: dy();~dy();void jj();int zuiduan();void floyed(); // 邊的值 // 兩點(diǎn)間的最短距離 // 經(jīng)過的景點(diǎn) void shuchu(int,int);};dy::dy(){ for(int i=0;i bian[1][3]=bian[3][1]=150;bian[1][6]=bian[6][1]=300;bian[2][3]=bian[3][2]=100;bian[3][4]=bian[4][3]=50;bian[3][5]=bian[5][3]=200;bian[4][5]=bian[5][4]=100;bian[4][8]=bian[8][4]=350; bian[4][9]=bian[9][4]=250;bian[5][6]=bian[6][5]=100;bian[5][7]=bian[7][5]=250;bian[5][8]=bian[8][5]=300;bian[6][7]=bian[7][6]=200;bian[7][8]=bian[8][7]=100;bian[8][9]=bian[9][8]=400;bian[9][10]=bian[10][9]=100;bian[1][1]=bian[2][2]=bian[3][3]=bian[4][4]=bian[5][5]=0;bian[6][6]=bian[7][7]=bian[8][8]=bian[9][9]=bian[10][10]=0;} dy::~dy(){} void dy::jj()int a;{ cout<<“您想查詢哪個(gè)景點(diǎn)的詳細(xì)信息?”< cout< break;case 2: cout<<“校醫(yī)院是學(xué)校內(nèi)設(shè)的公益性、非盈利性的醫(yī)療機(jī)構(gòu)。承擔(dān)學(xué)校社區(qū)范圍內(nèi)師生員工的“六位一體”的醫(yī)療工作?!? cout< break;case 3: cout<<“圖書館現(xiàn)有藏書215萬冊,其中印刷型圖書146萬冊,電子圖書69萬冊,長期訂閱的中外文期刊2500余種。建有“中國學(xué)術(shù)期刊”、“萬方數(shù)據(jù)資源”、“人大復(fù)印報(bào)刊資料”全文數(shù)據(jù)庫、“超星數(shù)字圖書館”等信息資源鏡像站。”< cout< cout< break;case 5: cout<<“ 問鼎廣場是杭州電子科技大學(xué)標(biāo)志性建筑,位于校圖書館正面?!? cout< break;case 6: cout<<“3教是學(xué)校機(jī)房重地?!? cout< break;case 7: cout<<“據(jù)說杭電正大門可是花了500萬啊,可以說是杭電最奢侈的一個(gè)建筑物了,所以大家不可不看啊,不能錯(cuò)過啊~~”< cout< break;case 8: cout<<“行政樓學(xué)校領(lǐng)導(dǎo)工作和處理事務(wù)的地方。”< cout< break;case 9: cout<<“體育館是學(xué)校舉行大型活動(dòng)的場所,有一個(gè)很大的籃球場?!? break;case 10: cout<<“宿舍是學(xué)生生活的基本場所,有多個(gè)食堂提供不同風(fēng)味的食物,還有2個(gè)超市方便同學(xué)們的日常生活?!? cout<<“請輸入1-10的數(shù)字編號(hào):”< break;} } int dy::zuiduan(){ int i,j;cout<<“請輸入要查詢的兩個(gè)景點(diǎn)的編號(hào)(1-10的數(shù)字編號(hào)):”< zdjl[i][j]=zdjl[i][k]+zdjl[k][j];path[i][j]=k;path[j][i]=k;} } void dy::shuchu(int i,int j){ int a,b;a=i;b=j;cout<<“您要查詢的兩景點(diǎn)間最短路徑是:”< ”<”< int main(){ int i,j,s=1,k;dy dy;while(s){ cout<<“----------------杭州電子科技大學(xué)導(dǎo)游系統(tǒng)!----------------”< 4.個(gè)人小結(jié) 在前兩次編寫程序之后,我已經(jīng)能夠輕車熟路的編寫程序了,對于C++的數(shù)據(jù)結(jié)構(gòu)風(fēng)格也有所領(lǐng)悟,感覺相對輕松一些。 經(jīng)過這次練習(xí),我發(fā)現(xiàn)我還是有一些沒有注意的地方,我發(fā)現(xiàn)我對于書本上的知識(shí)吸收還有欠缺,然后編寫程序不夠仔細(xì),有一些小差錯(cuò)導(dǎo)致編譯出現(xiàn)錯(cuò)誤,后來檢查后修正了。我要在以后的學(xué)習(xí)中注意以下幾點(diǎn): 1.認(rèn)真上好專業(yè)課,多在實(shí)踐中鍛煉自己。2.寫程序要考慮周到,嚴(yán)密。 3.在做設(shè)計(jì)的時(shí)候要有信心,有耐心,不浮躁。 4.認(rèn)真學(xué)習(xí)課本知識(shí),掌握課本中的知識(shí)點(diǎn),并在此基礎(chǔ)上學(xué)會(huì)靈活運(yùn)用。 5.在課余時(shí)間多寫程序,熟練掌握在調(diào)試程序過程中常見的錯(cuò)誤,一邊節(jié)約調(diào)試程序的時(shí)間。 9、校園導(dǎo)游咨詢 問題描述: 設(shè)計(jì)一個(gè)校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)?;疽螅?/p> ⑴設(shè)計(jì)華東交通大學(xué)的校園平面圖,所含景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示校內(nèi)各景點(diǎn),⑵存放景點(diǎn)名稱、代號(hào)、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。⑶為來訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。⑷為來訪客人提供圖中任意景點(diǎn)的問路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一條最短的簡單路徑。 #include //最大頂點(diǎn)個(gè)數(shù) #define INF 32767 //用32767表示∞ #include //調(diào)用函數(shù)system改變字體顏色的頭文件 typedef int InfoType;#define MAXV 100 //最大頂點(diǎn)個(gè)數(shù) //以下定義鄰接矩陣類型 typedef struct { int no; //頂點(diǎn)編號(hào) InfoType info; //頂點(diǎn)其他信息 } VertexType; //頂點(diǎn)類型 typedef struct //圖的定義 { int edges[MAXV][MAXV];//鄰接矩陣 int vexnum,arcnum; //頂點(diǎn)數(shù),弧數(shù) VertexType vexs[MAXV];//存放頂點(diǎn)信息 } MGraph; void ecjtumap()//建立華東交通大學(xué)地圖 { printf(“t|------------------------------|n”);printf(“t| |n”);printf(“t| |n”);printf(“t| ---------- |n”);printf(“t| ==============================| 國防生宿舍| |n”);printf(“t|。 ---------- |n”);printf(“t|。 。 |n”);printf(“t|。 。 |n”);printf(“t|。 。 |n”);printf(“t|。 。 |n”);printf(“t|。 。 |n”);printf(“t| |南區(qū)四食堂| ---------- |n”);printf(“t|。 |南區(qū)禮堂 | |n”);printf(“t|。 ---------- |n”);printf(“t|。 。 |n”);printf(“t|。 。 |n”);printf(“t|。 --------。 |n”);printf(“t| ================| 校訓(xùn)牌|。。。。 |n”);printf(“t| = -------- |n”);printf(“t| =。 |n”);printf(“t| =。 |n”);printf(“t| -------- --------- |n”);printf(“t|----| 南區(qū)后門 |---------| 南區(qū)大門 |------------------------|n”);printf(“t| -------- --------- |n”);printf(“t| --------- |n”);printf(“t|-------------------------| 北區(qū)大門 |------------------------|n”);printf(“t| -------- |n”);printf(“t|。 -------------- |n”);printf(“t| ===========================| 15棟綜合教學(xué)樓 | |n”);printf(“t| = -------------- |n”);printf(“t| =。 |n”);printf(“t| =。 |n”);printf(“t| =。 |n”);printf(“t| =。 |n”);printf(“t| = ---------- |n”);printf(“t| ===============================| 經(jīng)管食堂 | |n”);printf(“t| = ---------- |n”);printf(“t| = = |n”);printf(“t| = = |n”);printf(“t| ----------- = |n”);printf(“t| |軌道交通食堂|====================| 學(xué)生宿舍 | |n”);printf(“t| ------------ |n”);printf(“t| |n”);printf(“t|------------------------------|n”);printf(“n”);} void DispMat(MGraph g) //輸出鄰接矩陣g,即輸出地圖各景點(diǎn)的圖的距離 { int i,j;for(i=0;i for(j=0;j if(g.edges[i][j]==INF) printf(“%3s”,“∞”);//這里分別用%3s和%3d控制輸出字符∞或數(shù)字寬度為3個(gè)字符 else printf(“%3d”,g.edges[i][j]);//這樣比較方便觀看景點(diǎn)的圖的鄰接矩陣g printf(“n”);} } void listmap()//建立 景點(diǎn)的相關(guān)信息的總瀏覽表 { printf(“t 華東交通大學(xué)景點(diǎn)一覽 nn”);printf(“t|--------|n”);printf(“t| 1:南區(qū)大門 |n”);printf(“t|--------|n”);printf(“t| 2:校訓(xùn)牌 |n”);printf(“t|--------|n”);printf(“t| 3:圖書館 |n”);printf(“t|--------|n”);printf(“t| 4:南區(qū)一食堂 |n”);printf(“t|--------|n”);printf(“t| 5:孔目湖 |n”);printf(“t|--------|n”);printf(“t| 6:北區(qū)大門 |n”);printf(“t|--------|n”);printf(“t| 7:15棟教學(xué)樓 |n”);printf(“t|--------|n”);printf(“t| 8:北區(qū)食堂 |n”);printf(“t|--------|n”);printf(“t| 9:科技樓 |n”);printf(“t|--------|n”);printf(“t| 10:北區(qū)籃球場 |n”);printf(“t|--------|n”);} void introduce()//根據(jù)上面的瀏覽表,對應(yīng)出相關(guān)信息 { int a=1;printf(“n”);printf(“請輸入要查看的景點(diǎn):n”);printf(“輸入1~10的數(shù)字選擇景點(diǎn),其他數(shù)字返回上一級n”);while(0 switch(a) {case 1:printf(“1:南區(qū)大門是進(jìn)入華東交通大學(xué)南區(qū)的正門n”);break; case 2:printf(“2:校訓(xùn)牌是激勵(lì)我們大學(xué)生積極向上n”);break; case 3:printf(“3:圖書館是給我們大學(xué)生豐富知識(shí)的海洋n”);break; case 4:printf(“4:南區(qū)一食堂是南區(qū)學(xué)生的吃飯的地方n”);break; case 5:printf(“5:孔目湖是華東交通大學(xué)最迷人的地方n”);break; case 6:printf(“6:北區(qū)大門是進(jìn)入華東交通大學(xué)北區(qū)的正門n”);break; case 7:printf(“7:15棟教學(xué)樓是一棟綜合型的教學(xué)樓n”);break; case 8:printf(“8:北區(qū)食堂是北區(qū)學(xué)生吃飯的地方n”);break; case 9:printf(“9:科技樓是大學(xué)生上機(jī)做實(shí)驗(yàn)的教學(xué)樓n”);break; case 10:printf(“10:北區(qū)籃球場是大學(xué)生鍛煉身體的地方n”);break; } } } void show_didian(int n)//根據(jù)算法求出的整型數(shù),對應(yīng)出地點(diǎn)//根據(jù) xx算法求出的數(shù)字,轉(zhuǎn)化為文字描述 { switch(n){case 0:printf(“1.南區(qū)大門”);break;case 1:printf(“2.校訓(xùn)牌”);break;case 2:printf(“3.圖書館 ”);break;case 3:printf(“4.南區(qū)一食堂”);break;case 4:printf(“5.孔目湖”);break;case 5:printf(“6.北區(qū)大門”);break;case 6:printf(“7.15棟教學(xué)樓”);break;case 7:printf(“8.北區(qū)食堂”);break;case 8:printf(“9.科技樓”);break;case 9:printf(“10.北區(qū)籃球場”);break;} } void ppath(int path[][MAXV],int i,int j)//求最短路徑經(jīng)過的地點(diǎn) { int k=path[i][j];if(k==-1)return;ppath(path,i,k);show_didian(k);printf(“->> ”);ppath(path,k,j);} void put_shortdistance(int x,int y,int A[][MAXV],int path[][MAXV],int n){ int i,j;for(i=0;i for(j=0;j if(A[i][j]==INF) { if(i!=j)printf(“從%d到%d沒有路徑n”,i,j); } else { if(i==x&&j==y) { printf(“最短路徑為:從--”); show_didian(i); printf(“--到--”); show_didian(j); printf(“--路徑為--:n”); show_didian(i);//輸出起點(diǎn) printf(“->>”); ppath(path,i,j);//求最短路徑經(jīng)過的中間路徑,若沒有則不輸出 show_didian(j);//輸出 終點(diǎn) printf(“nt路徑長度為:%dn”,A[i][j]); } } } void shortdistance(MGraph g,int x,int y)//求最短路徑用的是弗洛伊德算法 { int A[MAXV][MAXV],path[MAXV][MAXV];//path為中間路徑不包括 起點(diǎn) 終點(diǎn) int i,j,k,n=g.vexnum;for(i=0;i //給A數(shù)組置初值 for(j=0;j { A[i][j]=g.edges[i][j];path[i][j]=-1; } for(k=0;k //計(jì)算Ak { for(i=0;i for(j=0;j //這里的3個(gè)for循環(huán) if(A[i][j]>(A[i][k]+A[k][j]))//所以時(shí)間復(fù)雜度O(n3) { A[i][j]=A[i][k]+A[k][j];path[i][j]=k; } } put_shortdistance(x,y,A,path,n);} void menu(MGraph g)//建立 菜單 頁面,可以無數(shù)次選擇菜單,當(dāng)輸入5時(shí)退出系統(tǒng) { int m=1,x=1,y=1;//m的菜單選擇的功能x,y分別表示從x到y(tǒng)的問路查詢 while(m!=5){ printf(“ttt|------------------------|n”); printf(“ttt|----------菜單----------|n”); printf(“ttt| 1:查看地圖 |n”); printf(“ttt| 2:地圖詳解 |n”); printf(“ttt| 3:景點(diǎn)一覽表 |n”); printf(“ttt| 4:問路查詢 |n”); printf(“ttt| 5:退出 |n”); printf(“ttt|------------------------|n”); printf(“請輸入1~5的數(shù)字n”); scanf(“%d”,&m); switch(m) {case 1:ecjtumap();break; case 2:listmap(); introduce();break; case 3:listmap(); introduce(); printf(“n”);break; case 4:listmap(); printf(“請輸入起點(diǎn):”); scanf(“%d”,&x);x+=-1; printf(“請輸入終點(diǎn):”); scanf(“%d”,&y);y+=-1; shortdistance(g,x,y);break; case 5:printf(“ttt感想使用本系統(tǒng),歡迎下次繼續(xù)使用n”);break; } } } void main(){ system(“color 0a”);//輸出字體為綠色 int i,j;MGraph g;int A[MAXV][10]={ {INF, 1,INF,INF,INF, 1,INF,INF,INF,INF},{ 1,INF, 5, 6, 7,INF,INF,INF,INF,INF},{INF, 5,INF,INF, 2,INF,INF,INF,INF,INF},{INF, 6,INF,INF, 5,INF,INF,INF,INF,INF},{INF, 7, 2, 5,INF,INF,INF,INF,INF,INF},{ 1,INF,INF,INF,INF,INF, 3,INF, 5,INF},{INF,INF,INF,INF,INF, 3,INF, 2,INF,INF},{INF,INF,INF,INF,INF,INF, 2,INF, 8, 10},{INF,INF,INF,INF,INF, 5,INF, 8,INF, 2},{INF,INF,INF,INF,INF,INF,INF, 10, 2,INF}};g.vexnum=11;g.arcnum=11;for(i=0;i for(j=0;j g.edges[i][j]=A[i][j];printf(“n”);printf(“ttt華東交通大學(xué)導(dǎo)游咨詢系統(tǒng)n”);menu(g);//進(jìn)入導(dǎo)游系統(tǒng),執(zhí)行菜單功能 } 《導(dǎo)游業(yè)務(wù)》課程設(shè)計(jì) 一、課程基本信息 1.課程名稱:導(dǎo)游業(yè)務(wù) 2.課程類別:專業(yè)核心課 3.課程編碼:081024 4.學(xué)時(shí):共70學(xué)時(shí),其中講授50學(xué)時(shí),實(shí)訓(xùn)20學(xué)時(shí);3學(xué)分 5.適應(yīng)專業(yè):旅游管理專業(yè) 二、教學(xué)設(shè)計(jì) (一)學(xué)習(xí)基礎(chǔ)分析: 《導(dǎo)游業(yè)務(wù)》是一門實(shí)踐性很強(qiáng)的課程,通過本課程的教學(xué)讓學(xué)生能掌握導(dǎo)游服務(wù)程序與服務(wù)技巧,利用所學(xué)過的導(dǎo)游業(yè)務(wù)相關(guān)知識(shí),靈活機(jī)動(dòng)地處理旅游過程中所發(fā)生的各種問題。從理論和實(shí)踐兩個(gè)方面,鍛煉學(xué)生的組織協(xié)調(diào)能力和人際關(guān)系的協(xié)調(diào)能力,提高學(xué)生的綜合素質(zhì),為學(xué)生以后從事導(dǎo)游職業(yè)打下良好基礎(chǔ)。 學(xué)習(xí)這門課程,應(yīng)具備以下幾方面的基礎(chǔ)知識(shí)和能力。 1.具有一定的人際關(guān)系處理能力; 2.具有一定的隨機(jī)應(yīng)變能力; 3.具有一定的組織協(xié)調(diào)能力; 4.具有較強(qiáng)的數(shù)字運(yùn)算能力; 5.具有一定的邏輯思維能力; 6.具有一定的文字理解和表達(dá)能力; 7.具有良好的學(xué)習(xí)習(xí)慣。 (二)學(xué)習(xí)目標(biāo) 1.知識(shí)目標(biāo) (1)能說明導(dǎo)游服務(wù)的概念、性質(zhì)和特點(diǎn); (2)能說出導(dǎo)游服務(wù)工作類型和范圍; (3)能說出導(dǎo)游服務(wù)的原則; (4)能識(shí)別導(dǎo)游服務(wù)集體的關(guān)系; (5)能說出導(dǎo)游人員的發(fā)展、概念與分類; (6)能說出導(dǎo)游人員的職責(zé); (7)能描述導(dǎo)游人員的素質(zhì)和導(dǎo)游人員培訓(xùn); (8)能描述導(dǎo)游人員的服務(wù)質(zhì)量管理; (9)能描述導(dǎo)游服務(wù)程序; (10)能準(zhǔn)確陳述交通、郵電通訊、貨幣保險(xiǎn)及出入境常識(shí) (11)能說出導(dǎo)游人員的禮儀。 2.能力目標(biāo) (1)能準(zhǔn)確區(qū)分全陪、地陪、領(lǐng)隊(duì)導(dǎo)游服務(wù)程序及職權(quán)范圍; (2)會(huì)判斷導(dǎo)游人員計(jì)分管理制度下的扣分情況; (3)能運(yùn)用導(dǎo)游服務(wù)程序完成全陪、地陪、領(lǐng)隊(duì)的導(dǎo)游服務(wù)工作; (4)會(huì)運(yùn)用散客服務(wù)程序完成散客導(dǎo)游服務(wù)工作; (5)會(huì)在景區(qū)景點(diǎn)進(jìn)行導(dǎo)游服務(wù)、講解工作; (6)會(huì)正確并合理處理旅游者在餐飲、住房、娛樂、購物方面的個(gè)別要求; (7)會(huì)正確并合理處理導(dǎo)游服務(wù)工作中常見的問題及事故; (8)會(huì)對特殊旅游團(tuán)隊(duì)提供導(dǎo)游服務(wù);(9)會(huì)正確處理導(dǎo)游帶團(tuán)中的各方關(guān)系; (10)會(huì)運(yùn)用導(dǎo)游帶團(tuán)技巧為游客提供滿意的導(dǎo)游服務(wù);(11)能運(yùn)用語言表達(dá)技巧正確處理日常生活中的人際關(guān)系;(12)能運(yùn)用導(dǎo)游講解方法模擬導(dǎo)游講解;(13)會(huì)創(chuàng)作合理、科學(xué)的導(dǎo)游詞; (14)能展示規(guī)范、優(yōu)雅的導(dǎo)游社交禮儀; (15)會(huì)運(yùn)用旅行服務(wù)知識(shí),更好的為游客旅行服務(wù)。 3.素質(zhì)目標(biāo) (1)學(xué)會(huì)分析問題時(shí)思維方式的轉(zhuǎn)變; (2)學(xué)會(huì)利用和把握已知因素,解決未知問題的能力; (3)學(xué)會(huì)積極思考,勤于動(dòng)腦動(dòng)手; (4)學(xué)會(huì)按時(shí)保質(zhì)完成工作任務(wù); (5)學(xué)會(huì)尊重他人; (6)學(xué)會(huì)遵紀(jì)守時(shí); (7)學(xué)會(huì)事事、時(shí)時(shí)、處處留心,向他人學(xué)習(xí); (8)學(xué)會(huì)互相幫助、互相扶持、共同提高; (9)學(xué)會(huì)善于表達(dá); (10)學(xué)會(huì)自己對自己負(fù)責(zé)。 (三)教學(xué)內(nèi)容(含作業(yè)設(shè)計(jì)) 模塊一 基礎(chǔ)篇 序號(hào) 模塊 章節(jié) 教學(xué)內(nèi)容 作業(yè)設(shè)計(jì) 基礎(chǔ)篇 導(dǎo)游服務(wù) 1.導(dǎo)游服務(wù)的概念、性質(zhì)和特點(diǎn); 2.導(dǎo)游服務(wù)的類型及范圍; 3.導(dǎo)游服務(wù)的原則; 4.旅游團(tuán)隊(duì)導(dǎo)游服務(wù)集體中全陪、地陪、領(lǐng)隊(duì)的關(guān)系; 5.導(dǎo)游服務(wù)集體協(xié)作共事的基礎(chǔ)和原則。1.導(dǎo)游服務(wù)包括類型 2.旅游團(tuán)隊(duì)導(dǎo)游服務(wù)集體關(guān)系應(yīng)如何處理。 導(dǎo)游人員 1.導(dǎo)游的發(fā)展和由來; 2.導(dǎo)游人員的概念和分類; 3.導(dǎo)游人員的職責(zé); 4.導(dǎo)游人員的素質(zhì); 5.導(dǎo)游人員培訓(xùn)的內(nèi)容、類別及方式; 6.導(dǎo)游人員的計(jì)分管理制度和審核制度。1.查閱資料了解說明導(dǎo)游的發(fā)展史 2.如何提高導(dǎo)游人員素質(zhì); 3、從哪些方面改善自身形象; 4.導(dǎo)游人員計(jì)分管理制度下的扣分情況; 模塊二:實(shí)踐篇 序號(hào) 教學(xué)內(nèi)容 作業(yè)設(shè)計(jì) 實(shí)踐篇 導(dǎo)游服務(wù)程序 1.地陪導(dǎo)游服務(wù)程序; 2.全陪導(dǎo)游服務(wù)程序; 3.出境領(lǐng)隊(duì)導(dǎo)游服務(wù)程序; 4.景區(qū)景點(diǎn)導(dǎo)游服務(wù)程序; 5.散客服務(wù)類型及服務(wù)程序 1.全陪、地陪、領(lǐng)隊(duì)的導(dǎo)游服務(wù)程序; 2.通過視頻分析地陪導(dǎo)游服務(wù)程序中出現(xiàn)的錯(cuò)誤; 3.散客與團(tuán)隊(duì)的區(qū)別; 對旅游者個(gè)別要求的處理 1.對旅游者個(gè)別要求處理的原則; 2.在餐飲、住房、娛樂、購物方面?zhèn)€別要求的處理; 3.游客要求自由活動(dòng)的處理辦法; 4.旅游者越軌言行的處理辦法; 5.旅游者其他個(gè)別要求的處理。1.旅游者個(gè)別要求的屬性; 2.個(gè)別要求的處理原則; 3.在餐飲、住房、娛樂、購物方面游客的個(gè)別要求,并合理的處理問題; 4.游客要求自由活動(dòng)應(yīng)如何解決; 5.游客越軌言行的性質(zhì)及處理方法。 常見問題及事故的預(yù)防和處理 1.事故預(yù)防和處理的基本原則; 2.計(jì)劃變更的處理; 3.旅游團(tuán)漏接、錯(cuò)接、空接的預(yù)防和處理辦法; 4.送站時(shí)常見問題和事故的預(yù)防和處理; 5.旅游者在丟失物品的預(yù)防和處理; 6.旅游者在走失的預(yù)防和處理; 7.旅游者患病、死亡的處理 8.旅游安全事故的預(yù)防和處理。1.計(jì)劃變更問題的處理技巧; 2.旅游團(tuán)漏接、錯(cuò)接及空接的預(yù)防及處理; 3.接站和送站時(shí)容易發(fā)生那些事故,怎樣做好送站時(shí)誤機(jī)、誤船事故的預(yù)防和處理工作。4.游客丟失物品的預(yù)防提醒工作,并在發(fā)生丟失情況下能按照規(guī)章程序做好善后處理工作; 5.游客走失的各種情況,并做好預(yù)防及處理工作; 6.游客患病及死亡的處理原則,配合相關(guān)部門做好善后處理; 7.旅游安全事故的屬性,并能做好積極預(yù)防。 模塊三:技能篇 序號(hào) 教學(xué)內(nèi)容 作業(yè)設(shè)計(jì) 技能篇 導(dǎo)游人員的帶團(tuán)技能 1.導(dǎo)游人員的帶團(tuán)技能; 2.與旅游者建立良好的人際關(guān)系的技巧; 3.殘疾旅游團(tuán)、學(xué)生旅游團(tuán)、老年旅游團(tuán)、難以對付的旅游者的導(dǎo)游服務(wù)技巧。 1.與旅游者建立良好的人際關(guān)系; 2.運(yùn)用才藝表演、精彩的導(dǎo)游講解、熱情周到的導(dǎo)游服務(wù),為游客提供服務(wù)。 導(dǎo)游講解技能 1.導(dǎo)游語言基本原則; 2.導(dǎo)游語言的音調(diào)和節(jié)奏; 3.導(dǎo)游講解方法; 4.導(dǎo)游詞的特點(diǎn)及創(chuàng)作技巧,并規(guī)范的撰寫導(dǎo)游詞; 1.日常講話中哪些語言的音調(diào)節(jié)奏變化會(huì)引起的內(nèi)容寓意發(fā)生變化; 2.模仿案例中音調(diào)節(jié)奏的變化表達(dá)不同的語義; 3.運(yùn)用常用的八種導(dǎo)游講解方法模擬訓(xùn)練; 4.撰寫生動(dòng)活潑的導(dǎo)游詞,并根據(jù)不同的服務(wù)對象提供不同的導(dǎo)游講解風(fēng)格。 模塊四:常識(shí)篇 序號(hào) 教學(xué)內(nèi)容 作業(yè)設(shè)計(jì) 常識(shí)篇 旅行服務(wù)必備知識(shí) 1.航空客運(yùn)、鐵路客運(yùn)、水路客運(yùn)基本知識(shí); 2.郵電通訊、貨幣保險(xiǎn)知識(shí); 3.旅行證件的相關(guān)規(guī)定及出入境知識(shí)。 1.模擬乘飛機(jī)時(shí)給旅游者提供買票、退票服務(wù); 2模擬辦理護(hù)照簽證,并向游客告知出入境時(shí)的相關(guān)規(guī)定。 社交禮儀基本知識(shí) 1.禮節(jié)禮貌及禮儀的基本概念; 2.導(dǎo)游接待服務(wù)時(shí)的禮儀; 3.導(dǎo)游進(jìn)出旅游者房間的禮節(jié); 4.宴席中的導(dǎo)游服務(wù)禮儀。 1.模擬導(dǎo)游服務(wù)禮儀規(guī)范; (四)教學(xué)方法 1.案例導(dǎo)入,問題提出、課堂互動(dòng)交流; 2.學(xué)生帶任務(wù)自學(xué),老師指導(dǎo)、講評; 3.多媒體教學(xué),案例分析; 4.模擬演練,實(shí)訓(xùn)室體驗(yàn); 5.深入旅游企業(yè)調(diào)研,現(xiàn)場操作、模擬運(yùn)行; 6.調(diào)研報(bào)告、策劃方案、小論文考查 (五)教學(xué)進(jìn)程 序號(hào) 內(nèi) 容 學(xué)時(shí)(70) 講授 實(shí)訓(xùn) 1 基礎(chǔ)篇 導(dǎo)游服務(wù) 導(dǎo)游人員 3 2 實(shí)踐篇 導(dǎo)游服務(wù)程序、4 2 對旅游者個(gè)別要求的處理 8 3 常見問題及事故的預(yù)防和處理 8 3 3 技能篇 導(dǎo)游人員的帶團(tuán)技能 10 4 導(dǎo)游講解技能 10 6 4 常識(shí)篇 旅行服務(wù)必備知識(shí) 2 導(dǎo)游服務(wù)禮儀 2 2 合計(jì) 20 三、考核與評價(jià) (一)考核方式及成績評定標(biāo)準(zhǔn) 1.得分部分 序號(hào) 考核項(xiàng)目 所占比重(%)1 考勤、10 2 課堂提問 10 3 模擬訓(xùn)練 20 4 期末考試(閉卷)或?qū)嵺`性考試 60 小計(jì) 100 2.扣分部分 序號(hào) 考核項(xiàng)目 扣分標(biāo)準(zhǔn) 1 請假 每2學(xué)時(shí)扣1分 2 遲到或早退 第二次開始每次扣3分 3 曠課 每次扣5分 3.最終成績:得分部分成績減去扣分部分的成績?yōu)樽詈蟮恼n程考核成績。 (二)學(xué)習(xí)效果評價(jià) 學(xué)習(xí)效果評價(jià)是課程教學(xué)的重要環(huán)節(jié),是檢驗(yàn)學(xué)生是否掌握必需的知識(shí)和技能、達(dá)到課程教學(xué)目的的重要手段,也是教師及時(shí)調(diào)整教學(xué)內(nèi)容、改變教學(xué)方法的關(guān)鍵環(huán)節(jié)。主要通過以下方法開展評價(jià)。 一是作業(yè)反饋,通過學(xué)生的作業(yè)完成情況了解其學(xué)習(xí)目標(biāo)的實(shí)現(xiàn)情況;二是與學(xué)生交流,通過詢問了解其對所學(xué)內(nèi)容的掌握程度及對課程的理解、意見和建議;三是課堂提問,通過回答問題了解其對已學(xué)內(nèi)容的理解掌握程度;四是模擬訓(xùn)練,通過模擬訓(xùn)練檢驗(yàn)其學(xué)習(xí)效果;五是教學(xué)檢查或督導(dǎo)檢查,通過檢查會(huì)、座談會(huì)、意見反饋表等多種途徑了解學(xué)生學(xué)習(xí)情況及學(xué)習(xí)需求。 通過以上多種途徑綜合考量,能夠比較全面的了解學(xué)生的學(xué)習(xí)情況,及時(shí)總結(jié),及時(shí)改進(jìn),使學(xué)生的學(xué)習(xí)效果更進(jìn)一步提高。 四、其他 (一)參考教材、講義、設(shè)備、網(wǎng)絡(luò)等教學(xué)資源。 使用教材為陜西省導(dǎo)游人員資格考試叢書新版《導(dǎo)游業(yè)務(wù)》,主要參考資料為 1.導(dǎo)游業(yè)務(wù) 國家旅游局人事勞動(dòng)教育司主編 旅游教育出版社 2013 2.導(dǎo)游服務(wù)技能 江蘇省旅游局編 中國旅游出版社 2011 3.導(dǎo)游業(yè)務(wù) 北京市旅游局編 北京燕山出版社 2004 (二)編制依據(jù) (1)該課程設(shè)計(jì)依據(jù)導(dǎo)游服務(wù)程序進(jìn)行分析,突出技能實(shí)踐,提高學(xué)生的知識(shí)、技能和素質(zhì)。 (2)依托校企合作、校企共建,緊密結(jié)合“工學(xué)交替”人才培養(yǎng)模式。(3)企業(yè)參與課程開發(fā),構(gòu)建以項(xiàng)目為導(dǎo)向的課程體系。 (4)院發(fā)[2008]67號(hào)文件(楊凌職業(yè)技術(shù)學(xué)院關(guān)于課程標(biāo)準(zhǔn)制定及實(shí)施工作的通知)。 (三)執(zhí)筆人:張紅娟 尊敬的各位專家,大家上午好: 熱烈歡迎各位專家蒞臨于集小學(xué)檢查指導(dǎo)工作。我是于集小學(xué)的老師龐明明 于集小學(xué)于1984年建校,坐落在十八里鎮(zhèn)于集行政村于集村內(nèi)。占地面積7874平方米,校舍面積1530平方米。在編在職教師12人,本期在校學(xué)生人數(shù)140人,有6個(gè)教學(xué)班,一個(gè)幼兒園,是一所農(nóng)村完全小學(xué)。 請各位專家隨我到校園參觀。左邊是我們的告訴牌,牌上告訴學(xué)生以及家長進(jìn)入學(xué)校的一些注意事項(xiàng)。右邊是學(xué)校簡介。這是我們每周一的“在國旗下講話”活動(dòng)照片。國學(xué)經(jīng)典誦讀。這邊是我們的陽光體育課。 請各位專家隨我到我們的各功能室參觀檢查指導(dǎo)。這是我們的音樂室,音樂室的管理員恰好是我。音樂室現(xiàn)有器材9類,共160件。有軍鼓,電鋼琴,打擊樂器等。每周共有10節(jié)音樂課。這里為學(xué)生的全面發(fā)展提供了廣闊的空間。這是我們的體育室。這是我們的美術(shù)室。 各位專家,現(xiàn)在在我們面前的是我們于集小學(xué)的操場。于集小學(xué)的操場建成于2016年5月份,占地面積1930平方米,設(shè)有籃球架,乒乓球臺(tái),排球場地,單杠,直跑道等體育設(shè)施,為學(xué)生的身體健康提供良好的鍛煉場所。在我們的右手邊是我校的文化宣傳欄,宣傳欄每兩周更新一次,完全由學(xué)生自主完成。這是我們的辦公室,儀器管理室、實(shí)驗(yàn)室、會(huì)議室。 這是我們的班班通教室,這是一年級教室?,F(xiàn)有學(xué)生30人。這是二年級教室,現(xiàn)有學(xué)生20人。這是三年級教室,現(xiàn)有人數(shù)20人。這是四年級教室,現(xiàn)有人數(shù)24人。這是五年級教室,現(xiàn)有人數(shù)22人。這是六年級教室,現(xiàn)有人數(shù)23人。道路的右側(cè)是我校的綠化。校園總綠化面積為1900平方米。位于左側(cè)花園的雕塑名為“托起未來”。寓意于集小學(xué)的全體老師將攜手,竭誠為教育服務(wù),努力托起祖國的未來。在調(diào)來于集小學(xué)工作不久我特意詢問了我們校長這顆蒼翠的松樹的年齡。我們校長說這顆松樹有四十多歲了,再具體的時(shí)間他也記不得了。十年樹人,百年樹木,這顆松樹不僅見證了于集校的成長歷程,更是見證了鄉(xiāng)村教育的發(fā)展歷程。 各位專家,這是我們的圖書室。這是我們的留守兒童室。這是我們的計(jì)算機(jī)室。 感謝各位專家對的參觀檢查。請各位專家到會(huì)議室稍作休息,也請各位專家多提寶貴意見和建議。我代表于集小學(xué)的全體師生再次對專家們的到來表示衷心的感謝,也祝愿各位專家新年和樂安康!第二篇:校園導(dǎo)游課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
第三篇:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園導(dǎo)游咨詢
第四篇:導(dǎo)游業(yè)務(wù)課程設(shè)計(jì)(終)
第五篇:校園導(dǎo)游