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

正文內(nèi)容

環(huán)境潔凈度實(shí)時(shí)監(jiān)測系統(tǒng)畢業(yè)設(shè)計(jì)論文說明書畢業(yè)論文-預(yù)覽頁

2025-07-13 13:18 上一頁面

下一頁面
 

【正文】 的數(shù)據(jù)數(shù)據(jù)庫將數(shù)據(jù)存入數(shù)據(jù)庫從數(shù)據(jù)庫讀出數(shù)據(jù)用將戶還界原面好上的顯數(shù)示據(jù) 在 圖 模塊劃分 模塊功能描述上一小節(jié)概括介紹了系統(tǒng)的各個(gè)模塊,下面就詳細(xì)介紹每個(gè)模塊的功能: 用戶界面模塊:主要負(fù)責(zé)計(jì)算機(jī)與用戶之間的交互操作 串口通訊模塊:主要實(shí)現(xiàn)計(jì)算機(jī)通過 RS232 串口與計(jì)數(shù)器之間的通信,包括指令的發(fā)送與數(shù)據(jù)的接收 后臺處理模塊負(fù)責(zé)將從串口接收過來的數(shù)據(jù)進(jìn)行分割、還原、顯示,還包括將有用的數(shù)據(jù)整合成統(tǒng)一格式存入數(shù)據(jù)庫以便日后查詢 數(shù)據(jù)庫模塊主要是負(fù)責(zé)存儲測試數(shù)據(jù),實(shí)現(xiàn)對以往測試數(shù)據(jù)的查詢、刪除等功能。這一章講述的是這套通信系統(tǒng)的詳細(xì)設(shè)計(jì)和具體實(shí)現(xiàn),包括了用戶界面的設(shè)計(jì)、通信格式的設(shè)計(jì)、文件格式的設(shè)計(jì)以及各個(gè)功能的實(shí)現(xiàn)。工具欄中四個(gè)工具按鈕按順序分別是“轉(zhuǎn)到數(shù)據(jù)庫第一條記錄”、“轉(zhuǎn)到數(shù)據(jù)庫上一條記錄”、“轉(zhuǎn)到數(shù)據(jù)庫下一條記錄”、“轉(zhuǎn)到數(shù)據(jù)庫最后一條記錄”。單條數(shù)據(jù)庫記錄查看操作區(qū)可以逐條查詢數(shù)據(jù)庫里的記錄,并可以對其進(jìn)行刪除操作。此快捷菜單可以在主界面中的任何區(qū)域右擊自動(dòng)彈出。 精確查詢對話框圖 精確查詢對話框如圖 ,該對話框在點(diǎn)擊“精確查詢”按鈕后彈出,用戶可以通過下拉列表框選擇想要查詢的記錄的時(shí)間,點(diǎn)擊確定按鈕后得到查詢結(jié)果。 打印圖 打印如圖 ,該對話框在點(diǎn)擊“打印”按鈕后彈出,可以將主界面下方的數(shù)據(jù)記錄列表顯示的內(nèi)容打印出來,單擊“確定”按鈕后,連接在計(jì)算機(jī)上的打印機(jī)會自動(dòng)打印。 系統(tǒng)實(shí)現(xiàn) 程序結(jié)構(gòu)客戶端程序采用了應(yīng)用程序 MFC 框架,包括一個(gè)框架類 CMainFrame,,一個(gè)應(yīng)用程序類 CSKApp ,一個(gè)文檔類 CSKDoc ,一個(gè)視圖類 CSKView,一個(gè)控件類 CMSComm 和五個(gè)對話框類,它們分別是 CAboutDlg 主界面對話框、JingQueChaXun 精確查詢對話框、MoHuChaZhao 模糊查找、SJSC 數(shù)據(jù)上傳、ZhouQi 周期設(shè)定。它提供了一系列標(biāo)準(zhǔn)通信命令的使用接口,利用它可以建立與串口的連接,并可以通過串口連接到其他通信設(shè)備(如調(diào)制解調(diào)器),發(fā)出命令,交換數(shù)據(jù)以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯(cuò)誤。//選擇 COM1 端口(9600,n,8,1)。//設(shè)置輸出緩沖區(qū)大小(9600,n,8,1)。//設(shè)置當(dāng)前接收區(qū)數(shù)據(jù)長度為 0()。LONG len,k。//讀取緩沖區(qū)safearray_inp=variant_inp。k++)(amp。k++)//將數(shù)組轉(zhuǎn)化為 Cstring 型變量{BYTE bt=*(char*)(rxdata+k)。//更新編輯框這樣就完成了對串口的初始化和對接收串口數(shù)據(jù)的初始化。由于計(jì)數(shù)器不會主動(dòng)向計(jì)算機(jī)上傳實(shí)時(shí)監(jiān)測的數(shù)據(jù),所以就必須讓計(jì)算機(jī)主動(dòng)實(shí)時(shí)地發(fā)出指令讓計(jì)數(shù)器上傳實(shí)時(shí)監(jiān)測到的數(shù)據(jù)。你可以通過呼叫 SetTimer 函式為你的 Windows 程式分配一個(gè)計(jì)時(shí)器。//定義一個(gè)定時(shí)器 ,每 250 毫秒執(zhí)行 OnTimer()函數(shù)然后,再用 MFC ClassWizard 在視圖類 CSKView 里重載對應(yīng)于消息WM_TIMER 的函數(shù) OnTimer(UINT nIDEvent),在該函數(shù)里添加定時(shí)發(fā)送給計(jì)數(shù)器更新監(jiān)測數(shù)據(jù)指令的代碼,代碼如下:CString m_ShiShiShuaXing。m_strEditRXData=。二進(jìn)制十進(jìn)制字符串字符數(shù)組整型十進(jìn)制數(shù)字符串在界面上顯示格式轉(zhuǎn)化 放入字符數(shù)組截取相應(yīng)數(shù)據(jù)位根據(jù)相應(yīng)協(xié)議還原數(shù)據(jù)并轉(zhuǎn)換格式賦值給與動(dòng)態(tài)文本框相應(yīng)的變量 數(shù)據(jù)的還原過程 周期數(shù)據(jù)顯示設(shè)計(jì)所謂周期數(shù)據(jù)指的是計(jì)數(shù)器在連續(xù)監(jiān)測了一個(gè)周期后,將這個(gè)周期內(nèi)監(jiān)測到的所有塵埃粒子各個(gè)級別的總數(shù)上傳至計(jì)算機(jī)并在客戶端顯示。 功能鍵設(shè)計(jì)功能鍵按照其功能主要分為三類,分別是負(fù)責(zé)與計(jì)數(shù)器通信的功能鍵,負(fù)責(zé)操作數(shù)據(jù)庫的功能鍵和負(fù)責(zé)系統(tǒng)其他功能的功能鍵。//用于確定輸入的周期字符串長度 CString strm。//彈出設(shè)定周期的對話框 if(result==IDOK){strm=。//發(fā)送設(shè)定周期的指令}if(2==len){str=C0+strm。//發(fā)送設(shè)定周期的指令}m_shujukuzhouqi=。在這個(gè)循環(huán)里,對每一個(gè)主記錄進(jìn)行數(shù)據(jù)還原,并將這些還原出來的數(shù)據(jù)存入數(shù)據(jù)庫內(nèi),再從數(shù)據(jù)庫里讀出這些數(shù)據(jù)顯示在主界面下的列表框控件里,供用戶查看或打印。因此,應(yīng)移動(dòng)記錄到記錄集的最后一條記錄,以取得該記錄的 ID 值,并將此值增1。編輯該函數(shù),并加入如下的代碼: long CSKSet::GetMaxID(){MoveLast()。編輯該函數(shù),主要代碼如下: void CSKView::OnButtonBaocenzqsj() {m_pSetm_ammount=m_pSetGetMaxID()+1。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_20um=m_20mm。//保存大于 的塵埃粒子的數(shù)量 m_pSetm_zhouqi=m_shujukuzhouqi+秒。 //獲得當(dāng)前時(shí)間 CString strMsgtime。//刷新記錄集 m_pSetRequery()。//關(guān)閉數(shù)據(jù)庫 m_pSetOpen()。 (0,1,m_pSet m_zhouqi)。 (0,5,m_pSet m_20um)。}m_pSetMoveLast()。//重新開啟數(shù)據(jù)庫m_pSetMoveFirst()。//調(diào)用 show()函數(shù),在列表框控件里顯示數(shù)據(jù)庫記錄m_pSetMoveFirst()。此后,只要系統(tǒng)一接收到周期數(shù)據(jù)就自動(dòng)調(diào)用OnButtonBaocenzqsj()函數(shù),將周期數(shù)據(jù)存入數(shù)據(jù)庫。這個(gè)功能要求用戶明確給出所要查詢記錄的日期和時(shí)間。當(dāng)用戶按下確定按鈕后,系統(tǒng)根據(jù)用戶輸入的時(shí)間,在數(shù)據(jù)庫內(nèi)對所有記錄的“time”字段進(jìn)行查詢。if(result==IDOK)//當(dāng)單擊下“確定”按鈕后{str1=str1+=39。//關(guān)閉數(shù)據(jù)庫m_pSetm_strFilter=str1。//彈出提 示 框 “沒 有 匹 配 的 記 錄 !”m_pSetClose()。//在主界面下方的列表框控件中顯示出來}}m_pSetMoveFirst()。其次,用一個(gè) while 循環(huán),將數(shù)據(jù)庫內(nèi)每一條記錄的“time”字段中的年、月、日字符串分別提出來并轉(zhuǎn)換成整型,與用戶輸入的條件比較,如果符合用戶要求,剛在主界面下方的列表框顯示,如果不符合剛丟棄。主要代碼為:ShellExecute(NULL,NULL,(2) 最小化和版本號主要是系統(tǒng)自帶的,只要將相關(guān)參數(shù)進(jìn)行適當(dāng)?shù)男薷木涂梢粤恕?系統(tǒng)的發(fā)布系統(tǒng)的封裝包括應(yīng)用程序的封閉和安裝包的封裝。(2) 在 編譯環(huán)境里打開系統(tǒng),點(diǎn)擊“工具 ”——“InstallShield Wizard”,如圖 打包工具,進(jìn)入打包軟件的歡迎界面。圖 歡迎界面(4) 完成上述操作的進(jìn)入封閉設(shè)置界面。圖 選擇存儲目錄(5) 點(diǎn)擊菜單“Build” ——“Run Setup”進(jìn)入打包介面。封閉步驟如下:(1) 安裝好 Install Shield 后啟動(dòng),進(jìn)入軟件后點(diǎn)擊“File” ——“New”,瀏覽 Local 到要想保存最終生成文件的路徑,點(diǎn)擊“OK”按鈕后進(jìn)入打包向?qū)?。圖 添加庫 小結(jié)本章完整地描述了這套系統(tǒng)的實(shí)現(xiàn),從用戶界面的設(shè)計(jì)、通信格式的設(shè)計(jì)、數(shù)據(jù)庫的設(shè)計(jì)到各個(gè)功能的實(shí)現(xiàn)及其編碼都進(jìn)行了詳細(xì)的描述。數(shù)據(jù)庫單條記錄顯示正常,說明讀數(shù)據(jù)庫正常??? 結(jié)通過這次畢業(yè)設(shè)計(jì),我復(fù)習(xí)鞏固了以前的相關(guān)知識,同時(shí)也學(xué)到了很多新的東西,包括知識、解決問題的方法以及人與人之間的交流等等。在這之前,我對串口通信一無所知,無疑,這對我來說是個(gè)挑戰(zhàn)。每一塊都是一個(gè)難啃的骨頭,因?yàn)闀辖榻B的甚少(這方面的中文書本來就很少),也較抽象,不容易讀懂,完全靠自己去網(wǎng)上搜索,逛論壇等,這其中效果最好的莫過于 群了,每提一個(gè)問題都會有些高手給你解答或者會給你一些提示,你可以根據(jù)這些提示在網(wǎng)上找到相應(yīng)的答案。致 謝首先非常感謝學(xué)校給了我這次鍛煉的機(jī)會,使得我在軟件設(shè)計(jì)的能力上有了很大的提高,同時(shí)增強(qiáng)了我的實(shí)踐能力。沒有他的實(shí)際幫助,我的畢業(yè)設(shè)計(jì)會變得更加艱難,在此非常感謝他的幫助。雖然常用于存儲文本,但是也可以存儲二進(jìn)制數(shù)據(jù),甚至存儲串行化的復(fù)合對象,因?yàn)樗麄儾⒉灰蕾囉诹憬K止(zero termination)。? 廣泛和標(biāo)注的 API,用于數(shù)據(jù)和文本管理。和前面一樣,下面并不是完整的 API 描述,但它包含了可能最常用的一些API:? MaxLength():可以存儲在表示符中的最大數(shù)據(jù)項(xiàng)數(shù)量。注意:這些函數(shù)不會數(shù)據(jù)緩沖器。如果追加的數(shù)據(jù)造成超出最大長度,則會產(chǎn)生嚴(yán)重錯(cuò)誤。? Format():以一種類似于(但是并不等同于)sprintf 的方式格式化表示符,假設(shè)一個(gè)表示符指定了一個(gè)格式字符串,然后指定了適當(dāng)數(shù)量的參數(shù)。從 8 位表示符中復(fù)制數(shù)據(jù)到 16 位表示符中,結(jié)果將產(chǎn)生額外的填充字節(jié)從 ASCII 轉(zhuǎn)換到 Unicode;反之亦然,不過將大于 255 的Unicode 值轉(zhuǎn)換為 1。對于一個(gè) 16 位( Unicode)的表示符,它的大小將是該長度的兩倍;對于 8 位的表示符,它的大小和該長度相同。? AllocL():執(zhí)行相同的任務(wù),但是在分配失敗時(shí)以 KErrNoMemory 異常退出。? Left()、Mid()和 Right():標(biāo)準(zhǔn)的字符串分割函數(shù),該函數(shù)返回一個(gè)表示符相關(guān)的子字符串的 TPtr 指針。注意,這種搜索總是從表示符的開始處開始,使用 Right()獲得表示符的剩余部分,然后根據(jù)需要重復(fù)查找更多出現(xiàn)該內(nèi)容的位置。? operator=():令人驚奇的是,賦值運(yùn)算符可以用于本來不可修改的表示符。4 文字雖然并不是表示符 API 中嚴(yán)格要求的部分,但字符串文字是學(xué)習(xí)如何使用表示符時(shí)的有用工具。和表示符一樣,TLitC8 和 TLitC16 可作為顯式指定大小的替換方式來使用。文字實(shí)際上并不是表示符自身,理解這一點(diǎn)很重要。() const(以及它的 8 位等價(jià)形式),該表達(dá)式針對文字而定義。例如,在下面的代碼中,必須知道文字 KTxtLineDelimiter 的長度。KTxtMyStringLiteral。5 使用表示符前面已經(jīng)介紹了用于表示符的常見 API;這一節(jié)將介紹實(shí)際的示例以說明表示符的使用,同時(shí)幫助理解使用表示符所使用的基本技巧。元素的名稱可以相對較大——元素 Rutherfordium 的名稱最長,為 13 個(gè)字符,等于 26 個(gè)字節(jié)(記住,這是Unicode 系統(tǒng))。可以通過許多方法構(gòu)造 HBufC:最簡單的方法是使用 HBufC::New()、HBufC::NewL()或者 HBufC::NewLC(),如下面的示例所示,它將創(chuàng)建長度為elementBuf8 的新 HBufC:HBufC* elementBuf16 = HBufC::NewLC(())。如果分配失敗,則 New()返回 NULL。CChemicalElement::ConstructL()是私有函數(shù),因此不存在多次調(diào)用該函數(shù)的危險(xiǎn)(從而不一定需要?jiǎng)h除并賦值為 NULL)。因?yàn)檫@個(gè)指針有一個(gè)可以修改的 API,然后就可以,然后就可以修改 HBufC 擁有的數(shù)據(jù)。這個(gè)代碼段用于將窄 ASCII 表示符(8 位)中的數(shù)據(jù)復(fù)制到一個(gè) Unicode HBufC 中。特定的 TDes16 Copy()重載函數(shù)帶有一個(gè) TDes8,通過添加零值填充將它從 8 位轉(zhuǎn)換為 16 位,從而可以有效地將 ASCII 轉(zhuǎn)換為 Unicode。HBufC 指針 elementBuf16 必須本身被刪除。這意味著什么呢?基本上來說,它是在堆上構(gòu)造一個(gè)新的 HBufC。這就提出了一個(gè)難以解決的潛在問題。CleanupStack::Push(variableBuf)。但是由于上一個(gè) ReAllocL 步驟已經(jīng)刪除了這個(gè)指針,從而造成災(zāi)難性的重復(fù)刪除。下面一段代碼演示如何聲明一個(gè) TBufC 以保存 3 個(gè)字符:const TInt KMaxSymbolLength = 3。void CElementsEngine::NotifyElementLoaded( TInt aNewElementIndex){ // 以 KTxtLoaded 開始 TBufKMaxFeedbackLen loadedFeedbackString(KTxtLoaded)。 }首先,使用_LIT 宏定義文字 KTxtLoaded。在本示例中,構(gòu)造最大大小為 KMaxFeedbackLen 的 TBuf,然后使用字符串“Loaded”進(jìn)行初始化。同樣,隱式強(qiáng)制類型轉(zhuǎn)換意味著可以作為參數(shù)傳遞字符串文字。6 層次結(jié)構(gòu)圖 1 描述了 9 個(gè)主要描述符類的派生結(jié)構(gòu)。通過在名稱后面制定 8 或 16 可以顯式定義這些描述符的大小,例如,TDesC8 或 TDesC16。)TBufCBase 不可以無 很少使用的中間類。帶有模版化的大小。大小、最大大小和數(shù)據(jù)緩沖器
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1