畢業設計 第三章 開發方法及系統實現 4

2021-08-22 04:09:52 字數 2268 閱讀 3899

3.5其他輔助操作類

除了上述的三個比較重要的操作類外,完成整個系統操作,需要輔助功能操作類。

3.5.1多**操作類csoundplay

csoundplay類的成員方法如下:

表 3-7 csoundplay類的成員方法

名稱

引數

返回值

說明

csoundplay

建構函式

playsound

string

3.5.2影象匯出類cmapexport

綜合前面的敘述,在選擇使用mapobjects進行系統開發時,考慮到了其支援的檔案物件的相對mapinfo多,而且,為了儲存使用者操作後的影象檔案,必須對地圖上的圖形資料進行儲存處理。該部分的工作是由cmapexport類來完成的。

** 2 cmapexport類的成員方法

名稱

引數

返回值

說明

cmapexport

建構函式

init

變數初始化

export

maptype

影象匯出

3.6

核心演算法與相應關鍵技術詳述

3.6.1一點到所有點的最短路徑

這裡採用圖論裡最經典的dijkstra

[8]演算法,只是每一段路經的長度都用正向阻力值和逆向阻力值計算。最短路徑和最佳路徑在演算法上區分不大。只是阻力值確定的方式,但是需要特別注意的是,正向阻力值和逆向阻力值需要分別考慮。dijkstra演算法的基本思想如下:

(1) 問題描述:設圖g=(v,e),v0∈v,求從點v0出發到其他點的最短路徑。

(2) 演算法描述:設圖g 中有n個點,設定乙個集合u,存放已經求出的最短路徑的點。v-u是尚未確定最短路徑的點集合,每個點對應乙個距離值。集合u中點的距離值是從點v0到該點的最短路徑長度,集合v-u中的點的距離值是從點v0到該點的只包含以集合u中點為中間點的最短路徑長度。初始時,集合u中只有v0,點v0對應的距離值為0,集合v-u中點vi的距離值為邊(v0,vi)的權值(i=1,2,…,n-1),如果v0和vi無直接相連的邊,則vi的距離值為∞,在集合v-u 中選擇距離最小的點vmin加入集合u,然後對集合v-u中的各點的距離值進行修正。如果加入點vmin為中間點後,使v0到vi的距離值比原來的距離值更小,則修改vi的距離值。如此反覆操作,直到從v0出發可以到達的所有點都在集合u中為止。

(3) 演算法實現:設定乙個cmapcontrol類的陣列p[n],存放點v0到其他各個點的最短路徑及最短路徑長度。設d(i,j)為點vi到點vj的距離。

(a) 初始時,集合u中只有點v0,從點v0到其他點vi(i=1,2,…,n-1)的最短路徑長度為邊(v0,vi)的長度。如果點v0和vi不是直接相連,則假設存在一條從v0到vi長度為無窮(小於0)的邊。

(b) 在集合v-u 中找出距離值最小的點vmin,將其加入到集合u,從點vo到vmin的最短路徑長度就是vmin的距離值,

(c) 調整集合v-u中點的距離之。如果將新加入的點vmin作為中間點後,vo到vi(vi∈v-u)的距離值更小,則應修改vi的距離值。即:如果p[i].dlength〉p[min].dlength+d(min,i),則將點vi的距離值改為p[min].dleng+d(min),並將路徑上vi的前趨點改為vmin,即:p[i].nprenode=min

(d) 重複(b)、(c)操作,直到集合v-u中的點都加入集合u中為止。

(4) 圖形描述:

** 3 dijkstra 舉例資料

[6] 管段

權值

畢業設計 第三章 系統總體設計

基於區塊鏈的感測器資料保護系統的設計與實現 第三章 系統總體設計 基於區塊鏈的感測器資料保護系統需要解決的問題是保護感測器資料的真實性,防止敏感非隱私的感測器資料被篡改。從相關部門機構的角度來看,作為公示資料的權威中心,他們應該更加關心系統的成本和部署難度,為了降低成本和減少資源消耗,不應在原有的中...

創新實訓 第三章

本來預計的是昨天把專業課的實驗全部做完,昨天基本上是搞定了,結果我今天早上打算稍微完善一下就寫個實驗報告結束的,沒想到昨天花了將近一整天寫的 竟然忘記儲存了,惹得我今天又重新寫了大半天的實驗,終於算是完成了,所以今天沒有把太多的精力放在實訓上面,但是我覺得今天還是有很大的收穫,今天主要學習的是num...

第三章 UI開發

alertdialog可以在當前的介面彈出乙個對話方塊,這個對話方塊是置頂於所有介面元素之上的,能夠遮蔽掉其他控制項的互動能力,因此一般 alertdialog都是用於提示一些非常重要的內容或者警告資訊。public class mainactivity extends activity imple...