北京林業大學
12 學年— 13 學年第1 學期資料結構a 實習報告書
專業: 班級:
姓名學號
實習地點: 資訊樓 a3機房輔導教師: 李冬梅
實習題目基於無向圖的北林校園導遊與諮詢系統
實習環境visual c
實習內容:
實習內容排版格式要求: 五號字,中文用宋體,英文使用times new roman 單倍行距,圖表中的字型大小均為小五。
實習內容從以下三方面書寫:
(一)實現方法
1. 所用資料結構的定義及其相關說明(相關結構體或類的定義及其含義)
typedef struct
map;
typedef struct定義乙個新的結構體//
amgraph;
2. 自定義函式的名稱及其功能說明,函式對應演算法的時間複雜度
1.createudn(amgraph &g建立乙個鄰接矩陣o(n^2)
&g查詢景點的相關資訊// o(n)
3.output(amgraph &g) //輸出提供服務的所有景點的輸出函式// o(n)
4.shortestpath_dij(amgraph &g,int v0,int v2) //求兩個景點的最短路徑// o(n^2)
6.password(char pd[100],char pass密碼的輸入o(1)
7.check_password比較輸入的數與密碼是否一致// o(1)
8.change_point(amgraph &g) //修改景點的資訊o(n)
9.write_infile(amgraph &g) //寫入檔案函式o(n^2)
&g) //增加景點及資訊的函式o(1)
&g) //增加路徑的函式o(n)
&g) //刪除景點的函式o(n^2)
13back_operate後台操作的介面o(1)
3. 系統的功能模組圖
4. 相應的演算法流程圖
求最短路徑的演算法流程圖:否是
是否是是
否是是否
是否 是否
是否是否
是否否是是否
(二)實驗結果
貼上程式的實際執行測試結果並加以文字說明
主介面和前台服務的介面
但輸入的數字不正確時會有提示錯誤,並可重新輸入
查詢景點小南門的資訊
查詢路線:從小南門—>學二食堂的路線
選擇0返回到主介面
進入後台操作介面要輸入密碼
輸入的密碼有誤,請重新輸入
輸入正確密碼後進入後台操作
把小南門的資訊該為小吃聚集地
檔案中的資訊也被修改
增加乙個景點:西配樓,外語學院辦公所在地。
檔案中更改為
增加路徑時是一條已經存在的路徑時會有提示
例如增加:二教->一教 100公尺
增加一條新的路徑:二教—>綜合樓
檔案中:
刪除一條路徑
刪除:8號樓—>10號樓 50公尺
檔案中:
刪除景點:二教
檔案中:
與二教有關的路徑也刪除了
從後台返回主介面
(三)結論分析
1. 問題與解決方法
1) 一開始是最短路徑這裡老有問題,就是輸出的路線是倒著輸出的,無法按順序輸出路徑中的各個景點,在老師的提示下,我先用乙個陣列來儲存倒著的各個景點,再把這個陣列中的資料倒著輸出,這就得到順序的最短路徑。
2)在路徑的增加函式上,一開始無法判斷增加的路徑是否存在,後來我想到去鄰接矩陣中去找g.arcs[i][j]是否小於maxint就可以判斷了,要是小於那就是已存在,不小於就不存在,並直接把g.arcs[i][j]改為路徑長度就好了。
3)增加景點後我忘了把增加景點與其他景點的路徑初始化為最大值,這個是在答辯時程式執行錯誤後老師發現的問題,在那會來後,我在那個增加景點函式的後面把路徑修改的**寫進去的,之後我再執行程式,發現這樣就好了。
2. 收穫和體會
1)在花了這乙個星期做著大作業後,對「從大化小,有小組大」這八個有了更深刻的體會,當初在我們看來要完成這麼大的乙個校園導航諮詢系統真的不容易,對我而言甚至可以說是很困難的,不過在這幾天以後發現其實並沒有我想象中的那麼困難,只要我把每乙個小的部分做好,在把小的部分乙個乙個的組合起來就可以把大的做好了。這一次在老師的提示的,我們從小的模組開始做,我想在以後我們在碰到大的問題就應該學著老師的做法,把問題分解成小塊在去進行。
資料結構課程設計報告書
南通大學計算機學院 題目 2.3表示式求值問題 專業 電腦科學與技術 開始日期 2013.01.14 完成日期 2012.01.16 表示式是資料運算的基本形式。人們的書寫習慣是中綴式,如 11 22 7 4 3。中綴式的計算按運算子的優先順序及括號優先的原則,相同級別從左到右進行計算。表示式還有字...
資料結構課程設計報告書
課內設計任務一 1.設計題目 運動會分數統計 2.任務 參加運動會有n個學校,學校編號為1 n。比賽分成m個男子專案,和w個女子專案。專案編號為男子1 m,女子m 1 m w。不同的專案取前五名或前三名積分 取前五名的積分分別為 7 5 3 2 1,前三名的積分分別為 5 3 2 哪些專案取前五名或...
資料結構實習報告
接著猜的人再根據出題者的幾a幾b繼續猜,直到猜中為止。次數限制 有的時候,這個遊戲有猜測次數上的限制。根據計算機測算,這個遊戲,如果以最嚴謹的計算,任何數字可以在7次之內猜出。而有些地方把次數限制為6次或更少,則會導致有些數可能猜不出來。而有些地方考慮到人的邏輯思維難以達到計算機的那麼嚴謹,故設定為...