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

正文內(nèi)容

計算機專業(yè)優(yōu)秀基于rfid門禁管理系統(tǒng)的設(shè)計(參考版)

2024-12-08 01:15本頁面
  

【正文】 運行結(jié)果程序運行后,首先進入登陸界面:圖 51 門禁管理系統(tǒng)登陸圖2021 屆本科生畢業(yè)設(shè)計37系統(tǒng)主界面:圖 52 門禁管理系統(tǒng)主界面圖2021 屆本科生畢業(yè)設(shè)計38進入主界后,首先必須連接讀卡器:圖 53 讀卡器設(shè)置圖修改用戶信息:圖 54 標簽信息修改圖2021 屆本科生畢業(yè)設(shè)計39查看考勤記錄:圖 55 考勤記錄查看圖幫助:圖 56 幫助圖2021 屆本科生畢業(yè)設(shè)計406 論文總結(jié)利用 RFID 技術(shù) , 在門禁系統(tǒng)中,能夠?qū)⑸矸莸目焖僮R別和安全管理。考勤模塊:點“查看考勤”按扭,彈出新的對話框,可分兩個條件供篩選,搜查內(nèi)容在列表框中顯示。門禁控制模塊:當射頻區(qū)域識別到已授權(quán)標簽時,點擊“感應開鎖”,則開動電子鎖。用戶信息管理模塊:在列表中選中一用戶,然后點擊修改信息按扭,出現(xiàn)一個修改信息的對話框。讀標簽模塊:把標簽放在射頻區(qū)域內(nèi),然后按讀標簽按扭,在上邊的列表控件中顯示該標簽的數(shù)據(jù)信息,包括姓名還有卡號。設(shè)置完后按連接按扭,在下面的提示框里出現(xiàn)讀卡器連接成功信息。如果用戶名和密碼為空,則提示用戶名和密碼不能為空,并回到重新登陸界面。測試中分析以下內(nèi)容:當在系統(tǒng)軟件生存期內(nèi)發(fā)生不希望或不可接受的人為錯誤時,導致系統(tǒng)軟件缺陷產(chǎn)生的結(jié)果,當輸入不準確的數(shù)據(jù)時,系統(tǒng)軟件產(chǎn)生的結(jié)果,當軟件運行過程中出現(xiàn)的一種不希望或不可接受的內(nèi)部狀態(tài),譬如軟件處于執(zhí)行一個多余循環(huán)過程時,所產(chǎn)生的結(jié)果等。下面這些規(guī)則也可以看作是測試的目的或定義:1. 測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程; 2. 好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案; 3. 成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。從用戶的角度出發(fā),普遍希望通過軟件測試暴露出軟件中陷藏的錯誤和缺陷,以考慮是否可以接受該產(chǎn)品。這兩張表中發(fā)卡人的姓名與用戶名一致。 2021 屆本科生畢業(yè)設(shè)計34 數(shù)據(jù)庫表的設(shè)計數(shù)據(jù)庫中有兩張表,各字段如下標簽信息表:包括持卡人姓名,卡號,持卡人證件號,有效期,發(fā)卡人姓名,發(fā)卡時間。通過 CDatabase 類中定義的這些功能函數(shù),我們可以通過遠程或本機完成對 MySQL 數(shù)據(jù)庫的絕大部分操控,并且由于定義了解鎖和加鎖功能,使得應用程序能夠多線程或多進程地訪問數(shù)據(jù)庫,大大提高了效能。 //字段信息(結(jié)構(gòu)體)BOOL FindSave(char *str)。 //結(jié)果集MYSQL_ROW row。 //關(guān)閉數(shù)據(jù)庫連接private:MYSQL mysql。 //輸出錯誤信息CDatabase()。 //刪除記錄BOOL SelectAll(Data_Param *para)。 //選擇記錄BOOL InsertRecord(Data_Param *para)。 //選擇數(shù)據(jù)庫BOOL UpdateRecord(Data_Param *para)。 //得到結(jié)果(一個記錄)my_ulonglong GetRowNum()。 //得到字段數(shù)BOOL ConnectDB(Database_Param *p)。 //創(chuàng)建數(shù)據(jù)庫,非零時返回錯誤信息void FreeRecord()。 //刪除數(shù)據(jù)庫,非零時返回錯誤信息void SeekData(int offset)。 //字段名BOOL IsEnd()。 //主機信息char * GetClientInfo()。 //服務(wù)器信息int GetProtocolInfo()。 //重新登陸,非零時返回錯誤信息char* GetState()。 //解鎖BOOL LockTable(char* TableName,char* PRIORITY)。 CDatabase 類的實現(xiàn) CDatabase 類封裝了 MySQL 數(shù)據(jù)庫的功能,因此不具備通用性,只能在對MySQL 的應用程序中使用。因為 ODBC 屏蔽了各種數(shù)據(jù)庫的差異,所以,原來用于對其它數(shù)據(jù)庫進行操作的程序,通過 ODBC 同樣能夠?qū)?MySQL 數(shù)據(jù)庫進行操作。 對于 MySQL 數(shù)據(jù)庫服務(wù)器來說,它的制造商同樣提供了相應的 ODBC 驅(qū)動程序,其最新版本為 。 利用 ODBC API 實現(xiàn) MySQL 數(shù)據(jù)庫功能調(diào)用 ODBC(Open Database Connectivity)即開放式數(shù)據(jù)庫互聯(lián),作為 Windows 開放性結(jié)構(gòu)的一個重要部分已經(jīng)為很多的 Windows 程序員所熟悉,ODBC 的工作依賴于數(shù)據(jù)庫制造商提供的驅(qū)動程序,使用 ODBC API 的時候,Windows 的ODBC 管理程序把數(shù)據(jù)庫訪問的請求傳遞給正確的驅(qū)動程序,驅(qū)動程序再使用SQL 語句指示 DBMS(數(shù)據(jù)庫管理系統(tǒng))完成數(shù)據(jù)庫訪問工作,因此, ODBC 的存在為我們開發(fā)應用數(shù)據(jù)庫程序提供了非常強大的能力和靈活性。如果需要退出數(shù)據(jù)庫服務(wù)器,可執(zhí)行 QUIT 命令,這樣就成功退出服務(wù)器了。然后,選擇所操作的數(shù)據(jù)庫,即 mysql USE databasename。 MySQL 自身不支持 Windows 的圖形界面,因此,所有的數(shù)據(jù)庫操作及管理功能都只能在 MSDOS 方式下完成。 MySQL 的主要目標是快速、健壯和易用。SQL(結(jié)構(gòu)化查詢語言)是世界上最流行的和標準化的數(shù)據(jù)庫語言,它使得存儲、更新和存取信息更加容易。 數(shù)據(jù)庫接口實現(xiàn)與應用的計算機環(huán)境:硬件,C46128M、15G;軟件及操作系統(tǒng),VISUAL C++ 、MySQL for win3WIN98。但是,正因為這樣,幾乎很少有人將 MySQL 用于應用軟件的開發(fā)中。因此,許多中小型網(wǎng)站的數(shù)據(jù)庫服務(wù)器選用 MySQL,而且,由于 MySQL 性能出色,一些大型網(wǎng)站也選用了 MySQL。眾所周知,所有的網(wǎng)上信息都是儲存在網(wǎng)站數(shù)據(jù)庫中的,這些信息的查詢、更新等操作的功能則是由數(shù)據(jù)庫服務(wù)器提供的,顯然,數(shù)據(jù)庫服務(wù)器的性能將直接關(guān)系到網(wǎng)站的生存。 order by time asc))。 ( CRecordset::forwardOnly, _T(SELECT , FROM taglist,tagrecord where = and = 39。CRecordset rs( amp。UID=root。2021 屆本科生畢業(yè)設(shè)計31(NULL,FALSE,FALSE,ODBC。 order by time asc))。( CRecordset::forwardOnly, _T(SELECT , FROM taglist,tagrecord where = and like 39。在列表中可以看到進出的人員,ID 號,以及開門時間。} 考勤模塊設(shè)計考勤是門禁系統(tǒng)的重要組成部分,它實時記錄人員的進出情況,在事故發(fā)生后可以起到追溯作用,達到人員監(jiān)控,和財產(chǎn)安全的實用效果。}GetDlgItem(IDC_BTN_LOCK)EnableWindow(true)。if (bStartedRunning){SeRFIDGen2_End(g_hCom,g_RAddr)。}禁止開鎖函數(shù)實現(xiàn):void CUserDlg::OnBtnUnlock() {bReadTimer=false。GetDlgItem(IDC_BTN_LOCK)EnableWindow(FALSE)。 SetTimer(1,200, 0)。這里規(guī)定 :? 高電平 1 : 關(guān)鎖 ? 低電平 0 : 開鎖 3)門鎖 門鎖的響應時間為 秒,當門鎖打開后隔 5 秒則自動關(guān)閉。圖 411 數(shù)據(jù)修改圖2021 屆本科生畢業(yè)設(shè)計282)刪除: 若要撤消人員的通過門禁的權(quán)限,可以通過刪除該用戶實現(xiàn). 被刪除的人員即使持有卡,但也無法通過門禁. 若要恢復該人員,則重新進行發(fā)卡操作.此處涉及到對數(shù)據(jù)庫的操作,詳細的函數(shù)設(shè)計請見 ,數(shù)據(jù)庫模塊設(shè)計。 } catch(CDBException e) { AfxMessageBox(刪除失敗)。 GetTagRecord(amp。try { (sql)。db )。 CString sql。return。PWD=root)。DSN=localhost。}}刪除用戶信息函數(shù)實現(xiàn):void CUserDlg::OnBtnDeltag() {// TODO: Add your control notification handler code hereCDatabase db。CDialog::OnOK()。try{(sql)。 where id=39。, position=39。, sex=39。, age=39。//往數(shù)據(jù)庫插入數(shù)據(jù)sql=update taglist set name=39。CString str_position = m_position。CString str_age = m_age。 CString str_name = m_name。UID=root。//打開數(shù)據(jù)庫類(NULL,FALSE,FALSE,ODBC。UpdateData(true)。2021 屆本科生畢業(yè)設(shè)計26pCombo1GetLBText(pCombo1GetCurSel(),m_sex1)。} 用戶信息管理模塊設(shè)計 該模塊中的函數(shù)結(jié)構(gòu)圖:CMotTagDLG()OnBtnSave()//修改 OnBtnDeltag()//刪除圖 410 標簽修改函數(shù)結(jié)構(gòu)圖修改用戶信息的函數(shù)實現(xiàn):void CMotTagDLG::OnBtnsave(){CString m_sex1。 return FALSE。 return TRUE。if (status == ERR_NONE) {g_editdlg_id = data。其主要的函數(shù)實現(xiàn):bool CEditRecord::writedata(CString data)2021 屆本科生畢業(yè)設(shè)計25{ while(i0) { i。ms_count : 返回執(zhí)行此函數(shù)所耗費的時間(毫秒)。mask: 指定標簽的匹配條件的數(shù)組。maskbitcount: mask 數(shù)組的位(bit )長,即用于標識傳入 mask 參數(shù)的值共有多少二進位(bit)有效。參數(shù):hCom: 傳入讀寫器的串口句柄。 }//如果沒讀到返回2021 屆本科生畢業(yè)設(shè)計24 if (str==){ return。(%s,temp)。sprintf(temp,(amp。CUserDlg dlg。TagCount,amp。返回值:返回狀態(tài)標識,請參照附錄,狀態(tài)標識說明。tag_count: 返回讀出的標簽數(shù),參考表 41。如果不指定匹配條件,則 mask_len = 0。參數(shù):hCom: 傳入讀寫器的串口句柄。圖 47 標簽讀取示意圖該模塊中的函數(shù)結(jié)構(gòu)圖:CUserDlg()GetTagRecord() OnReadtagBtn() ReadTimeRecord()圖 48 標簽讀取函數(shù)結(jié)構(gòu)圖該模塊中應用到的 API 函數(shù):1) 讀標簽數(shù)據(jù)此命令用于讀寫器讀取標簽,讀寫器讀到標簽將立即返回標簽數(shù)據(jù)。比特率,天線功率參數(shù)進行初始化。 GetDlgItem(IDC_DisconnectBTN)EnableWindow(FALSE)。}b_connect = FALSE。 pstr = GetUID(C_READER_IS_CLOSED)。}斷開連接函數(shù)實現(xiàn):void CConnectDLG::OnDisconnectBTN() { if (g_hCom != NULL) { rfidapi03 _Close(g_hCom,g_RAddr)。GetDlgItem(IDC_ConnectBTN)EnableWindow(TRUE)。 OnDisconnectBTN()。if (status != ERR_NONE){ pstr = GetUID(C_OPEN_COM_FAIL)。 (!::IsWindowEnabled(GetDlgItem(IDC_BUTTON_CLOSE)GetSafeHwnd()))} int i = 1。()。 // m name 2021 屆本科生畢業(yè)設(shè)計21CComboBox* pCombo1 = (CComboBox*)GetDlgItem(IDC_COMBO_COM)。返回值:返回狀態(tài)標識,請參照附錄,狀態(tài)標識說明。2021 屆本科生畢業(yè)設(shè)計20apiStatus WINAPI rfidapi03_setfreq( HANDLE hCom, unsigned char channel, int* ms_count );參數(shù):hCom: 傳入讀寫器的串口句柄。返回值:返回狀態(tài)標識,請參照附錄。參數(shù):hCom: 傳入讀寫器的串口句柄。5) 查詢讀寫器的當前工作頻率調(diào)用此函數(shù)用于獲取讀寫器的當前工作頻道索引值。ms_count:: 返回執(zhí)行此函數(shù)所耗費的時間(毫秒)。參數(shù):hCom: 傳入讀寫器的串口句柄。4) 設(shè)置讀寫器的功率調(diào)用此函數(shù)用于設(shè)置讀寫器 RF 功率。ms_count: 返回執(zhí)行此函數(shù)所耗費的時間(毫秒)。參數(shù):hCom
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1