c语言数据结构校园导游系统,校园导游系统课程设计报告
校園導(dǎo)游系統(tǒng)課程設(shè)計(jì)報(bào)告
目錄 1、需求分析1 2、總體設(shè)計(jì)1 2.1 抽象數(shù)據(jù)類型圖的定義1 2.2 程序中包含的模塊1 2.3模塊間的調(diào)用關(guān)系3 3、詳細(xì)設(shè)計(jì)3 3.1 代碼設(shè)計(jì)3 3.1.1 定義結(jié)構(gòu)體和全局變量3 3.1.2 平面圖的初始化4 3.1.3 最短路徑查詢5 3.1.4 景點(diǎn)信息查詢8 3.1.5景點(diǎn)信息更新8 3.2 界面分析9 3.2.1 主程序界面9 3.2.2 景點(diǎn)信息的查詢10 3.2.3 最短路徑查詢11 3.2.4 管理校園查詢系統(tǒng)12 4、總結(jié)報(bào)告12 參考文獻(xiàn)13 1、需求分析 設(shè)計(jì)一個(gè)校園導(dǎo)游系統(tǒng)程序,為來(lái)訪的客人提供各種服務(wù)的信息查詢。 (1).設(shè)計(jì)濰坊學(xué)院校園平面圖,所含的景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示校內(nèi)各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息;以邊表示路徑,存放路徑長(zhǎng)度等相關(guān)信息。 (2).為來(lái)訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。 (3).為來(lái)訪客人提供圖中任意景點(diǎn)的問(wèn)路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一條最短的簡(jiǎn)單路徑。 2、算法設(shè)計(jì) 2.1 概要設(shè)計(jì) 2.1.1 函數(shù)定義的變量 /*定義符號(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)過(guò)的景點(diǎn)*/ 2.1.2 程序中包含的模塊 (1)主程序模塊 void main()/*主函數(shù)*/ 打印菜單,景點(diǎn),景點(diǎn)信息 定義景點(diǎn)之間的權(quán)值 (2)查詢模塊 景點(diǎn)信息查詢:void introduce()/*景點(diǎn)介紹*/ 最短路徑查詢:int shortestdistance() /*要查找的兩景點(diǎn)的最短距離*/ void floyed()/*用floyed算法求兩個(gè)景點(diǎn)的最短路徑*/ (3)打印模塊 打印最短路徑:void display(int i,int j) /* 打印兩個(gè)景點(diǎn)的路徑及最短距離 */ 2.1.3模塊間的調(diào)用關(guān)系 Main() void introduce() int shortestdistance() void floyed() void display() 2.2 詳細(xì)設(shè)計(jì) #include #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)過(guò)的景點(diǎn)*/ /*自定義函數(shù)說(shuō)明*/ void introduce(); int shortestdistance(); void floyed(); void display(int i,int j); void main() { int i,j; char k; for(i=0;i10的數(shù)字編號(hào)并用 , 間隔):“); scanf(“%d,%d“, if(i>n||in||j10的數(shù)字編號(hào)并用 , 間隔):\n“); scanf(“%d,%d“, } else { floyed(); display(i,j); } return 1; }/*shortestdistance*/ void floyed()/*用floyed算法求兩個(gè)景點(diǎn)的最短路徑*/ { int i,j,k; for(i=1;i%d“,path[i][j]); if(i%d“,b); printf(“\n\n“); printf(“(%d->%d)最短距離是:%5d米\n\n“,a,b,shortest[a][b]); } } else printf(“輸入錯(cuò)誤!不存在此路!\n\n“); printf(“\n“); } /*display*/ 3 測(cè)試結(jié)果 3.1 主程序界面 根據(jù)圖中提示選擇要執(zhí)行的操作 圖1 主界面 3.2輸入錯(cuò)誤 輸入i ,s ,e來(lái)完成相應(yīng)的操作,如果輸入有誤,系統(tǒng)將顯示錯(cuò)誤信息,請(qǐng)重新輸入。 3.3 景點(diǎn)信息的查詢 輸入你要查詢的景點(diǎn)名稱:通過(guò)調(diào)用函數(shù)void introduce()來(lái)查詢景點(diǎn)信息。 如果輸入的景點(diǎn)不存在,系統(tǒng)會(huì)提示你輸入錯(cuò)誤,請(qǐng)重新輸入。 圖2 信息查詢界面 輸入編號(hào)存在,則系統(tǒng)顯示要查詢的景點(diǎn)信息。 3.4 最短路徑查詢 輸入你所在的景點(diǎn)和要到達(dá)的景點(diǎn),將輸出這兩點(diǎn)的最短距離: 調(diào)用函數(shù)void floyed();來(lái)求最短路徑。 圖3 路徑查詢界面 3.5 退出系統(tǒng) 根據(jù)提示按“e”退出該系統(tǒng),程序結(jié)束。 4、總結(jié)報(bào)告 通過(guò)本次課程設(shè)計(jì)實(shí)驗(yàn),使我更能熟練地掌握c語(yǔ)言、c++以及數(shù)據(jù)結(jié)構(gòu)等知識(shí)的綜合運(yùn)用。當(dāng)然在課程設(shè)計(jì)期間,也遇到了大大小小的一些問(wèn)題,是我看到了自己的不足之處,使我認(rèn)識(shí)到在以后的學(xué)習(xí)中要善于發(fā)現(xiàn)自己的不足,找出自己的薄弱環(huán)節(jié),以便能夠更好的去鞏固所學(xué)的。 本次設(shè)計(jì)中要求求最短路徑,就必須了解最短路徑的算法:Dijkstra算法和Floyd算法。在拿到題目時(shí),通過(guò)查找相關(guān)的資料才回憶起這兩種方法的具體算法。比較這兩種算法的復(fù)雜度,盡量選用復(fù)雜度小。當(dāng)然任何程序都不可能完美,往往會(huì)犧牲程序的空間來(lái)?yè)Q取時(shí)間,或者犧牲時(shí)間來(lái)?yè)Q取足夠大的空間,這就需要根據(jù)程序的具體要求來(lái)設(shè)計(jì)算法。在選用存儲(chǔ)方法是,要盡量選用時(shí)間復(fù)雜度較小的方法,這樣能夠節(jié)省程序執(zhí)行時(shí)間,提高查詢效率。 課程設(shè)計(jì)中所使用的計(jì)算機(jī)語(yǔ)言其使用范圍比較廣闊,在很多編程中都可以用到,所以無(wú)論以后我們從事計(jì)算機(jī)編程、軟件設(shè)計(jì)還是硬件、網(wǎng)絡(luò)等領(lǐng)域,都應(yīng)該學(xué)會(huì)、學(xué)精一門編程語(yǔ)言,這對(duì)我們以后的學(xué)習(xí)和工作有很大的幫助。 參考文獻(xiàn) [1].秦鋒.數(shù)據(jù)結(jié)構(gòu):中國(guó)科學(xué)技術(shù)大學(xué)出版社,2007 [2].溫秀梅,丁學(xué)鈞.VisualC++面向?qū)ο蟪绦蛟O(shè)計(jì).北京:清華大學(xué)出版社,2007 [3].徐孝凱.C++語(yǔ)言基礎(chǔ)教程.北京:清華大學(xué)出版社,2006
總結(jié)
以上是生活随笔為你收集整理的c语言数据结构校园导游系统,校园导游系统课程设计报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 只需三步:在CKEditor4富文本编辑
- 下一篇: HTML三大布局方式