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

正文內(nèi)容

激光導(dǎo)航運(yùn)載機(jī)器人運(yùn)行環(huán)境和引導(dǎo)(編輯修改稿)

2025-06-24 00:23 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 錯(cuò)誤,提高了軟件的可維護(hù)性。 結(jié)構(gòu)設(shè)計(jì)在本小結(jié)中,我們將根據(jù)需求分析中提出的要求定義本系統(tǒng)所用到的數(shù)據(jù)結(jié)構(gòu),以及本系統(tǒng)的軟件結(jié)構(gòu)。 系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)在需求分析中,我們已經(jīng)給出了場(chǎng)景(場(chǎng)地)、反射板、路徑數(shù)據(jù)結(jié)構(gòu)的形式化定義,這里將給出使用類VB語言的定義:Private Type 場(chǎng)景 gNo As Integer xo As Single yo As Single Length As Single Width As Single End TypePrivate Type反射板 bNo As Integer X As Single Y As SingleEnd TypePrivate Type 路徑 iNo As Integer eType As Integer x1 As Single y1 As Single x2 As Single y2 As Single xo As Single yo As Single r As Single k As Single b As SingleEnd Type同時(shí),當(dāng)數(shù)據(jù)保存到文件中去的時(shí)候,場(chǎng)景(場(chǎng)地)、反射板、路徑數(shù)據(jù)采用分為三個(gè)文件獨(dú)立保存的方法。然而,由于只有當(dāng)一個(gè)軌跡工程的場(chǎng)景、反射板、路徑數(shù)據(jù)文件都存在并讀入系統(tǒng)后,這個(gè)工程才是完整的。顯然,要求用戶選擇要讀入的文件是不合時(shí)宜的,這不僅增加了用戶讀入選擇的次數(shù)而且使得系統(tǒng)的危險(xiǎn)性和不可靠性增加。因此,設(shè)計(jì)一個(gè)工程文件來存放一個(gè)軌跡工程的場(chǎng)景、反射板、路徑數(shù)據(jù)文件的名稱,用打開這個(gè)工程文件來讀取所有的數(shù)據(jù)變得非常必要。同時(shí),工程文件中還能夠保存一些附加的內(nèi)容,比如工程的名稱,創(chuàng)建人是誰等等。其實(shí),工程文件的身影隨處可見。就拿VB開發(fā)的源程序項(xiàng)目來講,其就是由一個(gè)工程文件vbp和數(shù)個(gè)窗口frm,類cls、模塊mdl等文件構(gòu)成,通過打開某個(gè)vbp文件,就打開了這個(gè)程序項(xiàng)目的所有文件。又如VC開發(fā)源程序項(xiàng)目,也是通過工程文件dsw/、.h、.res構(gòu)成的。參照這些工程文件的格式,我們這里采用Windows INI文件格式。INI文件讀寫方便,帶有一定的結(jié)構(gòu)特性,是非常適合做數(shù)據(jù)記錄的文件形式。這里我們將軌跡工程的數(shù)據(jù)結(jié)構(gòu)定義如下: sProjName As String 39。 工程名 sUserName As String 39。 建立工程的人員名稱 sDetial As String 39。 工程描述 sLCFName As String 39。 保存路徑的文件名 sBBFName As String 39。 保存反射板的文件名 sGDFName As String 39。 保存場(chǎng)地的文件名 系統(tǒng)的軟件結(jié)構(gòu)(層次圖)分析軟件的結(jié)構(gòu)可以使程序結(jié)構(gòu)清晰,提高模塊化程度,是編寫有較高模塊獨(dú)立性的程序的基礎(chǔ)。同時(shí),在分析軟件結(jié)構(gòu)的過程,還可以獲得對(duì)象的模型及其層次。1.軟件結(jié)構(gòu)圖AGV運(yùn)行環(huán)境和引導(dǎo)環(huán)境的輸入軟件繪制場(chǎng)地直線圓弧反射板添加編輯報(bào)表打印工具連接性檢查路徑探尋(圖論)重新編號(hào)系統(tǒng)設(shè)置刪除文件操作創(chuàng)建打開保存導(dǎo)入導(dǎo)出文件幫助實(shí)時(shí)幫助幫助文件2.類的劃分 由軟件的層次結(jié)構(gòu)圖,我們可以通過分析分化功能,得出以下類。專用類有關(guān)于繪制系統(tǒng)的類,如場(chǎng)地類、直線類、圓弧類、反射板類。這些類要能夠保存相應(yīng)的數(shù)據(jù),添加、編輯、刪除信息,以及完成讀寫。保存工程的類,完成工程信息的讀寫。保存軟件系統(tǒng)的設(shè)置和狀態(tài),并能夠?qū)⑵浔4嫫饋怼W鴺?biāo)轉(zhuǎn)換,提供窗口坐標(biāo)和物理坐標(biāo)的互換。通用類完成文件的讀寫的類。完成INI文件的讀寫。能夠提供Windows信息的一些類。本章小結(jié)通過對(duì)軟件系統(tǒng)的結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)的分析,我們基本獲得了編寫軟件的信息,為后面的詳細(xì)設(shè)計(jì)和系統(tǒng)地實(shí)現(xiàn)打下了良好的基礎(chǔ)。第四章 系統(tǒng)的實(shí)施 系統(tǒng)的實(shí)施是一個(gè)軟件系統(tǒng)具體的實(shí)現(xiàn)階段,這里將詳細(xì)介紹本系統(tǒng)是如何構(gòu)成的。本軟件系統(tǒng)采用基于類的構(gòu)造方法進(jìn)行建立,所有的關(guān)鍵算法到處在類模塊中,做到系統(tǒng)中類處于核心狀態(tài),窗口只能通過調(diào)用類的方法控制它的行為到達(dá)到所需要的功能。本章將按照“類—模塊—窗口”的從核心代碼到外延代碼的順序介紹本軟件系統(tǒng)的構(gòu)成,從中說明為什么要采用模塊化設(shè)計(jì)和面向?qū)ο蠓椒ㄟM(jìn)行軟件設(shè)計(jì)的原因。 系統(tǒng)的實(shí)現(xiàn)在VB開發(fā)系統(tǒng)中,代碼可以處于三個(gè)部分:窗口,模塊,類模塊。窗口中的代碼主要的實(shí)現(xiàn)窗口上的事件響應(yīng);模塊中的代碼主要用來定義聲明一些全局的變量和函數(shù);類模塊則是定義類的地方了。1. VB中的類在VB中類被稱作“類模塊”。雖然VB也可以使用類,但它的類與C/C++中的類有著很大的不同。首先,VB并沒有完全支持類,它僅僅提供了對(duì)類“封裝性”的支持,無法完成“繼承性”,因此在很多媒體中都將VB稱作“基于對(duì)象”的程序開發(fā)語言。其次,VB對(duì)類中的成員函數(shù)分為三類:方法:即普通的函數(shù);屬性:一種特殊的函數(shù),既可作為右值也可以作為左值;事件:由操作系統(tǒng)在特定條件下調(diào)用的函數(shù)。再次,VB中類的構(gòu)造函數(shù)不可帶參數(shù),也不可以重載。因此在使用VB編寫類時(shí),要特別注意它的限制和特點(diǎn)。2. 本系統(tǒng)使用到21個(gè)類,其中9個(gè)類為本軟件專用,而其余的是通用類模塊。專用類CtheApp記錄和保存了程序的設(shè)置和狀態(tài)CFY_BaffleBoard保存反射板信息并繪制CFY_Circles保存圓弧信息并繪制CFY_DrawItemDatas保存線段信息并繪制CFY_Grid繪制網(wǎng)格并計(jì)算網(wǎng)格信息CFY_Ground保存場(chǎng)地信息并繪制CFY_Lines保存直線信息并繪制CFY_Project保存工程文件的信息CFY_ViewTransform通用類CCommandLine處理命令行CCommonDlgCtl用API實(shí)現(xiàn)通用對(duì)話框CCircle圓弧類CFile判斷文件存在、獲得文件名等CGraph有關(guān)圖論CIniFile操作INI類型的文件Clines直線類CMRUs處理“已經(jīng)打開的文件”CPAutoConnect端點(diǎn)捕捉CPoints點(diǎn)CRect矩形CSystemWindows系統(tǒng)信息它們之間的關(guān)系是:(A→B表示B調(diào)用A;帶有下劃線的類本系統(tǒng)直接調(diào)用)CtheAppCFY_BaffleBoard eBoardCFY_CirclesCFY_DrawItemDatasCFY_GridCFY_GroundCFY_LinesCFY_ProjectCCircleCFY_ViewTransformCFileCIniFileClinesCPointsCRectCCommonDlgCtlCCommandLineCGraphCMRUsCPAutoConnectCSystem類關(guān)系圖3. 下面將按照“類關(guān)系圖”中的順序介紹各類的功能,并在必要的部分介紹實(shí)現(xiàn)的算法。l CPoint類提供了關(guān)于“點(diǎn)”的操作。方法:(1)Public Function GetLengthBetween2Points(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single) As Single目的:計(jì)算兩點(diǎn)間距;參數(shù):x1,y1點(diǎn)1的坐標(biāo),x2,y2點(diǎn)2的坐標(biāo);返回值:兩點(diǎn)間距。l CCircle類提供了關(guān)于圓弧的操作。屬性:(1) Public Property Get ValueofPI() As Single目的:返回PI值。l CRect類提供了有關(guān)矩形的操作方法:(1)Public Function InWorldRect(ByVal X As Single, ByVal Y As Single, ByVal Left As Single, ByVal Top As Single, ByVal Right As Single, ByVal Buttom As Single, Optional ByVal IsIncludeBound As Boolean = True) As Boolean 目的:判斷一個(gè)點(diǎn)是否在指定的矩形框內(nèi)(世界坐標(biāo)系,即原點(diǎn)向上作為y軸正向);參數(shù):x,y一個(gè)點(diǎn)的坐標(biāo);Left,Top,Right,Buttom指定了一個(gè)矩形框;isIncludeBound是否將當(dāng)一個(gè)點(diǎn)在矩形邊框上時(shí)也作為在矩形內(nèi)。返回值:在矩形內(nèi)部返回“真”,否則返回“假”。(2)Public Function InWinRect(ByVal X As Single, ByVal Y As Single, ByVal Left As Single, ByVal Top As Single, ByVal Right As Single, ByVal Buttom As Single, Optional ByVal IsIncludeBound As Boolean = True) As Boolean 目的:判斷一個(gè)點(diǎn)是否在指定的矩形框內(nèi)(窗口坐標(biāo)系,即原點(diǎn)向下作為y軸正向);參數(shù):x,y一個(gè)點(diǎn)的坐標(biāo);Left,Top,Right,Buttom指定了一個(gè)矩形框;isIncludeBound是否將當(dāng)一個(gè)點(diǎn)在矩形邊框上時(shí)也作為在矩形內(nèi)。返回值:在矩形內(nèi)部返回“真”,否則返回“假”。(3)Public Function InWinRect_lp(ByVal lpPointSingle As Long, ByVal lpRectSingle As Long) As Boolean39。這個(gè)函數(shù)使用指針操作,參數(shù)傳入時(shí)應(yīng)傳入地址 可用VarPtr()函數(shù)目的:同上;參數(shù):lpPointSingle一個(gè)點(diǎn)的坐標(biāo)結(jié)構(gòu)地址;lpRectSingle指定了一個(gè)矩形框機(jī)構(gòu)的地址;返回值:在矩形內(nèi)部返回“真”,否則返回“假”。注:有關(guān)如何在中VB使用指針,將在后面介紹。l CFY_ViewTransform類實(shí)現(xiàn)窗口坐標(biāo)和物理坐標(biāo)的互換。(有關(guān)概念請(qǐng)參見CFY_Grid類的說明)方法:(1)Public Sub World2Window(ByVal x1 As Single, ByVal y1 As Single, ByRef x2 As Integer, ByRef y2 As Integer, ByVal ox As Integer, ByVal oy As Integer, ByVal iGridWidth As Integer)目的:將一個(gè)世界坐標(biāo)系的坐標(biāo)轉(zhuǎn)換為窗口坐標(biāo)系;參數(shù):x1,y1世界坐標(biāo)系中的坐標(biāo)值,x2,y2窗口坐標(biāo)系的坐標(biāo)值,ox,oy世界坐標(biāo)系原點(diǎn)在窗口坐標(biāo)系中的坐標(biāo)值,iGridWidth在窗口坐標(biāo)系中,一個(gè)單位的世界坐標(biāo)值等于多少個(gè)窗口坐標(biāo)值,也可認(rèn)為是網(wǎng)格寬度。返回:轉(zhuǎn)換后的值將保存到x2,y2中。(2)Public Sub Window2World(ByVal x1 As Integer, ByVal y1 As Integer, ByRef x2 As Single, ByRef y2 As Single, ByVal ox As Integer, ByVal oy As Integer, ByVal iGridWidth As Integer)目的:將一個(gè)窗口坐標(biāo)系的坐標(biāo)轉(zhuǎn)換為世界坐標(biāo)系;參數(shù):x1,y1窗口坐標(biāo)系中的坐標(biāo)值,x2,y2世界坐標(biāo)系的坐標(biāo)值,ox,oy同上,iGridWidth同上。返回:轉(zhuǎn)換后的值將保存到x2,y2中。(3)Public Function LengthWorld2Window(ByVal orgLength As Single, ByVal iGridWidth As Integer) As Integer目的:將一個(gè)世界坐標(biāo)系的長(zhǎng)度轉(zhuǎn)換為窗口坐標(biāo)系的長(zhǎng)度;參數(shù):orgLength世界坐標(biāo)系中的長(zhǎng)度,iGridWidth同上;返回值:轉(zhuǎn)換后的長(zhǎng)度(4)Public Function LengthWindow2World(ByVal orgLength As Integer, ByVal iGridWidth As Integer) As Single目的:將一個(gè)窗口坐標(biāo)系的長(zhǎng)度轉(zhuǎn)換為世界坐標(biāo)系的長(zhǎng)度;參數(shù):orgLength窗口坐標(biāo)系中的長(zhǎng)度,iGridWidth同上;返回值:轉(zhuǎn)換后的長(zhǎng)度屬性:(1) Precision設(shè)置轉(zhuǎn)換精度。l CFile類提供了除了文件讀寫外的一些操作方法:(1)Public Function IsFileExist(ByVal sFileName As String) As Boolean目的:判斷一個(gè)文件是否存在;參數(shù):sFileName文件名;返回值:如果文件存在,返回“真”,否則返回“假”(2) Public Function GetExtendName(ByVal sFileName As String) As String目的:獲得一個(gè)文件擴(kuò)展名;參數(shù):sFileName
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1