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

正文內容

基于gdi的公交查詢系統(tǒng)(編輯修改稿)

2025-07-24 17:53 本頁面
 

【文章內容簡介】 的合理設計,能有效的提高運行效率和降低系統(tǒng)的復雜度,易于系統(tǒng)的更新和移植?,F有系統(tǒng)幾乎不能兼顧算法與交互的優(yōu)化,包括對城市公交線路的站點信息和各站點的文本信息以及比例尺等分類數據模型的實現,有利于圖形的人際交互顯示,也是需要探究的。(6)每條公交線路的形狀走向均不同,因為有的公交線路曲折度非常的大,而有些下怒轉彎處是呈現圓弧的形狀。主要措施是在轉折點盡可能的多設置一些坐標,使圓弧更加精確。 本章小結 本章節(jié)主要是對系統(tǒng)開發(fā)的環(huán)境加以說明,對開發(fā)工具Visual C++做出了一個簡單的介紹。本章節(jié)主要是對系統(tǒng)的總體設計進行了一個詳細的說明,設計系統(tǒng)主要功能,并做了描述。根據功能設計,進行了總體設計,提出了設計思路和功能框圖,進一步明確了本設計的主要目的,以解決現有的一些公交查詢系統(tǒng)的系統(tǒng)結構復雜、占用資源、站點位置不精確、成本高等的幾點不足。3 公交線路位置數據的獲取 數據庫的建立 數據庫的創(chuàng)建結構從傳統(tǒng)的地圖學,直至今日的地理信息系統(tǒng),如何用一個有效的方法來表示各種地表空間的現象,仍是一個研究的重點。地理信息系統(tǒng)采用數值化的方法來進行處理。必須要有一個方式加以標定才行。屬性:這個地理資料是什么東西?地理資料除了空間資料以外,還有與其位置無關的非空間資料,稱其為屬性資料。例如:這個節(jié)點是公路拐點?還是公交車站?彼此之間的關系如何?例如,道路網中,各段道路相接的情形、各公車路線的途徑等等。為了能夠在城區(qū)地圖上顯示公交站點的位置和路線,需要用到三個表,分別是公交車站位置表,公交車站線路表和臨近車站距離表。公交車站位置表用來記錄車站名和車站位置坐標;公交車站線路表用來記錄線路名和其包含的車站名;臨近車站距離表記錄臨近的兩個車站的名稱和它們之間的距離。系統(tǒng)管理者首先需要獲取某條公交線路相對于地圖坐標的位置信息。采用的方法是:將城市的城區(qū)地圖作為背景圖,按照公交線路的走向,采用鼠標點取的方法,轉化成車站的位置信息。將線路名稱和車站名稱寫入公交車站線路表中,并且判斷該車站是否在公交車站位置表中,如果已經存在,則不進行處理;如果不在表中,則將車站名和位置寫入公交車站位置表中,接著點取下一點,將前后兩個車站連成一段線路。待獲取到該線路中所有車站的位置信息后,判斷該公交線路中所有相鄰的兩個車站是否在臨近車站距離表中,如果已經存在于表中,則不進行處理;如果不在表中,則計算地圖上兩點間的距離。然后寫入臨近車站距離表中。下面列出本系統(tǒng)的數據表結構:(1)節(jié)點表()用于存儲地圖上各個節(jié)點的坐標 節(jié)點表字段名數據類型長度說明NodeNo字符型5節(jié)點編號Gx整數型2節(jié)點的x坐標Gy整數型2節(jié)點的y坐標Lcode字符型1區(qū)域編號Skind字符型1站點類別Tkind字符型2再分類別(2)臨近車站距離表 距離表字段名數據類型長度說明Rcode字符型1區(qū)域編號Tx整數型2區(qū)域左上角x坐標TrX整數型2區(qū)域左上角x坐標BX整數型2區(qū)域左上角x坐標BrX整數型2區(qū)域左上角x坐標TY整數型2區(qū)域左上角y坐標TrY整數型2區(qū)域左上角y坐標BY整數型2區(qū)域左上角y坐標BrY整數型2區(qū)域左上角y坐標(3)公交車站線路表用于存儲各路公車所經過的車站 線路表字段名數據類型長度說明StopNo字符型5公車站點編號BusNo字符型5公車線路編號NextStop字符型5下一站編號Length浮點型長度Node 1字符型5經過的節(jié)點1Node 2字符型5經過的節(jié)點2Node 3字符型5經過的節(jié)點3Node 4字符型5經過的節(jié)點4Node 5字符型5經過的節(jié)點5Node 6字符型5經過的節(jié)點6Node 7字符型5經過的節(jié)點7Node 8字符型5經過的節(jié)點8Node 9字符型5經過的節(jié)點9Node 10字符型5經過的節(jié)點10 數據庫的更新與維護為了更清楚地說明本算法,以繪制100條公交線路為例。首先,在地圖上獲取第一個公交站點位置,將線路名稱和車站名寫入到公交車站線路表中判斷該站點是否已經存在于公交車站位置表中,如果不在表中則將該車站位置信息寫入位置表,如果已經存在于表中,則不進行處理。接下來點取下一點,將它與之前一點連成一條線段,以此類推,直到繪制出整條線路,最后判斷該公交線路中所有相鄰的兩個車站是否在臨近車站距離表中,如果已經存在于表中,則不進行處理;如果不在表中,則計算地圖上兩點間的距離,然后寫入臨近車站距離表中。但是,在實地考察的過程中,發(fā)現公交網絡具有以下一些特點:(1)由于公交車只能在行駛線路上的相應站點停靠,因此,不同的公交線路,其行駛線路在空間上可能有重疊,但??空军c不可能完全重疊。實際上,公交乘客在換乘時,通常要步行一段距離才能到達另外一條公交線路的站點,達到換乘的目的。因此,在進行公交網絡建模時,要把空間上相近的不同線路上的站點,合理抽象成公交地圖上的相關節(jié)點,來模擬不同公交線路之間的換車情況。(2)通常一條公交線路有兩個行駛方向,當兩個方向的行使線路重合時,網路圖上的節(jié)點在兩個方向上各有一條出邊和入邊;當兩個方向的行駛線路不重合時,網路圖上的節(jié)點在每個方向上只有一條出邊或入邊。例如“環(huán)路”公交車,由于它的行駛軌跡是一個圓圈,所以在這個圓圈上的每個節(jié)點只有一條出邊或入邊。但是,通過對北京市公交線路統(tǒng)計發(fā)現,大多數公交線路的兩個行駛方向是重合的,只有個別線路是大部分重合的,導致這種大部分重合現象的原因是某些道路是單行道,而唯一例外的是環(huán)路,它是完全不重合的,同理,可以推斷其它城市的情況大體是相同的。所以,在開發(fā)本系統(tǒng)的過程中,首先約定對于在空間上位置相近且不足一站的車站采用同一個站名;其次,從算法時間復雜性角度考慮,除環(huán)路保存它的所有站點信息外,其它線路只保存它的單方向行駛過程中所經過的站點信息。所以本課題并沒有用以往傳統(tǒng)的方法建立數據庫,而是采用了調用速度更快、修改更便捷的配置文件來存儲數據信息。不論是對于程序開發(fā)人員還是軟件應用人員,一定不會對擴展名為“ini”的文件感到陌生,、并根據記錄內容對系統(tǒng)進行配置的一種便捷的方法,而且眾多的應用軟件也廣泛地使用該類型的配置文件來對軟件進行記錄、配置。本章節(jié)就針對配置文件的使用展開討論,期望能為軟件狀態(tài)的記錄與設置尋求一種方便簡潔的實現方法。配置文件是Windows操作系統(tǒng)下的一種特殊化的ASCII文件,以“ini”為文件擴展名 ,該文件也被稱作是初始化文件(initialization file)和概要文件(profile),通常應用程序可以擁有自己的配置文件來存儲自己的狀態(tài)信息,一般來說私有的配置文件比較小,可以減少程序在初始化時讀取配置文件時的信息量,從而可以提高程序的啟動速度、提高應用程序和系統(tǒng)的性能。,并在訪問的同時發(fā)出消息WM_WININICHANGE給所有的頂層窗口,通知其他的程序系統(tǒng)的配置文件已做了更改。,也存儲著許多其他應用軟件的一些配置數據,所以訪問的數據量要遠比私有的配置文件大的多。配置文件里的信息之所以能為系統(tǒng)和眾多的軟件所讀取并識別,是由于其內部對數據的存取采用了預先約定好的“項值對(entryvalue pairs)”存儲結構來對待存取的數據進行分門別類地進行條理清晰的存儲。:Nullport=NoneWallpaperStyle=2Pattern=“無”S2359=PMiCountry=86可見,配置文件把信息分成若干個“節(jié)”,節(jié)標題放在方括號中,如Desktop就是Desktop節(jié),在一個節(jié)內包含了一些與之相關相近的“項”,并通過等號對其進行賦值。一般的形式如下所示:[SECTION]ENTRY=VALUE其中VALUE值可以有兩種類型:數值型和字符串型,而且Windows操作系統(tǒng)專門為此提供了6個API函數來對配置設置文件進行讀、寫;GetPrivateProfileInt()//從私有初始化文件獲取整形數值GetPrivateProfileString()//從私有初始化文件獲取字符串型值GetProfileInt//GetProfileString//WritePrivateProfileString//WriteProfileString//在這里需要指出的是,當向配置文件存儲信息時,不論是數據還是字符串都要先轉換成字符串,然后再存儲。公交站牌查詢(鑒于線路過多,舉五條線路為例子)212roadRect=364,673,1324,1651214roadRect=743,567,1530,1923231roadRect=134,190,1680,1260242roadRect=273,160,1411,1058168roadRect=1134,1390,3680,3260MainFrm_Title_Text_Face=“宋體”MainFrm_Title_Text_Height=12MainFrm_Title_Text_Weight=14FontName=“宋體”FontHeight=12FontHeight2=14MapImg=Test=//所有的公交線路allStation=212,214,231,168212roadtime=“早上發(fā)車06:00,晚上收車23:10,起始站到終點站用時1小時”214roadtime=“早上發(fā)車06:30,晚上收車22:30,起始站到終點站用時1小時25分鐘”231roadtime=“早上發(fā)車06:00,晚上收車23:00,起始站到終點站用時1小時05分鐘”168roadtime=“早上發(fā)車06:40,晚上收車22:00,起始站到終點站用時1小時”242roadtime=“早上發(fā)車06:20,晚上收車23:15,起始站到終點站用時1小時45分鐘” 公交位置的確定 站點位置確定的方法本文所討論的地圖是一張經掃描儀獲得的位圖??刹捎煤笈_處理和前臺顯示的方式進行,圖像信息一般存放在外部文件,因此首先需要把外部文件數據存儲到數據庫,圖像與文本信息不同,不能直接存儲到數據庫中,但可以通過大二進制變量進行中間轉換,最后存入數據庫。位圖數據的第一掃描行的數據對應顯示或打印出的圖像的最后一行掃描,建立位圖類Cdib:define HDIB HBITMAPclass Cdib:public CObject{public: //獲取位圖信息函數 LPBYTE GetDIBBitsPtr()。 //獲取位圖數據地址 LPBFEMAPINFO GetDIBInfoHeaderRr()。 //獲取位圖信息頭地址 long GetDIBHeigth()。 //獲取位圖高度(像素單位) long GetDIBWidth()。 //獲取位圖寬度(像素單位)public: //處理函數 void Display(CDC*Pdc)。 //顯示位圖 bool Save(LPCSTR destFile)。 //保存處理后的位圖public: //構造函數與析構函數 CDib()。 CDib(LPCSTR filename)。 Virtual CDib()。protected: //數據成員 LPBITMAPFILEHEADER m_pBmFileHeader。 //位圖文件頭 LPBITMAPINFO m_pBmInfo。 //位圖信息結構 LPBITMAPINFOHEADER m_pBmInfoHeader。 //位圖信息頭 LPBYTE m_pDibBits。 //位圖數據地址 long m_1Width。 //位圖寬度 long m_1Height。 //位圖高度 DINT m_numColors。 //位圖使用顏色數 HDIB m_hDib, //位圖句柄protected: void OpenDIBFile(LPCSTR fileName)。 //打開位圖文件,獲取位圖信息};類CDiI中提供了位圖信息和最基本的API(如OpenDIBFile,Save,Display)。 實現過程開發(fā)語言生成源代碼定義如下:(1)點幾何對象Struct GEO {double x,y。} Struct TArrowBase {TArrowBase*Prev。TArrowBase*Next。}Struct TPointBase:public TArrowBase{GEO Pos。}(2)線幾何對象 Struct TPline {TPline*Prev。 TPline*Next。 GEO Pos。 }。 Struct TALLPline {String PlineName。 String LineType。 Long Tcolor。Int Twidth,TnPoint。 Int RoadH,RoadV,RsH,RsV:Double Maxxx,Maxyy,Minxx,Minyy。Tpline*Pline:TALLPline*Next。}。 公交線路數據的讀取在系統(tǒng)運行過程中,公交站點的數據讀取源程序如下:ImageFile=new TFileStream(,)。 { If(!) ()。 //ImageTable為含有BLOB字段的數據表名
點擊復制文檔內容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1