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