版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE55*******************實踐教學(xué)*******************XX理工大大學(xué)計算機與通通信學(xué)院院2013年年秋季學(xué)學(xué)期RFID應(yīng)應(yīng)用技術(shù)術(shù)課程設(shè)設(shè)計題目:基于于高頻RRFIDD的學(xué)生生考勤系系統(tǒng)院系:計計算機與與通信學(xué)學(xué)院專業(yè):計算機機科學(xué)與與技術(shù)(物物聯(lián)網(wǎng)工工程方向向)姓名:XXXX學(xué)號:XXXXXXX指導(dǎo)老師::XXXXXXXX成績:目錄摘要2前言3一、案例描描述:41.1RFFID的的定義441.2RRFIDD系統(tǒng)的的組成441.3RRFIDD技術(shù)的的基本工工作原理理61.4RFFID高高頻相關(guān)關(guān)的國際際標準771.5高高頻(工作頻頻率主要要為133.566MHzz)8二、需求分分析8三、整體描描述和實實現(xiàn):991.硬件設(shè)設(shè)計92.軟件設(shè)設(shè)計1223.程序代代碼1444.運行結(jié)結(jié)果299總結(jié)31參考文獻332摘要本次課程設(shè)設(shè)計主要要是設(shè)計計基于高高頻的學(xué)學(xué)生考勤勤系統(tǒng),利利用上位位機的MMicrrosooftvissuallsttdioo20008、MMicrrosooftOfiiceAcccesss20000等等軟件來來編寫學(xué)學(xué)生考勤勤系統(tǒng)需需要的代代碼,繪繪制相關(guān)關(guān)界面以以及創(chuàng)建建數(shù)據(jù)庫庫。同時時,使用用北京奧奧爾斯電電子科技技有限公公司的RRFIDD綜合實實驗系統(tǒng)統(tǒng)的試驗驗箱,使使用實驗驗?zāi)K上上的高頻頻讀卡區(qū)區(qū)實現(xiàn)對對高頻卡卡ISOO156693的的識別,其其中讀卡卡區(qū)主要要由79970AA,F(xiàn)223700,MAAX32232,天天線等組組成。此此次課程程設(shè)計主主要分為為四步,第第一步是是在上位位機上繪繪制登陸陸界面、讀讀卡界面面、學(xué)生生信息界界面等,第第二步是是在PCC機上建建立數(shù)據(jù)據(jù)庫,并并在VSS中與數(shù)數(shù)據(jù)庫連連接,第第三步是是編譯程程序,通通過后與與實驗箱箱連接,燒燒寫程序序,第四四步是讀讀卡,通通過讀卡卡就可以以看見卡卡片上的的相關(guān)信信息顯示示在我們們繪制的的界面上上了。通通過此次次課程設(shè)設(shè)計使我我加深了了對單片片機的理理解,明明白了單單片機在在該系統(tǒng)統(tǒng)中的作作用,并并且熟悉悉了實驗驗箱的電電路板。關(guān)鍵詞:學(xué)學(xué)生考勤勤;考勤器器;RFIID卡前言隨著電電子技術(shù)術(shù)的發(fā)展展,智能能卡RFFID在在生活中中隨處可可見。而而射頻識識別卡((簡稱射射頻卡、RRFIDD卡)正正逐漸取取代傳統(tǒng)統(tǒng)的接觸觸式ICC卡,成成為智能能卡領(lǐng)域域的新潮潮流。RRFIDD卡由于于成功結(jié)結(jié)合了射射頻識別別和ICC卡技術(shù)術(shù),解決決了無源源(卡內(nèi)內(nèi)無電池池)和免免接觸的的難題,因因此,具具有磁卡卡和接觸觸式ICC卡不可可比擬的的優(yōu)點。RRFIDD卡由IIC芯片片、感應(yīng)應(yīng)天線組組成,完完全密封封在一個個標準PPVC卡卡片中,無無外露部部分。學(xué)學(xué)生考勤勤系統(tǒng)設(shè)設(shè)計利用用無線射射頻識別別技術(shù),實實現(xiàn)對學(xué)學(xué)生進行行考勤、記記錄等功功能。通過點點名、磁磁卡和接接觸式IIC卡的的等方式式對學(xué)生生的到課課情況進進行考勤勤、記錄錄管理,既既耗時又又容易相相互干擾擾;而非非接觸式式RFIID學(xué)生生考勤系系統(tǒng)實現(xiàn)現(xiàn)了利用用無線射射頻識別別技術(shù)對對學(xué)生考考勤管理理,既方方便快捷捷,又省省時。學(xué)學(xué)生考勤勤系統(tǒng)由由應(yīng)答器器和閱讀讀器組成成,其中中應(yīng)答器器由標簽簽(即卡卡片)構(gòu)構(gòu)成,閱閱讀器(讀讀卡器)由由射頻卡卡基站器器件及其其支撐電電路、主主控器件件及其支支撐電路路和外圍圍接口電電路(鍵鍵盤、液液晶、時時鐘、和和串口模模塊)構(gòu)構(gòu)成。一、案例描描述:1.1RFFID的的定義無線射頻識識別即RRFIDD(RaddioFreequeencyyIDDenttifiicattionn)技術(shù)術(shù),又稱稱電子標標簽、無無線射頻頻識別,是是一種非非接觸的的自動識識別技術(shù)術(shù),可通通過無線線電訊號號識別特特定目標標并讀寫寫相關(guān)數(shù)數(shù)據(jù),而而無需識識別系統(tǒng)統(tǒng)與特定定目標之之間建立立機械或或光學(xué)接接觸。它它基本由由三部分分組成::標簽((Tagg)、閱閱讀器((Reaaderr)和天天線(AAnteennaa)1.1.11.RFFID電電子標簽簽(Taag,或或稱射頻頻標簽)):由芯芯片及內(nèi)內(nèi)置天線線組成。芯芯片內(nèi)保保存有一一定格式式的電子子數(shù)據(jù),作作為待識識別物品品的標識識性信息息,是射射頻識別別系統(tǒng)真真正的數(shù)數(shù)據(jù)載體體。內(nèi)置置天線用用于和射射頻天線線間進行行通信。1.1.22閱讀器器:讀取取或讀//寫電子子標簽信信息的設(shè)設(shè)備,主主要任務(wù)務(wù)是控制制射頻模模塊向標標簽發(fā)射射讀取信信號,并并接收標標簽的應(yīng)應(yīng)答,對對標簽的的對象標標識信息息進行解解碼,將將對象標標識信息息連帶標標簽上其其它相關(guān)關(guān)信息傳傳輸?shù)街髦鳈C以供供處理。1.1.33天線::標簽與與閱讀器器之間傳傳輸數(shù)據(jù)據(jù)的發(fā)射射、接收收裝置。RFID射射頻識別別是英文文RaddioFreeqenncyIdeentiificcatiion的的縮寫,它它是一種種非接觸觸式的自自動識別別技術(shù),它它通過射射頻信號號自動識識別目標標對象并并獲取相相關(guān)數(shù)據(jù)據(jù),識別別工作無無須人工工干預(yù),可可工作于于各種惡惡劣環(huán)境境。RFFID技技術(shù)可識識別高速速運動物物體并可可同時識識別多個個識別卡卡,操作作快捷方方便。RFID射射頻識別別是一種種世界上上較為領(lǐng)領(lǐng)先的技技術(shù):第第一,可可以識別別單個的的非常具具體的物物體,而而不是像像條形碼碼那樣只只能識別別一類物物體;第第二,其其采用無無線電射射頻,可可以透過過外部材材料讀取取數(shù)據(jù),而而條形碼碼必須靠靠激光來來讀取信信息;第第三,可可以同時時對多個個物體進進行識讀讀,而條條形碼只只能一個個一個地地讀。此此外,儲儲存的信信息量也也非常大大。1.2RRFIDD系統(tǒng)的的組成一個RFIID系系統(tǒng)通常常有兩個個組件組組成:圖1RFFID系系統(tǒng)基本本原理模模型圖收發(fā)器(ttrannspoondeer)或或者標簽簽(Taag)::位于或或者通過過某種物物理手段段附加于于被識別別的對象象之上;;訊問器(iinteerroogattor)或或者閱讀讀器(rreadder)::取決于于設(shè)計和和所采用用的技術(shù)術(shù),可以以是閱讀讀或者讀讀寫設(shè)備備。圖22RFFID系系統(tǒng)閱讀讀器通常常包含一一個射頻頻模塊(發(fā)射射器和接接收器)),一個個控制單單元和一一個與收收發(fā)器的的耦合單單元。另另外,某某些閱讀讀器還包包含其他他數(shù)據(jù)接接口系統(tǒng)統(tǒng)(RRS2232,,RSS4885,TTCP//IP等等),以便便將數(shù)據(jù)據(jù)轉(zhuǎn)發(fā)到到其他系系統(tǒng)。標簽簽:表示示RFIID系統(tǒng)統(tǒng)的實際際數(shù)據(jù)載載體,通通常有一一個耦合合單元和和一個電電子芯片片組成。標標簽通常常不具備備自身電電源供應(yīng)應(yīng),當它它不在質(zhì)質(zhì)詢器的的質(zhì)詢范范圍時,整整體呈被被動狀態(tài)態(tài)。它只只有在質(zhì)質(zhì)詢器的的質(zhì)詢范范圍之內(nèi)內(nèi)才被激激活。激激活雷達達收發(fā)器器的電力力通過耦耦合單元元傳輸給給收發(fā)器器,所需需的數(shù)據(jù)據(jù)和時鐘鐘脈沖也也是如此此。圖3RRFIDD天線1.3RFFID技技術(shù)的基基本工作作原理RFID技技術(shù)的基基本工作作原理::電子標標簽與閱閱讀器之之間通過過耦合元元件實現(xiàn)現(xiàn)射頻信信號的空空間(無接觸觸)耦合、在在耦合通通道內(nèi),根根據(jù)時序序關(guān)系,實實現(xiàn)能量量的傳遞遞、數(shù)據(jù)據(jù)的交換換。當標標簽進入入磁場后后,接收收讀寫器器發(fā)出的的射頻信信號,標標簽憑借借感應(yīng)電電流所獲獲得的能能量為自自身供電電并發(fā)送送出存儲儲在芯片片中的產(chǎn)產(chǎn)品信息息(PaassiiveTagg,無源源標簽或或被動標標簽),或或者由標標簽主動動發(fā)送某某一頻率率的信號號(AcctivveTTag,有有源標簽簽或主動動標簽),讀讀寫器讀讀取信息息并解碼碼后,送送至中央央信息系系統(tǒng)進行行有關(guān)數(shù)數(shù)據(jù)處理理。圖4讀讀寫器的的原理圖圖RFID標標簽和讀讀寫器之之間采用用無線通通信方式式傳遞信信息。其其基本的的通信方方式有兩兩種,第第一種基基于電磁磁耦合或或者電感感耦合,第第二種基基于電磁磁波的反反向散射射耦合。電感耦合::變壓器器模型,通通過空間間高頻交交變磁場場實現(xiàn)耦耦合,依依據(jù)的是是電磁感感應(yīng)定律律。圖5讀讀寫過程程電磁反向散散射耦合合:雷達達原理模模型,發(fā)發(fā)射出去去的電磁磁波,碰碰到目標標后反射射,同時時攜帶回回目標信信息,依依據(jù)的是是電磁波波的空間間傳播規(guī)規(guī)律。圖6讀讀寫原理理電感感耦合方方式一般般適合于于高、中中、低頻頻工作的的近距離離射頻識識別系統(tǒng)統(tǒng)。典型型的工作作頻率有有:1225kHHz、2255kHzz和13.56MMHz。識識別作用用距離小小于1mm,典型型作用距距離為110~20ccm。電電磁反向向散射耦耦合方式式一般適適合于超超高頻、微微波工作作的遠距距離射頻頻識別系系統(tǒng)。典典型的工工作頻率率有:4433MMHz,9155MHzz,2.45GGHz,5.8GHHz。識識別作用用距離大大于1mm,典型型作用距距離為33—l00m。RFID標標簽與讀讀寫器之之間的耦耦合通過過天線完完成,天天線通常常可以理理解為電電波傳播播的天線線,也指指電感耦耦合的天天線。數(shù)數(shù)據(jù)在讀讀寫器和和標簽之之間用無無線方式式傳遞,噪噪聲、干干擾以及及失真與與數(shù)據(jù)本本身一樣樣傳遞。與與其他通通信系統(tǒng)統(tǒng)相似,技技術(shù)上必必須保證證數(shù)據(jù)被被正確傳傳遞和恢恢復(fù)。數(shù)數(shù)據(jù)傳遞遞有同步步和異步步之分,在在RFIID系統(tǒng)統(tǒng)中,碼碼流結(jié)構(gòu)構(gòu)也要適適應(yīng)信道道特性的的要求,碼碼流結(jié)構(gòu)構(gòu)化過程程稱為信信道編碼碼。對于于RFIID系統(tǒng)統(tǒng),信道道編碼必必須對用用戶透明明,現(xiàn)在在有各種種不同的的信道編編碼方法法,其特特點也不不盡相同同。為了了通過空空間有效效傳遞數(shù)數(shù)據(jù),要要求將數(shù)數(shù)據(jù)調(diào)制制在載波波上,這這一過程程稱為調(diào)調(diào)制。常常用的調(diào)調(diào)制方法法有ASSK、FSK和PSKK。1.4RFFID高高頻相關(guān)關(guān)的國際際標準該頻頻率的感感應(yīng)器不不再需要要線圈進進行繞制制,可以以通過腐腐蝕或者者印刷的的方式制制作天線線。感應(yīng)應(yīng)器一般般通過負負載調(diào)制制的方式式進行工工作。也也就是通通過感應(yīng)應(yīng)器上的的負載電電阻的接接通和斷斷開促使使讀寫器器天線上上的電壓壓發(fā)生變變化,實實現(xiàn)用遠遠距離感感應(yīng)器對對天線電電壓進行行振幅調(diào)調(diào)制。如如果人們們通過數(shù)數(shù)據(jù)控制制負載電電壓的接接通和斷斷開,那那么這些些數(shù)據(jù)就就能夠從從感應(yīng)器器傳輸?shù)降阶x寫器器。高頻頻段射頻頻標簽?zāi)磕壳熬哂杏腥蚪y(tǒng)統(tǒng)一133.566MHzz的工作作頻率。該該頻段的的射頻標標簽稱為為高頻標標簽。是是目前實實際應(yīng)用用最多且且技術(shù)最最成熟的的射頻標標簽技術(shù)術(shù)。相應(yīng)的國際際標準::(1)IISO//IECC1444433A//B近耦耦合ICC卡,最最大的讀讀取距離離為100cm(2)IISO//IECC1556933(兼容容于ISSO/IIEC180000--3)疏疏耦合IIC卡,最最大的讀讀取距離離為1mm;(3)IISO//IECC1880000-3該該標準定定義了113.556MHHz系統(tǒng)統(tǒng)的物理理層,防防沖撞算算法和通通訊協(xié)議議。;(4)EEPCC1HF定定義133.566MHzz符合EPPC的接接口定義義;(5)UUbiqquittoussIDD其中EPCCC11HFF兼容于于ISOO/IEEC1556933,而ISSO1556933兼容于于ISO1180000-33的modde11;1.5高頻頻(工作頻頻率主要要為133.566MHzz)高頻下識別別卡不需需要繞制制線圈,可可以通過過印刷的的方式制制作天線線。識別別卡一般般是負載載調(diào)制的的方式工工作,也也就是通通過識別別卡的負負載電阻阻的接通通和斷開開促使讀讀寫器天天線上的的電壓發(fā)發(fā)生變化化,實現(xiàn)現(xiàn)遠距離離識別卡卡對天線線電壓進進行振幅幅調(diào)制。就就頻率而而言,高高頻RFFID具具有以下下特性::①工作頻率率為133.566MHzz,該頻頻率的波波長大概概為222米。②除了金屬屬材料外外,該頻頻率的波波長可以以穿過大大多數(shù)的的材料,但但是往往往會降低低讀取距距離。識識別卡(感感應(yīng)器)需需要離開開金屬一一段距離離。③該頻段在在全球都都得到認認可并沒沒有特殊殊的限制制。④該系統(tǒng)具具有防沖沖撞特性性,可以以同時讀讀取多個個識別卡卡。⑤可以把某某些數(shù)據(jù)據(jù)信息寫寫入識別別卡中。⑥數(shù)據(jù)傳輸輸速率比比低頻要要快且價價格不是是很貴。高頻RFIID主要要應(yīng)用有有:航空空包裹的的管理和和應(yīng)用、瓦瓦斯鋼瓶瓶的管理理應(yīng)用、預(yù)預(yù)收費系系統(tǒng)、酒酒店門鎖鎖的管理理和應(yīng)用用、大型型會議人人員通道道系統(tǒng)、固固定資產(chǎn)產(chǎn)的管理理系統(tǒng)、醫(yī)醫(yī)藥物流流系統(tǒng)的的管理和和應(yīng)用、智智能貨架架的管理理二、需求分分析此次課程設(shè)設(shè)計我選選擇北京京奧爾斯斯電子科科技有限限公司的的RFIID綜合合實驗系系統(tǒng)內(nèi)的的高頻模模塊來完完成讀卡卡,運用用了C+++的編編程方法法來完成成界面以以及與實實驗箱的的連接,采采用RSS2322接口實實現(xiàn)PCC機與實實驗箱的的連接,以以下是我我的應(yīng)用用程序結(jié)結(jié)構(gòu)圖::PC機上的編程PC機上的編程數(shù)據(jù)庫的建立測試與調(diào)試否是實驗箱的連接讀卡結(jié)束圖7流程程圖對于數(shù)據(jù)的的存儲我我選用的的是微軟軟的Acccesss,實實現(xiàn)對卡卡號,學(xué)學(xué)生的專專業(yè),學(xué)學(xué)號等的的數(shù)據(jù)存存儲以及及登陸時時的所有有用戶。三、整體描描述和實實現(xiàn):考勤系統(tǒng)統(tǒng)的核心心是射頻頻卡讀卡卡器,而而射頻卡卡讀寫器器的關(guān)鍵鍵是射頻頻卡基站站器件,該該器件主主要完成成數(shù)據(jù)的的調(diào)制、發(fā)發(fā)射和射射頻接收收以及數(shù)數(shù)據(jù)解調(diào)調(diào)任務(wù)。從從射頻識識別卡的的使用方方便、交交易速度度快、便便于維護護和使用用壽命較較長等優(yōu)優(yōu)點來看看,射頻頻識別卡卡正在逐逐漸替代代目前廣廣泛使用用的接觸觸式ICC卡。這這里所設(shè)設(shè)計的學(xué)學(xué)生考勤勤系統(tǒng)實實現(xiàn)了方方便、快快捷、省省時的學(xué)學(xué)生考勤勤管理功功能。1.硬件設(shè)設(shè)計本統(tǒng)的設(shè)計計主要分分為兩大大部分,一一部分是是考勤器器的軟、硬硬件設(shè)計計,一部部分是上上位機軟軟件的設(shè)設(shè)計??伎记谄黧w體積適中中,便于于攜帶到到教室等等場所,由由它完成成對學(xué)生生的考勤勤。主要要功能是是讀取學(xué)學(xué)生一卡卡通的信信息,以以及做相相應(yīng)顯示示、存儲儲等處理理。上位位機軟件件主要功功能是向向考勤器器下傳學(xué)學(xué)生姓名名、學(xué)號號以及接接收并保保存考勤勤器上傳傳的卡號號和考勤勤記錄。采用的是基基于高頻頻的射頻頻識別。(1)總體體設(shè)計方方案設(shè)計計學(xué)生考考勤幾乎乎是每個個學(xué)校必必須而且且是經(jīng)常常做的學(xué)學(xué)生工作作之一,如如何簡單單高效的的地考勤勤工作一一直以來來是很多多學(xué)校都都在努力力解決,所所以考慮慮如何實實現(xiàn)簡單單高效的的考勤具具有巨大大的實際際意義和和價值,鑒鑒于此,本本文提出出了一種種可行的的方案,方方案的總總體思路路:目前前很多學(xué)學(xué)校都在在使用一一卡通,本本系統(tǒng)以以學(xué)生的的一卡通通為基礎(chǔ)礎(chǔ),設(shè)計計一種讀讀卡式考考勤器,考考勤器存存儲有學(xué)學(xué)生的身身份信息息,學(xué)生生刷卡,通通過學(xué)生生刷卡,通通過學(xué)生生卡號來來識別學(xué)學(xué)生的身身份,并并記錄刷刷卡時間間來實現(xiàn)現(xiàn)對學(xué)生生的考勤勤,方法法簡單有有效??伎记谄黧w體積適中中,便于于攜帶,使使用方便便。(2)考勤勤器設(shè)計計考勤器器硬件設(shè)設(shè)計主要要構(gòu)成::單片機機、讀卡卡模塊、實實時鐘模模塊等(3)HFF模塊圖8HHF模塊塊系統(tǒng)框圖::圖9系統(tǒng)框框圖LED燈顯顯示說明明:D1:綠色色,電源源啟動指指示燈,在在4300下完程程序后,如如果4330正常常運行,燈燈亮。D2:紅色色,ISSO1444433A協(xié)議議指示燈燈,D3:黃色色,ISSO1444433B協(xié)議議指示燈燈D4:紅色色,ISSO1556933協(xié)議指指示燈D5:紅色色,taag-iit指示示燈D6:紅色色,預(yù)留留系統(tǒng)運行簡簡要說明明:①:上電后后,4330先通通過并口口訪問779700芯片,在在沒有讀讀到卡時時,程序序運行在在串口讀讀寫模式式,并每每隔0..5s向向串口發(fā)發(fā)送一個個“D”,直直到有寫寫操作為為止。②:當有卡卡讀寫時時,針對對相應(yīng)的的卡,程程序進入入不同的的協(xié)議中中,并且且點亮相相應(yīng)的LLED燈燈。API調(diào)用用說明①:上電后后,配置置完內(nèi)部部寄存器器,程序序進入串串口讀寫寫程序,可可以進行行人機交交互。②:當讀到到不同協(xié)協(xié)議的卡卡時,程程序退出出串口讀讀寫程序序,進入入相應(yīng)的的協(xié)議子子程序中中(目前前支持1144443A協(xié)協(xié)議和1156993協(xié)議議)。讀讀完卡后后,退出出相應(yīng)的的協(xié)議子子程序,進進入串口口讀寫程程序。ISO1156993第三三部分通過讀卡器器獲取指指令流,讀讀卡器采采用TIItrrf79970讀讀卡器芯芯片,開開發(fā)資料料參考協(xié)協(xié)議ISSO1156993,trff79770ddataasheeet,參參考trrf79960EEVM..pdff實現(xiàn)ISSO1156993第三三部分指指令部分分,防碰碰撞實驗驗,附錄錄的CRRC實驗驗;((4)德德州儀器器推出低低功耗的的非接觸觸式接收收器-TTRF779700ATRF79970AA是德州州儀器(TI),推出一款業(yè)界功耗最低的適用于近場通信(NFC)的非接觸式短距離通信收發(fā)器。此TRF7970A收發(fā)器適用于基礎(chǔ)設(shè)備,其電池壽命是競爭產(chǎn)品的兩倍,可提供功率范圍為1μA~120mA的8個不同的功率模式。該收發(fā)器帶有可配置的輔助軟件,以幫助開發(fā)人員更快入手,收發(fā)器與軟件通過一系列超低功耗MSP微控制器兼容。該收發(fā)器支持點對點通信,例如用于醫(yī)療設(shè)備、移動支付以及卡仿真。它也還具有讀寫能力,兩個晶體振蕩頻率(13.56MHz或27.12M赫茲)和一個容量為128字節(jié)的“先進先出(FIFO)”緩沖器,使之能夠處理大量數(shù)據(jù)的傳輸。TRF79970AA發(fā)器符符合ISSO1880922和ISOO/IEEC2114811NFCCRFIID標準準,并支支持多個個讀寫協(xié)協(xié)議。它它包括符符合ISSO1556933,ISOO180000--3,ISOO144443AA/B標標準和FFeliiCaRRFIDD規(guī)范的的專為讀讀寫器模模式設(shè)計計的示范范性軟件件包。(4)TIITRRF79970AA133.566MHzzNFFC通信信系統(tǒng)解解決方案案TI公司的的TRFF79770A用用于133.566MHzzRFFID//NFCC近場通通信系統(tǒng)統(tǒng)的模擬擬前端和和數(shù)據(jù)幀幀器件,可可工作于于三種模模式之一一:RFFID//NFCC閱讀器器,NFFC對等等和模擬擬卡片模模式。器件件工作電電壓2..7--5.55VDDC,支支持NFFC標準準NFCCIP--1((ISOO/IEEC1180992)和和NFCCIP--2((ISOO/IEEC2214881),完完全集成成了ISSO1556933,ISSO1556933,ISSO1880000-3,ISSO1444433A/BB,F(xiàn)eeliCCa協(xié)議議處理,內(nèi)內(nèi)置的用用戶可配配置編程程選擇使使TRFF79770A適適合于廣廣泛的應(yīng)應(yīng)用如移移動設(shè)備備(平板電電腦,手機等等),安全全配對((藍牙,WiFFi等),護照照或POOS讀系系統(tǒng),短短程無線線通信任任務(wù),產(chǎn)產(chǎn)品辯認認或鑒定定,醫(yī)療療設(shè)備,接接入控制制,數(shù)字字門鎖,電電子交易易卡共享享等。2.軟件設(shè)設(shè)計在PCC機上通通過MiicroosofftVVsuaalSStdiio220088的MFFC應(yīng)用用程序模模塊設(shè)計計登陸界界面、讀讀卡界面面、學(xué)生生信息界界面該軟軟件將自自動生成成相關(guān)程程序代碼碼段相關(guān)關(guān)界面如如圖所示示:圖10登登陸界面面圖11用戶戶界面圖12學(xué)員員界面圖13添加加用戶界界面圖14專業(yè)業(yè)界面圖15信息息界面圖圖16班級級界面圖17讀卡卡界面圖18考勤勤界面3.程序代代碼下面是程序序代碼:://Atttenndannce..cppp:實現(xiàn)文文件///#inclludee"sstdaafx..h"#inclludee"HHFExxampple..h"#inclludee"AAtteendaancee.h""#inclludee"BBasiicExxcell.hppp"usinggnaamesspacceYYExccel;;#defiineATTTENDDANCCE_LLISTT_DAATETTIMEE_IDDX 0#defiineATTTENDDANCCE_LLISTT_WEEEK__IDXX 1#defiineATTTENDDANCCE_LLISTT_NAAME__IDXX 2#defiineATTTENDDANCCE_LLISTT_DEEPARRTMEENT__IDXX 3#defiineATTTENDDANCCE_LLISTT_SWWORDDTIMME_IIDX 4#defiineATTTENDDANCCE_LLISTT_EWWORKKTIMME_IIDX 5statiicTTCHAARWWeekkDayy[][[6]=={TEEXT(("周日日"),,TEXXT(""周一")),TEEXT(("周二二"),,TEXXT(""周三")),TEEXT(("周四四"),,TEXXT(""周五")),TEEXT(("周六六")}};//CAAtteendaancee對話話框IMPLEEMENNT_DDYNAAMICC(CAAtteendaancee,CCProoperrtyPPagee)CAtteendaancee::CCAtttenddancce()) :CPPropperttyPaage((CAtttenndannce:::IDDD){}CAtteendaancee::~~CAtttenndannce((){}voidCAtttenndannce:::DooDattaExxchaangee(CDDataaExcchannge**pDDX){ CProoperrtyPPagee::DDoDaataEExchhangge(ppDX)); DDX__Conntrool(ppDX,,IDDC_LLISTT_ATTTENNDANNCD,,_llistts);;}voidCAtttenndannce:::GeetReequeestLListt(CCStrringgdaate11,CSStriingtimme1,,CSttrinngddatee2,CCStrringgtiime22){ CStrringgdtt1,ddt2;; dt1==datte1++"""+tiime11; dt2==datte2++"""+tiime22; theAApp..gettDB(().GGetAAtteendaanceeLisst(mm_atttenndannceiinfooarrray,,dt11,dtt2);;}voidCAtttenndannce:::GeetReequeestLListtByNNamee(CCStrringgdaate11,CSStriingtimme1,,CSttrinngddatee2,CCStrringgtiime22,CSStriingnamme)){ CStrringgdtt1,ddt2;; dt1==datte1++"""+tiime11; dt2==datte2++"""+tiime22; theAApp..gettDB(().GGetAAtteendaanceeLisstByyNamme(mm_atttenndannceiinfooarrray,,dt11,dtt2,nnamee);}voidCAtttenndannce:::GeetReequeestLListtByDDepaartmmentt(CCStrringgdaate11,CSStriingtimme1,,CSttrinngddatee2,CCStrringgtiime22,CSStriingdepparttmennt)){ CStrringgdtt1,ddt2;; dt1==datte1++"""+tiime11; dt2==datte2++"""+tiime22; theAApp..gettDB(().GGetAAtteendaanceeLisstByyDepparttmennt(mm_atttenndannceiinfooarrray,,dt11,dtt2,ddepaartmmentt);}voidCAtttenndannce:::GeetReequeestLListtByNNameeAnddDepparttmennt(CSttrinngddatee1,CCStrringgtiime11,CSStriingdatte2,,CSttrinngttimee2,CCStrringgnaame,,CSttrinngddepaartmmentt){ CStrringgdtt1,ddt2;; dt1==datte1++"""+tiime11; dt2==datte2++"""+tiime22; theAApp..gettDB(().GGetAAtteendaanceeLisstByyNammeAnndDeeparrtmeent((m_aatteendaanceeinffoarrrayy,dtt1,ddt2,,namme,ddepaartmmentt);}BEGINN_MEESSAAGE__MAPP(CAAtteendaancee,CCProoperrtyPPagee) ON_BBN_CCLICCKEDD(IDDC_BBTN__QUEERY,,&CCAtttenddancce:::OnBBnCllickkedBBtnQQuerry) ON_BBN_CCLICCKEDD(IDDC_CCHECCK_DDEPAARTMMENTT,&&CAtttenndannce:::OnnBnCClicckeddCheeckDDepaartmmentt) ON_BBN_CCLICCKEDD(IDDC_CCHECCK_NNAMEE,&&CAtttenndannce:::OnnBnCClicckeddCheeckNNamee) ON_BBN_CCLICCKEDD(IDDC_BBTN__EXPPORTTEXCCEL,,&CCAtttenddancce:::OnBBnCllickkedBBtnEExpoorteexceel) ON_NNOTIIFY((LVNN_ITTEMCCHANNGEDD,IIDC__LISST_AATTEENDAANCDD,&&CAtttenndannce:::OnnLvnnIteemchhanggedLListtAtttenddanccd) ON_NNOTIIFY((DTNN_DAATETTIMEECHAANGEE,IIDC__DATTETIIMEPPICKKER__DATTEENND,&CAAtteendaancee::OOnDttnDaatettimeechaangeeDattetiimeppickkerDDateeendd)END_MMESSSAGEE_MAAP())//CAAtteendaancee消息息處理程程序BOOLCAtttenndannce:::OnnIniitDiialoog()){ CProoperrtyPPagee::OOnInnitDDiallog((); //TTODOO:在此添添加額外外的初始始化 COleeDatteTiimedt11(20011,,1,11,8,,30,,0),,dt33(20011,,1,11,177,300,0)); ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_STTARTTWORRK)))->SSetTTimee(dtt1);; ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_ENNDWOORK)))->>SettTimme(ddt3)); _lissts..SettExttenddedSStylle(LLVS__EX__GRIIDLIINESS|LVVS_EEX_FFULLLROWWSELLECTT); _lissts..InsserttCollumnn(ATTTENNDANNCE__LISST_DDATEETIMME_IIDX,,TEXXT(""日期"))); _lissts..InsserttCollumnn(ATTTENNDANNCE__LISST_WWEEKK_IDDX,TTEXTT("星星期"))); _lissts..InsserttCollumnn(ATTTENNDANNCE__LISST_NNAMEE_IDDX,TTEXTT("姓姓名"))); _lissts..InsserttCollumnn(ATTTENNDANNCE__LISST_DDEPAARTMMENTT_IDDX,TTEXTT("專專業(yè)"))); _lissts..InsserttCollumnn(ATTTENNDANNCE__LISST_SSWORRDTIIME__IDXX,TEEXT(("上課課"))); _lissts..InsserttCollumnn(ATTTENNDANNCE__LISST_EEWORRKTIIME__IDXX,TEEXT(("下課課"))); CRecctrrectt4; _lissts..GettCliienttRecct(rrectt4);;///獲得得當前客客戶區(qū)信信息 _lissts..SettCollumnnWiddth((ATTTENDDANCCE_LLISTT_DAATETTIMEE_IDDX,11.5**recct4..Widdth(()/110);;///設(shè)置列列的寬度度。 _lissts..SettCollumnnWiddth((ATTTENDDANCCE_LLISTT_WEEEK__IDXX,1**recct4..Widdth(()/110);; _lissts..SettCollumnnWiddth((ATTTENDDANCCE_LLISTT_NAAME__IDXX,1**recct4..Widdth(()/110);; _lissts..SettCollumnnWiddth((ATTTENDDANCCE_LLISTT_DEEPARRTMEENT__IDXX,2**recct4..Widdth(()/110);; _lissts..SettCollumnnWiddth((ATTTENDDANCCE_LLISTT_SWWORDDTIMME_IIDX,,2*rrectt4.WWidtth())/100); _lissts..SettCollumnnWiddth((ATTTENDDANCCE_LLISTT_EWWORKKTIMME_IIDX,,2*rrectt4.WWidtth())/100); //獲取取專業(yè)信信息 theAApp..gettDB(().GGetAAllDDepaartmmentt(_ddepaartmmenttinffoarrrayy); inti; for((i=00;i<<_deeparrtmeentiinfooarrray..GettCouunt(();ii++)) { CDeeparrtmeentIInfoo&aaDepparttmenntInnfo==_deeparrtmeentiinfooarrray..GettAt((i);; ((CCCommboBBox**)(GGetDDlgIItemm(IDDC_CCOMBBO_DDEPAARTMMENTT))))->AAddSStriing((aDeeparrtmeentIInfoo.GeetNaame(());; } //獲取取學(xué)生信信息 theAApp..gettDB(().GGetAAllEEmplloyeee(__empployyinffoarrrayy); for((i=00;i<<_emmplooyinnfoaarraay.GGetCCounnt());i+++) { CEmmplooyeeeInffo&aEmmplooyInnfo==_emmplooyinnfoaarraay.GGetAAt(ii); ((CCCommboBBox**)(GGetDDlgIItemm(IDDC_CCOMBBO_NNAMEE))))->AAddSStriing((aEmmplooyInnfo..GettNamme())); } retuurnTRUUE;///reeturrnTTRUEEunnlesssyyousettthheffocuusttoaacoontrrol //異異常:OCXX屬性性頁應(yīng)返返回FAALSEE}voidCAtttenndannce:::ShhowIInLiistCCtrll(){ inti; CStrringgt;; COleeDatteTiimedt00,dtt1,ddt2,,dttt; //ddt0::查詢起起始時間間dt11:數(shù)據(jù)據(jù)庫中時時間dtt2:查查詢結(jié)束束時間ddtt::臨時變變量 ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_DAATESSTARRT)))->GGetTTimee(dtt0);; dt0..SettDatteTiime((dt00.GeetYeear((),ddt0..GettMonnth((),ddt0..GettDayy(),,0,00,0)); //只提提供查詢詢?nèi)掌?,相相?yīng)起始始時間為為點 ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_DAATEEEND)))->>GettTimme(ddt2)); dt2..SettDatteTiime((dt22.GeetYeear((),ddt2..GettMonnth((),ddt2..GettDayy(),,23,,59,,59)); //查詢詢終止時時間為點點 COleeDatteTiimeSSpanndttsd((1,00,0,,0),,dtsslasst(00,3,,0,00),ddtsaampmm(0,,12,,0,00); _lissts..DelleteeAlllIteems((); consstiintiMaax=mm_atttenndannceiinfooarrray..GettUppperBBounnd()); for((i=00;i<<=iMMax;;i+++) //獲取取的記錄錄是按時時間排序序的 { dt11=m__atttenddancceinnfoaarraay.GGetAAt(ii).GGetDDateeTimme2((); whiile((dt11>=ddt0))//&&dt11<=ddt0++dtssd) { whhilee(dtt1>ddt0++dtssd) ddt0++=dttsd;;dt1=mm_atttenndannceiinfooarrray..GettAt((i)..GettDatteTiime22();; _llistts.IInseertIItemm(i,,m_aatteendaanceeinffoarrrayy.GeetAtt(i)).GeetDaate(());; _lissts..SettIteemTeext((i,AATTEENDAANCEE_LIIST__NAMME_IIDX,,m_aatteendaanceeinffoarrrayy.GeetAtt(i)).GeetNaame(());; iff(dtt1<ddt0++dtssamppm) { ///amm ddtt..SettDatteTiime((dt11.GeetYeear((),ddt1..GettMonnth((),ddt1..GettDayy(),,8,330,00); //記錄錄時間在在:300前,顯顯示“正?!保駝t則顯示記記錄時間間 iif(ddt1<<dttt) t=""正常";; eelsee t=mm_atttenndannceiinfooarrray..GettAt((i)..GettTimme()); __lissts..SettIteemTeext((i,AATTEENDAANCEE_LIIST__SWOORDTTIMEE_IDDX,tt); } ellse { ///pmm dttt.SSetDDateeTimme(ddt1..GettYeaar()),dtt1.GGetMMontth()),dtt1.GGetDDay((),117,330,00);//記記錄時間間在:330后,顯顯示“正常”,否則則顯示記記錄時間間 iif(ddt1>>dttt) t=""正常";; eelsee t=mm_atttenndannceiinfooarrray..GettAt((i)..GettTimme()); __lissts..SettIteemTeext((i,AATTEENDAANCEE_LIIST__EWOORKTTIMEE_IDDX,tt); } i+++; iff(i>>iMaax) bbreaak; } if((dt11>dtt2|||ii>iMMax)) breaak; }}voidCAtttenndannce:::ShhowIInLiistCCtrll2()){ inti,jj=0;; CStrringgt;; COleeDatteTiimedtddaybb,dtt1,ddt2,,dtddayee,dttt; //ddt0::查詢起起始時間間dt11:數(shù)據(jù)據(jù)庫中時時間dtt2:查查詢結(jié)束束時間ddtt::臨時變變量 ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_DAATESSTARRT)))->GGetTTimee(dttdayyb);; dtdaayb..SettDatteTiime((dtddaybb.GeetYeear((),ddtdaayb..GettMonnth((),ddtdaayb..GettDayy(),,0,00,0)); //只提提供查詢詢?nèi)掌?,相相?yīng)起始始時間為為點 ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_DAATEEEND)))->>GettTimme(ddt2)); dt2..SettDatteTiime((dt22.GeetYeear((),ddt2..GettMonnth((),ddt2..GettDayy(),,23,,59,,59)); //查詢詢終止時時間為點點 COleeDatteTiimeSSpanndttsd((1,00,0,,0),,dtsslasst(00,3,,0,00),ddtsaampmm(0,,12,,0,00),ddtsppan==dt22-dttdayyb; intdayys=ddtsppan..GettTottalDDayss()++1; //查詢詢的總天天數(shù) j=0;; for((i=00;i<<dayys&&&jj<m__atttenddancceinnfoaarraay.GGetSSizee();;i+++) { ReSSetQQuerryReesulltTiime((); SettQueeryRResuultDDatee(dttdayyb);; dtddayee=dttdayyb+ddtsdd; dt11=m__atttenddancceinnfoaarraay.GGetAAt(jj).GGetDDateeTimme2((); whiile((j<mm_atttenndannceiinfooarrray..GettSizze())&&&dtt1>ddtdaayb&&dt11<dttdayye) { Adddreecorrd(jj); j+++; iff(j<<m_aatteendaanceeinffoarrrayy.GeetSiize(()) ddt1==m_aatteendaanceeinffoarrrayy.GeetAtt(j)).GeetDaateTTimee2()); } dtddaybb+=ddtsdd; ShoowQuueryyRessultt2()); } ReSeetQuueryyRessulttTimme()); for((;i<<dayys;ii++)) { SettQueeryRResuultDDatee(dttdayyb);; dtddaybb+=ddtsdd; ShoowQuueryyRessultt2()); }}voidCAtttenndannce:::ShhowQQuerryReesullt2((){ inti,jj; CStrringgs11,s22,s33; CDatteAnndTiimedatt; j=_llistts.GGetIItemmCouunt((); for((i=00;i<<_quueryyressulttarrray..GettSizze());i+++) { datt.m__datte=__queeryrresuultaarraay.GGetAAt(ii).GGetDDatee();; s1==_quueryyressulttarrray..GettAt((i)..GettSTiime((); s2==_quueryyressulttarrray..GettAt((i)..GettETiime((); s3==_quueryyressulttarrray..GettAt((i)..GettWeeek()); _liistss.InnserrtIttem((j,__queeryrresuultaarraay.GGetAAt(ii).GGetDDatee())); _liistss.SeetIttemTTextt(j,,ATTTENDDANCCE_LLISTT_WEEEK__IDXX,s33); _liistss.SeetIttemTTextt(j,,ATTTENDDANCCE_LLISTT_NAAME__IDXX,_qquerryreesulltarrrayy.GeetAtt(i)).GeetNaame(());; _lissts..SettIteemTeext((j,AATTEENDAANCEE_LIIST__DEPPARTTMENNT_IIDX,,_quueryyressulttarrray..GettAt((i)..GettDepparttmennt())); _liistss.SeetIttemTTextt(j,,ATTTENDDANCCE_LLISTT_SWWORDDTIMME_IIDX,,s1)); _liistss.SeetIttemTTextt(j,,ATTTENDDANCCE_LLISTT_EWWORKKTIMME_IIDX,,s2)); j+++; //補補課名單單 if((s3=="周六六"|||ss3===""周日")) { _wworkkexttraaarraay.AAdd((_quueryyressulttarrray..GettAt((i))); } //正正常上課課時間 //沒沒有時間間記錄即即為缺勤勤 elsse { iff(s11==="""&&&s22===""") { __abssenttarrray..Addd(_qquerryreesulltarrrayy.GeetAtt(i))); //缺勤勤總表 __empployystaatinnfoaarraay.GGetAAt(ii).mm_abbsennt.AAdd((datt); //單個個學(xué)生缺缺勤統(tǒng)計計表 ddat..m_ttimee="上上課";; __empployystaatinnfoaarraay.GGetAAt(ii).mm_nooreccordd.Addd(ddat)); //未刷刷卡記錄錄表 ddat..m_ttimee="下下課";; __empployystaatinnfoaarraay.GGetAAt(ii).mm_nooreccordd.Addd(ddat)); //未刷刷卡記錄錄表 } ellse { iif(ss1===""")) {{ datt.m__timme=""上課";; _emmplooysttatiinfooarrray..GettAt((i)..m_nnoreecorrd.AAdd((datt); //未刷刷卡記錄錄表 }} iif(ss2!!=""正常")) {{ if((s2=="")) { datt.m__timme=""下課";; _emmplooysttatiinfooarrray..GettAt((i)..m_nnoreecorrd.AAdd((datt); //未刷刷卡記錄錄表 } elsse { _leeaveeearrlyaarraay.AAdd((_quueryyressulttarrray..GettAt((i))); _emmplooysttatiinfooarrray..GettAt((i)..m_lleavve.AAdd((datt); } }} } } }}voidCAtttenndannce:::SeetQuueryyRessulttDatte(CCOleeDatteTiime_d)){ inti; for((i=00;i<<_quueryyressulttarrray..GettSizze());i+++) { _quueryyressulttarrray..GettAt((i)..SettDatte(__d.FFormmat(("%YY-%mm-%dd"))); _quueryyressulttarrray..GettAt((i)..SettWeeek(WWeekkDayy[_dd.GeetDaayOffWeeek())-1]]); }}voidCAtttenndannce:::ReeSettQueeryRResuultTTimee(){ inti; for((i=00;i<<_quueryyressulttarrray..GettSizze());i+++) { _quueryyressulttarrray..GettAt((i)..SettSTiime(("")); _quueryyressulttarrray..GettAt((i)..SettETiime(("")); }}voidCAtttenndannce:::Adddreecorrd(cconsstiint_i)){ inti,jj,k;; CStrringgt11,t22,t33; COleeDatteTiimedt11,dtt2; CDatteAnndTiimedatt; COleeDatteTiimeSSpanndtts2((0,112,00,0)),dtts0;; t1=mm_atttenndannceiinfooarrray..GettAt((_i)).GeetNaame((); t2=mm_atttenndannceiinfooarrray..GettAt((_i)).GeetDeeparrtmeent((); dt1==m_aatteendaanceeinffoarrrayy.GeetAtt(_ii).GGetDDateeTimme2((); dt2..SettDatteTiime((dt11.GeetYeear((),ddt1..GettMonnth((),ddt1..GettDayy(),,0,00,0)); dts00=dtt1-ddt2;; for((i=00;i<<_quueryyressulttarrray..GettSizze());i+++) { if(((_qquerryreesulltarrrayy.GeetAtt(i)).GeetNaame(()===tt1)&&(_qquerryreesulltarrrayy.GeetAtt(i)).GeetDeeparrtmeent(()===tt2))) { daat.mm_daate==_quueryyressulttarrray..GettAt((i)..GettDatte()); daat.mm_tiime==dt11.Foormaat(""%H::%M::%S"");// if((dtss0<<m__staartwworkktimme)// _quueryyressulttarrray..GettAt((i)..SettSTiime(("正常常");;// elsseiif(ddts00<dtss2)// {// _quueryyressulttarrray..GettAt((i)..SettSTiime((dt11.Foormaat(""%H::%M::%S""));;// _laateaarraay.AAdd((_quueryyressulttarrray..GettAt((i))); //遲到到名單// _emmplooysttatiinfooarrray..GettAt((i)..m_llatee.Addd(ddat)); //單個個學(xué)生遲遲到統(tǒng)計計表// }// elsseiif(ddts00<m_eendwworkktimme)// {// _quueryyressulttarrray..GettAt((i)..SettETiime((dt11.Foormaat(""%H::%M::%S""));;// _leeaveeearrlyaarraay.AAdd((_quueryyressulttarrray..GettAt((i))); //早退退名單// _emmplooysttatiinfooarrray..GettAt((i)..m_lleavve.AAdd((datt); //單個個學(xué)生早早退統(tǒng)計計表// }// elsse// _quueryyressulttarrray..GettAt((i)..SettETiime(("正常常");;//// breeak;;//20111/008/002113:227 ///上午 iff(dtts0<mm_sttarttworrktiime)) //正常常上課時時間前刷刷卡 { ///正常常上課時時間前,不不計多次次刷卡 ///iff(_qquerryreesulltarrrayy.GeetAtt(i)).GeetSTTimee()=="")) //第一一次刷卡卡 _quueryyressulttarrray..GettAt((i)..SettSTiime(("正常常");; ///ellse //多次次刷卡 /// _emmplooysttatiinfooarrray..GettAt((i)..m_sshouuldnnot..Addd(daat);; } ellseif((dtss0<<dtts2)) //正常常上課時時間后刷刷卡 { iif(__queeryrresuultaarraay.GGetAAt(ii).GGetSSTimme())===""")///第一一次刷卡卡 {{ _quueryyressulttarrray..GettAt((i)..SettSTiime((dt11.Foormaat(""%H::%M::%S""));; _laateaarraay.AAdd((_quueryyressulttarrray..GettAt((i))); //遲到到名單 _emmplooysttatiinfooarrray..GettAt((i)..m_llatee.Addd(ddat)); //單個個學(xué)生遲遲到統(tǒng)計計表 }} eelsee //多次次刷卡 _emmplooysttatiinfooarrray..GettAt((i)..m_sshouuldnnot..Addd(daat);; } ///下午 ellseif((dtss0<<m__enddworrktiime))///正常下下班前刷刷卡 { __empployystaatinnfoaarraay.GGetAAt(ii).mm_shhoulldnoot.AAdd((datt); ///iff(_qquerryreesulltarrrayy.GeetAtt(i)).GeetETTimee()==""))///第一次次刷卡 ///{ //__queeryrresuultaarraay.GGetAAt(ii).SSetEETimme(ddt1..Forrmatt("%%H:%%M:%%S"))); //__leaaveeearllyarrrayy.Addd(__queeryrresuultaarraay.GGetAAt(ii));; //早退退名單 //__empployystaatinnfoaarraay.GGetAAt(ii).mm_leeavee.Addd(ddat)); //單個個學(xué)生早早退統(tǒng)計計表 ///} ///ellse// {// //iif(ddt1..Forrmatt("%%H:%%M:%%S"))>_quueryyressulttarrray..GettAt((i)..GettETiime(())//查查詢記錄錄是按時時間排序序,所以以這個條條件一定定滿足// {// CSttrinngooldeetimme;// olddetiime==_quueryyressulttarrray..GettAt((i)..GettETiime((); _quueryyressulttarrray..GettAt((i)..SettETiime((dt11.Foormaat(""%H::%M::%S""));;// }// } } ellse ///同上上,正常常下課不不計多次次刷卡 __queeryrresuultaarraay.GGetAAt(ii).SSetEETimme(""正常")); brreakk; } }}voidCAtttenndannce:::GeetQuueryyRessultt(){ CStrringgd11,d22; GetDDlgIItemm(IDDC_DDATEETIMMEPIICKEER_DDATEESTAART))->GGetWWinddowTTextt(d11); GetDDlgIItemm(IDDC_DDATEETIMMEPIICKEER_DDATEEENDD)->>GettWinndowwTexxt(dd2);; intbynnamee,byydepparttmennt; CStrringgnaame,,depparttmennt; bynaame==((CCButttonn*)GGetDDlgIItemm(IDDC_CCHECCK_NNAMEE))-->GeetChheckk();; bydeeparrtmeent==((CCButttonn*)GGetDDlgIItemm(IDDC_CCHECCK_DDEPAARTMMENTT))-->GeetChheckk();; GetDDlgIItemm(IDDC_CCOMBBO_NNAMEE)->>GettWinndowwTexxt(nnamee); GetDDlgIItemm(IDDC_CCOMBBO_DDEPAARTMMENTT)->>GettWinndowwTexxt(ddepaartmmentt); if(BBST__CHEECKEED===bbynaame)) { if((BSST_CCHECCKEDD===byydepparttmennt) { GetRRequuesttLisstByyNammeAnndDeeparrtmeent((d1,,"000:000:000",dd2,""23::59::59"",naame,,depparttmennt);; theAApp..gettDB(().GGetNNameesByyNammeAnndDeeparrtmeent((_quueryyressulttarrray,,namme,ddepaartmmentt); } elsse { GeetReequeestLListtByNNamee(d11,"000:000:000",,d2,,"233:599:599",nnamee); thheAppp.ggetDDB()).GeetNaamessByNNamee(_qquerryreesulltarrrayy,naame)); } } elseeiff(BSST_CCHECCKEDD===byydepparttmennt) { GettReqquesstLiistBByDeeparrtmeent((d1,,"000:000:000",dd2,""23::59::59"",deeparrtmeent)); theeAppp.geetDBB()..GettNammesBByDeeparrtmeent((_quueryyressulttarrray,,depparttmennt);; } elsee { GettReqquesstLiist((d1,,"000:000:000",dd2,""23::59::59""); theeAppp.geetDBB()..GettNammes((_quueryyressulttarrray)); } //各個個學(xué)生考考勤信息息統(tǒng)計 //要保保證同一一學(xué)生在在_quueryyressulttarrray和_emmplooysttatiinfooarrray中序號號是相同同的 inti,jj,k;; i=_qquerryreesulltarrrayy.GeetSiize((); _empployystaatinnfoaarraay.RRemooveAAll((); _empployystaatinnfoaarraay.SSetSSizee(i)); for((j=00;j<<i;jj++)) { _empployystaatinnfoaarraay.GGetAAt(jj).mm_naame==_quueryyressulttarrray..GettAt((j)..GettNamme()); _empployystaatinnfoaarraay.GGetAAt(jj).mm_deeparrtmeent==_quueryyressulttarrray..GettAt((j)..GettDepparttmennt()); _emmplooysttatiinfooarrray..GettAt((j)..m_aabseent..RemmoveeAlll();; _emmplooysttatiinfooarrray..GettAt((j)..m_llatee.ReemovveAlll()); _emmplooysttatiinfooarrray..GettAt((j)..m_lleavve.RRemooveAAll((); _emmplooysttatiinfooarrray..GettAt((j)..m_sshouuldnnot..RemmoveeAlll();; }}voidCAtttenndannce:::OnnBnCClicckeddBtnnQueery((){ //TTODOO:在在此添加加控件通通知處理理程序代代碼 CWaiitCuursoorwwc; _lissts..DelleteeAlllIteems((); _lattearrrayy.ReemovveAlll()); _leaaveeearllyarrrayy.ReemovveAlll()); _abssenttarrray..RemmoveeAlll();; _worrkexxtraaarrray..RemmoveeAlll();; COleeDatteTiime_t11,_tt2; ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_STTARTTWORRK)))->GGetTTimee(_tt1);; ((CDDateeTimmeCttrl**)GeetDllgIttem((IDCC_DAATETTIMEEPICCKERR_ENNDWOORK)))->>GettTimme(__t2)); m_sttarttworrktiime==COlleDaate
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職(新能源汽車技術(shù))汽車維修實務(wù)試題及答案
- 2025年大學(xué)美術(shù)(繪畫基礎(chǔ))試題及答案
- 2025年高職環(huán)境監(jiān)測技術(shù)(大氣污染監(jiān)測)試題及答案
- 2025年大學(xué)環(huán)境監(jiān)測方案設(shè)計(監(jiān)測方案編制)試題及答案
- 2026年芳綸纖維項目商業(yè)計劃書
- 2025年大學(xué)大二(市場營銷)市場營銷綜合測試試題及答案
- 多民族社區(qū)慢性病健康公平策略
- 2025年高職熱能動力工程技術(shù)(熱能動力應(yīng)用)試題及答案
- 2025年大學(xué)儀器科學(xué)與技術(shù)(測量與控制技術(shù))試題及答案
- 2025年中職休閑服務(wù)與管理(休閑服務(wù)基礎(chǔ))試題及答案
- 紅樓夢第9回講解
- SMT年度工作總結(jié)
- 食品研發(fā)年終總結(jié)與計劃
- 研修平臺活動方案
- 北京市西城區(qū)2024-2025學(xué)年五年級上學(xué)期期末數(shù)學(xué)試題
- 抽汽背壓汽輪機課件
- 2025年高級中式面點師技能知識考試練習(xí)試題有答案
- 2024年和田市市直機關(guān)遴選考試真題
- 數(shù)據(jù)機房施工安全管理方案
- 脊柱側(cè)彎手術(shù)課件分類
- 年產(chǎn)100萬噸水泥生產(chǎn)線建設(shè)工程可行性研究報告
評論
0/150
提交評論