freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc的電子導(dǎo)航系統(tǒng)_畢業(yè)論文-文庫(kù)吧資料

2025-07-11 09:16本頁(yè)面
  

【正文】 表。 public SearchLink Prev。 public int LineID。//線的權(quán)重 public Link v1Next。//每個(gè) Link 對(duì)象的 v1 都應(yīng)該指向它所附屬的點(diǎn)節(jié)點(diǎn) 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 21 public VERTEX v2。//最短路徑中與前一個(gè)點(diǎn)之間的線的 ID public SearchLink SLink。//權(quán)重,初始時(shí)置為無(wú)窮大,搜尋最短路徑時(shí)置為該點(diǎn)當(dāng)前最短路徑長(zhǎng)度 public VERTEX ShortPathPre。 public Link Neighbor。 public VERTEX Prev。 public int Searched。如果所有點(diǎn)已標(biāo)記,則算法完全推出,否則,記 k=i,轉(zhuǎn)到 2)再繼續(xù)。從已標(biāo)記的點(diǎn)中找到直接連接到點(diǎn) i 的點(diǎn) j*,作為前一點(diǎn) ,設(shè)置: i=j*。從所有未標(biāo)記的結(jié)點(diǎn)中, 選取 dj 中最小的一個(gè) i: di=min[ dj, 所內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 20 有未標(biāo)記的點(diǎn) j] ,點(diǎn) i就被選為最短路徑中的一點(diǎn),并設(shè)為已標(biāo)記的。 2) 檢驗(yàn)從所有已標(biāo)記的點(diǎn) k 到其直接連接的未標(biāo)記的點(diǎn) j 的距離 , 并設(shè)置: dj=min[ dj, dk+lkj],式中, lkj 是從點(diǎn) k 到 j 的直接連接距離。求解從起源點(diǎn) s 到點(diǎn) j 的最短路徑算法的基本過(guò)程如下: 開(kāi) 始初 始 化d j = m i n [ d j , d k + l k j ]d i = m i n [ d j , 所 有 未 標(biāo) 記 的 點(diǎn) j ]i = j *標(biāo) 記 點(diǎn) i ,所 有 點(diǎn) 已 標(biāo) 記 ?輸 出 結(jié) 果k = iYN 圖 算法流程圖 1) 初始化。 4. 重復(fù)第 2 和第 3 步 ,直到 OPEN 表為空,或找到目標(biāo)點(diǎn)。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 19 3. 遍歷考察這個(gè)點(diǎn)的子節(jié)點(diǎn)。 1. 訪問(wèn)路 網(wǎng)中距離起始點(diǎn)最近且沒(méi)有被檢查過(guò)的點(diǎn),把這個(gè)點(diǎn)放入 OPEN 組中等待檢查。 其采用的是貪心法的算法策略 , 大概過(guò)程: 創(chuàng)建兩個(gè)表, OPEN, CLOSE。Dijkstra 算法能得出最短路徑的最優(yōu)解,但由于它遍歷計(jì)算的節(jié)點(diǎn)很多,所以效率低。 實(shí)現(xiàn)過(guò)程及其算法分析 Dijkstra(迪杰斯特拉 )算法 是典型的最短路徑路由算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。這就需要先對(duì)原始道路圖進(jìn)行預(yù)處理,構(gòu)建其相應(yīng)的網(wǎng)絡(luò)拓?fù)潢P(guān)系,然后才能進(jìn)行最短路徑分析等各種操作。 圖 折線距離演示 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 18 第四章 最優(yōu)路徑分析 對(duì)城市道路網(wǎng)進(jìn)行最短路徑分析, 需要把城市道路網(wǎng)絡(luò)實(shí)體抽象化為網(wǎng)絡(luò)圖論理論中的網(wǎng)絡(luò)圖,然后通過(guò)圖論中的網(wǎng)絡(luò)分析理論來(lái)實(shí)現(xiàn)道路網(wǎng)絡(luò)的最短路徑分析。 void CVCDZDHView::OnDistanceTool() { // TODO: Add your mand handler code here (MYTOOL_DISTANCE)。 調(diào)用自定義工具 在“工具”下拉菜單中添加“折線距離”子菜單項(xiàng), ID 為 ID_DISTANCE_TOOL。 } } } 為了在狀態(tài)欄中顯示折線距離,還必須在 文件中添加 CMainFrame類的頭文件。 } catch(COleException *e) { eReportError()。 //在狀態(tài)欄中顯示折線距離 } catch(COleDispatchException *e) { eReportError()。 (總距離為 :%f公里 ,dDistanceTot)。 dDistanceTot+=d。 CMapXPoint pt2=(i+1)。in。 n=()。 try { (Points,FALSE)。 long n。 void CVCDZDHView::OnPolyToolUsedMap(short ToolNum,long ags,LPDISPATCH Points,BOOL bShift,BOOL bCtrl,BOOL FAR*EnableDefault) { if (ToolNum==MYTOOL_DISTANCE)。切換到 VCDZDHView. h 文件中,聲明事件響應(yīng)函數(shù),代碼如下。 BEGIN_EVENTSINK_M AP(CVCDZDHView, CView) ON_EVENT(CVCDZDHView, IDC_M AP, 11, OnPolyTooIUsedMap, VTS_I2 VTS_I4 VTS_DISPATCH VTS_BOOL VTS_BOOL VTS_PBOOL) //11 代表PolyToolused,OnPolyToolUsedMap 是事件響應(yīng)函數(shù)的名稱。 在 文件中,在 DECLARE_MESSAGE_MAP()行下面加入如下一行代碼。 //MYTOOL_DISTANCE 代表 自 定義工具的常量 , miToolTypePoly 描述了該工具的行為是畫折線, miCrossCursor 表示指定光標(biāo)的形式 return 0; } 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 14 編程實(shí)現(xiàn)自定義工具的行為 在創(chuàng)建了用戶自定義工具后,需在 ToolUsed 事件中實(shí)現(xiàn)該工具是如何工作的。 define MYTOOL_DISTANCE 1 然后,在 文件中的 OnCreate()函數(shù)中加入如下代碼,從而創(chuàng)建一個(gè)用戶自定義工具。 創(chuàng)建用戶自定義工具 為了滿足用戶需要,使用戶方便查詢兩地之間的距離,我們利用自定義工具在電子導(dǎo)航系統(tǒng)中設(shè)計(jì)了折線距離計(jì)算功能。可使用地圖對(duì)象的 CreateCustomTool 方法創(chuàng)建自定義工具。 } } 這樣,就添加上了圖層控制工具, 運(yùn)行程序,該功能如圖 所示: 圖 圖層控制工具 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 13 第三章 自定義工具 測(cè)量折線距離 MapX 提供的地圖標(biāo)準(zhǔn)工具能滿足一般需要,但在一些特殊地方,用戶可能需要某種特殊工具來(lái)完成某些特定的地圖操作功能。 } catch (COleException *e) { eReportError()。 } catch (COleDispatchException *e) 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 12 { eReportError()。 CMapXLayers layers = ()。 = VT_ERROR。 = VT_ERROR。 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 11 表 部分 MapX 工具的指示常量 圖層控制工具 為了使用戶方便查詢各個(gè)圖層, 通常要在電子導(dǎo)航系統(tǒng)中設(shè)計(jì)圖層控制工具。 其它的功能跟上面的方法類似,只是需要修改指示常量。//miZoomInTool 為放大工具的常量 } 編譯運(yùn)行程序,選擇“工具 放大”,就會(huì)看到此時(shí)光標(biāo)變?yōu)榉糯箸R,單擊鼠標(biāo)就會(huì)實(shí)現(xiàn)放大功能。打開(kāi)類向?qū)?,選擇視圖類 CVCDZDHView,為菜單項(xiàng)內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 10 ID_ZOOM_IN 添加 COMMAND 消息映射函數(shù) OnZoomIn(),并編輯代碼如下。下面的例子是用標(biāo)準(zhǔn)放大工具實(shí)現(xiàn)放大功能。采用 MapX 通用工具,可以非常方便地實(shí)現(xiàn)上述功能。//當(dāng)窗口獲得焦點(diǎn)時(shí),地圖控件獲得焦點(diǎn) } 通過(guò)以上步驟,將應(yīng)用程序編譯運(yùn)行就可顯示地圖。 void CVCDZDHView::OnSetFocus(CWnd*pOldWnd) { 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 9 CView::OnSetFocus(pOldWnd)。修改函數(shù)使得當(dāng)窗口獲得焦點(diǎn)時(shí),地圖控件獲得焦點(diǎn)。 (0,0,cx,cy)。該函數(shù)用來(lái)調(diào)整地圖大小使其充滿客戶區(qū)。 代碼如下: int CVCDZDHView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (!(NULL,WS_VISIBLE,CRect(0,0,100,100),this,IDC_MAP)) return 1。選擇“建立類向?qū)А被蚴褂每旖萱I CTRL+W,可以打開(kāi)類向?qū)А? 3) 在 文件中聲明 int 類型的全局變量 m_created 和 CString 類型的全局變量 m_tempclientpath。// 聲明 CMapX 類型的變量 m_ctrlMapX } 內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 8 2) 為 MapX 創(chuàng)建一個(gè)資源 ID。 1) 在 文件中,加入 對(duì)象的頭文件,并聲明 CMapX 類型的變量 m_ctrlMapX。用戶只需要打開(kāi) Geoset 文件,就可以按預(yù)先定制的方式顯示各層地圖。先將位于 MapX 的安裝路徑下的子目錄 Samples40\C++\Cpp 中的 和 文件拷貝到當(dāng)前應(yīng)用程序 所在的 VCDZDH 文件夾下,然后從 Project 菜單中選擇 Add to ProjectFiles 命令,此時(shí)打開(kāi)了 Insert Files into Project 對(duì)話框,選擇 VCDZDH 文件夾下的 和 文件加入到工程中。下面就用一個(gè)具體的實(shí)例,介紹在 VC++中集成 MapX 的方法。與利用 OLE Automation 技術(shù)作為服務(wù)器的 MapInfo 相比,利用控件開(kāi) 發(fā)速度快,占用資源少,而且易實(shí)現(xiàn)許多底層的編程和開(kāi)發(fā)功能 [4]。這種方法唯一的缺內(nèi)蒙古科技大學(xué)畢業(yè)設(shè)計(jì) 說(shuō)明書(畢業(yè) 論文 ) 6 點(diǎn)是前期投入比較大,需要同時(shí)購(gòu)買 GIS 工具軟件和可視化編程軟件,但“工欲善其事,必先利其器”,這種投資值得。它的優(yōu)點(diǎn)是既可以充分利用 GIS 工具軟件對(duì)空間數(shù)據(jù)庫(kù)的管理、分析功能,又可以利用其它可視化開(kāi)發(fā)語(yǔ)言具有的高效、方便等編程優(yōu)點(diǎn),集二者之所長(zhǎng),不僅能大大提高應(yīng)用系統(tǒng)的開(kāi)發(fā)效率,而且使用可視化軟件開(kāi)發(fā)工具開(kāi)發(fā)出來(lái)的應(yīng)用程序具有更好的外觀效果,更強(qiáng)大的數(shù)據(jù)庫(kù)功能,而且可靠性好、易于移植、便于維護(hù),尤其是使用 OCX 技術(shù)利用 GIS 功能組件進(jìn)行集成開(kāi)發(fā),更能表現(xiàn)出這些優(yōu)勢(shì)。 2) GIS 控件 利用 GIS 工具軟件生產(chǎn)廠家提供的建立在 OCX 技術(shù)基礎(chǔ)上的 GIS 功能控件,如ESRI 的 MapObjects、 MapInfo 公司的 MapX 等,在 VC++等編程工具編制的應(yīng)用程序中,直接將 GIS 功能嵌入其中,實(shí)現(xiàn)地理信息系統(tǒng)的各種功能。 (3)集成二次開(kāi)發(fā) 集成二次開(kāi)發(fā)是指利用專業(yè)的 GIS 工具軟件,如 MapInfo、 ArcView 等,實(shí)現(xiàn) GIS的基本功能,以通用軟件開(kāi)發(fā)工具尤其是可視化開(kāi)發(fā)工具,如 Visual C++、 Delphi、 Visual Basic、 Power Builder 等為開(kāi)發(fā)平臺(tái),進(jìn)行二者的集成開(kāi)發(fā)。用戶可以利用這些宏語(yǔ)言,以原 GIS 工具軟件為開(kāi)發(fā)平臺(tái),開(kāi)發(fā)出自己的針對(duì)不同應(yīng)用對(duì)象的應(yīng)用程序。 (2)單純二次開(kāi)發(fā) 完全借助于 GIS 工具軟件提供的開(kāi)發(fā)語(yǔ)言進(jìn)行應(yīng)用系統(tǒng)開(kāi)發(fā)。 系統(tǒng)設(shè)計(jì)方案 應(yīng)用型 GIS 開(kāi)發(fā)的三種實(shí)現(xiàn)方式 (1)獨(dú)立開(kāi)發(fā) 不依賴于任何 GIS 工具軟件,從空間數(shù)據(jù)的采集、編輯到數(shù)據(jù)的處理分析及結(jié)果輸出,所有的算法都由開(kāi)發(fā)者獨(dú)立設(shè)計(jì),然后選用某種程序設(shè)計(jì)語(yǔ)言,如 Visual C++、 Delphi等,在一定的操作系統(tǒng)平臺(tái)上編程實(shí)現(xiàn)。 Settings 屬性 : 設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位參數(shù)。 Data Set Ready 信號(hào)由調(diào)制解調(diào)器發(fā)送到相連計(jì)算機(jī),指示作好操作準(zhǔn)備。該屬性在設(shè)計(jì)時(shí)無(wú)效,在運(yùn)行時(shí)為只讀。 CDHolding 屬性:通過(guò)查詢 Carrier Detect (CD)線的狀態(tài)確定當(dāng)前是否有傳輸。該屬性在設(shè)計(jì)時(shí)無(wú)效,在運(yùn)行時(shí)為只讀。 CTSHolding 屬性:確定是否可通過(guò)查詢 Clear To Send (CTS)線的狀態(tài)發(fā)送數(shù)據(jù)。 MSComm 控件有很多重要的屬性 ,如: CommPort 屬性:設(shè)置并返回通訊端口號(hào) 。使用的每個(gè) MSComm 控件都與一個(gè)串口對(duì)應(yīng)。 OnComm 也可以捕獲和處理通信中的錯(cuò)誤。MSComm控件提供了兩種處理通信的方法: 1. 事件驅(qū)動(dòng)通信,是一種功能很強(qiáng)的 處理串口活動(dòng)的方法。這樣就將類 CMSComm 的相關(guān)文件 和 一并加入到了工程中。在基于對(duì)話框的應(yīng)用中加入一個(gè) MSComm控件非常簡(jiǎn)單。 VC 基于 C, C++語(yǔ)言,主要由是 MFC 組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語(yǔ)言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎可說(shuō) VC 在 Windows 平臺(tái)無(wú)所不能。 Windows 下編程需要了解 Windows 的消息機(jī)制以及回調(diào) (callback)函數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1