基于校園卡的學生綜合成績管理系統(tǒng)設計_第1頁
基于校園卡的學生綜合成績管理系統(tǒng)設計_第2頁
基于校園卡的學生綜合成績管理系統(tǒng)設計_第3頁
基于校園卡的學生綜合成績管理系統(tǒng)設計_第4頁
基于校園卡的學生綜合成績管理系統(tǒng)設計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

前言隨著科技的不斷發(fā)展以及計算機加速推廣普及,對非接觸式IC卡的使用已經(jīng)變得很普遍了,它在我們?nèi)粘I詈凸ぷ髦姓l(fā)揮著越來越重要的作用。非接觸式IC卡也稱為無觸點集成電路卡、射頻卡或非接觸式智能卡。非接觸式IC卡具通訊速率高的特點,不需要拔插的過程,在很短的時間內(nèi)就可以完成對卡片的操作,所以非接觸式IC卡非常適用于對交易速度要求高、刷卡人口比較集中的場合,如地鐵、高速公路的進出口、門禁、公交等環(huán)境。目前,非接觸式IC卡在全國各個高校中已經(jīng)得到廣泛的使用,校園卡即為非接觸式IC卡。每個學生都有一張作為其身份標識的校園卡,卡內(nèi)數(shù)據(jù)區(qū)不僅記錄了該學生的學號、姓名、班級等信息,還可以作為消費卡在校園內(nèi)進行消費。而在學校的日常教學管理中,若能進行借助校園卡來對學生的上課情況進行考勤及計算學生綜合成績,就可以有效地地節(jié)約課堂考勤的時間,方便教師統(tǒng)計出勤率,高效教師的期末工作。本系統(tǒng)為基于校園卡的學生綜合成績管理系統(tǒng)設計,利用面向?qū)ο缶幊痰姆椒ǎㄟ^使用VisualStudio2010的平臺來搭建了處理和設置考勤下位機(單片機)的C#上位機軟件,其中設置了以下幾個功能:上下位機串口通信處理,啟動存卡/刷卡,界面的自定義,課程信息管理,學生基本信息管理,對下位機區(qū)域進行初始化,對下位機進行時間校正,考勤成績計算和綜合成績計算等。

2學生綜合成績管理系統(tǒng)設計2.1需求分析學生綜合成績作為考評學生一學期的表現(xiàn)的指標,是校園學習生活中非常重要的一部分。學生綜合成績由多方面組成,主要包括期末考試成績和平時成績(多為考勤成績)及實驗成績(或作業(yè)成績)。但傳統(tǒng)的校園考勤方式,即點名方式不僅十分繁瑣低效,還會浪費寶貴的課堂時間。本系統(tǒng)就是為了有效解決這一難題而設計的。本系統(tǒng)通過下位機如實且準確地記錄學生的出席情況,并且具備一個學期的長時間,大數(shù)據(jù)量的存儲,最多可以同時記錄四門課程每周兩次的考勤信息。任課老師可在任意時間將任何課程的考勤信息進行匯總來查閱學生的日常考勤記錄,該系統(tǒng)會將統(tǒng)計出來的曠課和遲到的情況作為基礎,按照教師的設置來計算平時成績給分以及最后的綜合成績。此舉可以大大簡化學生綜合成績管理的繁瑣性,提高教師的工作效率。2.2系統(tǒng)結(jié)構(gòu)設計根據(jù)對實際情況的分析,并考慮到教師的實際要求和軟件結(jié)構(gòu)的合理性,將本系統(tǒng)分為上位機和下位機兩部分軟件。上位軟件采用C#語言在VisualStudio2010平臺上,以一種友好界面的形式呈現(xiàn)出來,提升軟件的可操作性。其主要功能是發(fā)送指令來操控下位機各種功能,和接收下位機所采集的考勤數(shù)據(jù),并將這些數(shù)據(jù)加以處理和統(tǒng)計,然后根據(jù)需要以EXCEL文件的形式輸出綜合成績列表。而下位機則是由STC12C5A32S2單片機為核心的開發(fā)板組成,主要完成考勤信息采集的工作,并具有數(shù)字鐘功能,數(shù)據(jù)存儲,數(shù)據(jù)串口傳輸?shù)裙δ?,同時有密碼保護機制用來保護下位機的數(shù)據(jù)安全。

2.2.1系統(tǒng)式樣圖設置信息設置信息上位機(計算機)上位機(計算機)下位機(單片機)導出校園卡采集信息傳送數(shù)據(jù)課程信息班級信息學號及卡號準到、曠課、遲到次數(shù)考勤成績其他(實驗)成績(待錄入)期末成績(待錄入)綜合成績(自動計算)Excel文件

2.2.2主程序流程圖導出校園卡采集信息傳送數(shù)據(jù)課程信息班級信息學號及卡號準到、曠課、遲到次數(shù)考勤成績其他(實驗)成績(待錄入)期末成績(待錄入)綜合成績(自動計算)Excel文件

3主程序設計3.1分模塊介紹本程序中使用了C#語言。C#是現(xiàn)今使用人數(shù)最多的語言之一,它是Microsoft公司所推出的一款一種面向?qū)ο蟮?、運行于.NETFramework之上的高級程序設計語言。C#在繼承了C和C++強大功能的同時,去掉了一些它們的復雜特性(例如沒有宏以及不允許多重繼承),并綜合了VB簡單的可視化操作和C++的高運行效率,具有強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性等特點。面向?qū)ο笾械膶ο笾傅氖穷惖募?,而類的操作讓每個對象都能夠接收信息、處理數(shù)據(jù)和向其它對象發(fā)送信息,使得程序具有了很好的重用性、靈活性和擴展性。在本程序中,分別創(chuàng)建了以下幾個類:Form1,ClassInfo、StudentInfo、Command、ReadDataAdapter、WriteDataAdapter、DisPlayInForm、ExcelOut等,來進行信息的整合和數(shù)據(jù)的轉(zhuǎn)換等操作。下面來具體介紹這些類的功用:Form1類:即與可視化界面對應的類,負責傳送前臺數(shù)據(jù)至后臺,并顯示和處理后臺傳送過來的信息。ClassInfo類:存儲了所有與課程相關(guān)的信息,可以通過它來設置下位機的課程信息,也可以通過它來讀取上傳來的課程數(shù)據(jù)。StudentInfo類:存儲了與學生相關(guān)的信息,包括:學號,卡號,出勤情況(準到次數(shù),遲到次數(shù),曠課次數(shù))等。該類是用來將下位機上傳的數(shù)據(jù)分配到每一個學生中,并可以用來計算該學生的考勤狀況。Command類:存儲了所有上位機發(fā)出的主機命令,調(diào)用它來生成和使用各個命令。ReadDataAdapter類:上傳數(shù)據(jù)適配器,通過比較起始位、校驗位等信息確保下位機上傳的數(shù)據(jù)正確,并要將上傳的大量數(shù)據(jù)正確地匹配到課程信息和各個學生的信息中去。WriteDataAdapter類:寫入數(shù)據(jù)適配器,將想要發(fā)送給下位機的數(shù)據(jù),轉(zhuǎn)化成通信協(xié)議規(guī)定的格式,為其加上起始位、校驗位、結(jié)束位等信息。DisPlayInForm類:將詳細的課程信息及學生基本考勤數(shù)據(jù)以DataGirdView表格的形式顯示在From中去。ExcelOut類:將DataGirdView表格中的數(shù)據(jù),一對一的在Excel中輸出,并進行一定的格式布局以及數(shù)據(jù)計算。這些類的創(chuàng)建,使得程序中大量的數(shù)據(jù)操作變得直觀而簡單,也使得程序的可讀性和擴展性增強,展示出了面向?qū)ο蟮木幊痰膬?yōu)勢。3.2C#串口程序介紹現(xiàn)在大多數(shù)便攜式硬件設備均采用串口技術(shù)與計算機相連,因此串口的應用程序開發(fā)越來越普遍。例如,在計算機如果沒有安裝網(wǎng)卡,若將本機上的一些信息數(shù)據(jù)傳輸?shù)礁浇牧硪慌_計算機上,那么完全可以利用計算機上的串口通信來實現(xiàn)。上位機的程序設計主要通過調(diào)用VisualStudio2010C#的SerialPort(串行通信控件)來實現(xiàn),SerialPort類主要實現(xiàn)串口數(shù)據(jù)通信等。下面主要介紹上位機程序中使用到該類的主要屬性和方法。所用參數(shù) 參數(shù)說明ReadBufferSize 設置或獲取讀緩存區(qū)的大小,默認為4KBaudRate 獲取或設置串行波特率BytesToRead 獲取接收緩沖區(qū)中數(shù)據(jù)的字節(jié)數(shù)BytesToWrite 獲取發(fā)送緩沖區(qū)中數(shù)據(jù)的字節(jié)數(shù)DataBits 獲取或設置每個字節(jié)的標準數(shù)據(jù)位長度IsOpen 獲取一個值,指示SerialPort對象的開或關(guān)狀態(tài)Parity 獲取或設置奇偶校驗檢查協(xié)議PortName 設置通信端口,包括但不限于所有可用的COM端口ReadTimeout 獲取或設置讀取操作未完成時發(fā)生超時之前的毫秒數(shù)ReceivedBytesThreshold獲取或設置DataReceived事件發(fā)生前內(nèi)部輸入緩沖區(qū)中的字節(jié)數(shù)StopBits 獲取或設置每個字節(jié)的標準停止位數(shù)WriteBufferSize 獲取或設置串行端口輸出緩沖區(qū)的大小、所用方法 方法說明Close 關(guān)閉端口連接,并釋放對象內(nèi)部Stream對象Open 建立一個新的串口連接Read 從SerialPort對象的輸入緩存中讀取數(shù)據(jù)Write 已重載。將數(shù)據(jù)寫入串口的輸出緩沖區(qū)在Microsoft公司的VisualStudio2010當中,提供了SerialPort類的功能,可以十分方便地使用串口通信。在本系統(tǒng)中,PC機主要負責數(shù)據(jù)的接受、處理和存儲,在接受完數(shù)據(jù)的同時,對數(shù)據(jù)進行處理,直接統(tǒng)計出考勤結(jié)果,并按一定的方式保存在EXCEL中,并計算出學生的考勤成績和綜合成績,為任課教師省去了繁瑣的學生綜合成績計算的工作。而下位機,也就是單片機,只負責數(shù)據(jù)采集的工作,然后用串口通訊的方式將數(shù)據(jù)上傳給PC上位機。在上位機的程序設計當中,最關(guān)鍵的地方就是如何進行PC機與單片機的通信,即如何將單片機上的數(shù)據(jù)傳送到PC上位機,以及如何處理從單片機上接受到的數(shù)據(jù)。為了上位機軟件程序使用的友好性,本系統(tǒng)中使用了VisualStudio2010中的From這一界面開發(fā)工具來進行界面設置和編輯,并通過調(diào)用其中的SerialPort類來處理串口通信的問題。SerialPort類提供了強大的串口設置功能,通過它可以方便的使用計算機與下位機之間的串口通信功能。3.3程序效果圖以下圖1~圖5為本設計的程序效果圖:圖1Tab1的界面顯示【主要功能】:1. 串口設置1)默認設置連接2)高級設置連接2. 基礎操作:1)對下位機操作:a.啟動刷卡b.啟動存卡c.設置時間d.初始化區(qū)域;2)界面操作:a.更換壁紙b.更換背景色c.設置字體;3. 課程信息設置圖2Tab2界面顯示【主要功能】:1.讀取數(shù)據(jù)2.寫入數(shù)據(jù)3.導出Excel圖3讀取數(shù)據(jù)功能圖4Excel導出文件示例1圖5Excel導出文件示例24.1下位機硬件構(gòu)成4.1.1液晶顯示圖6液晶顯示圖7液晶原理圖在本考勤系統(tǒng)中,由于需要顯示的信息較多,也較為復雜,簡單的七段數(shù)碼管只能顯示數(shù)字和少量字符,功能往往受到局限,對于較復雜的字符或圖形則無能為力,這遠不能滿足人機交互顯示界面的要求。而液晶顯示模塊則是一種低功耗、低損耗顯示器件,它不僅僅可以顯示各式各樣的字符、漢字和圖形,而且方便與單片機對接。4.1.2刷卡模塊圖8刷卡模塊及其原理圖非接觸式IC卡讀寫器將需要發(fā)送的信息經(jīng)編碼后加載到一個固定頻率的載波上,卡片內(nèi)有一個諧振電路,其頻率與讀寫器發(fā)送的載波頻率相同,當非接觸式IC卡進入讀寫器的工作區(qū)域后,諧振電路產(chǎn)生共振并產(chǎn)生電荷積累,當電荷積累到一定數(shù)值時,就能為卡內(nèi)的電路提供工組電壓、復位信號、系統(tǒng)時鐘,讀寫器發(fā)送的數(shù)據(jù)信息經(jīng)過卡內(nèi)射頻接口模塊解碼,由控制單元來判斷這些信息的要求和合理性,然后進行處理,最終決定是否對EEPROM內(nèi)的數(shù)據(jù)進行改寫或輸出。4.1.3串口模塊(RS232-USB模塊)圖9串口模塊原理圖根據(jù)實際的情況,綜合便利性以及成本的考慮,這里采用PL2303HX芯片為核心轉(zhuǎn)換電路,不僅合理地解決了單片機與上位機數(shù)據(jù)傳遞的問題,避免了使用串口數(shù)據(jù)線的不便,還額外為整個板子提供電源,省去了電源適配器的成本。PL2303HX是一種高度集成的RS232-USB接口轉(zhuǎn)換器,可提供一個RS232全雙工異步串行通信裝置與USB功能接口便利聯(lián)接的解決方案。該器件內(nèi)置USB功能控制器、USB收發(fā)器、振蕩器和帶有全部調(diào)制解調(diào)器控制信號的UART,只需外接幾只電容就可實現(xiàn)USB信號與RS232信號的轉(zhuǎn)換,能夠方便嵌入到手持設備。該器件作為USB/RS232雙向轉(zhuǎn)換器,一方面從主機接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設;另一方面從RS232外設接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回主機。通過利用USB塊傳輸模式,利用龐大的數(shù)據(jù)緩沖器和自動流量控制,PL2303HX能夠?qū)崿F(xiàn)比傳統(tǒng)的UART(通用異步收發(fā)器)端口更高的吞吐量,高達115200bps的波特率可用于更高的性能使用。4.1.4按鍵模塊圖10按鍵模塊原理圖為了提高單片機I/O口的使用效率,這里利用STC單片機本身所具有的AD轉(zhuǎn)換功能,采用上圖所示特殊的并聯(lián)方式來設計按鍵。這里的AD轉(zhuǎn)換模塊擁有30萬次/秒的轉(zhuǎn)換速度,最高精度可以達到10位,在5V的工作電壓下,最小精度可以達到0.005V。而本電路各按鍵的所對應的電壓分別為:1.064V,0.532V,0.355,0.266V,0.213V,0.177V,最小間隔為0.036V,大于AD模塊的最小可分辨的電壓,這種設計模式在只占用一個端口的情況下,可以使用六個按鍵,節(jié)約了單片機的資源,節(jié)省了成本。4.2上下位機通信協(xié)議4.2.1幀發(fā)送幀:起始位地址命令字長度N12…N校驗1校驗1結(jié)束位0xaa012個字節(jié)CS1CS20xee接收幀:起始位地址命令字狀態(tài)長度N12…N校驗1校驗2結(jié)束位0xaa012個字節(jié)CS1CS20xee說明:長度N:命令為A,B,C,D時,長度為0,一次讀全部扇區(qū);命令為E,F,G,H時,長度為18,校驗1:從“地址”開始至”N”字節(jié)相異或后取反;校驗2:從“地址”開始至”N”字節(jié)數(shù)據(jù)算術(shù)和4.2.2命令與狀態(tài)命令/狀態(tài):主機給從機為命令,從機給主機是狀態(tài)(88-正常,其他為ER錯誤);主機給從機命令有:命令A(0X41):讀存儲區(qū)域1的信息,共5個扇區(qū),一次讀5x512個字節(jié),長度為0命令B(0X42):讀存儲區(qū)域2的信息,共5個扇區(qū),一次讀5x512個字節(jié),長度為0命令C(0X43):讀存儲區(qū)域3的信息,共9個扇區(qū),一次讀9x512個字節(jié),長度為0命令D(0X44):讀存儲區(qū)域4的信息,共9個扇區(qū),一次讀9x512個字節(jié),長度為0命令E(0X45):寫區(qū)域信息1信息,長度為18個字節(jié),第19個字節(jié)由下位機改寫命令F(0X46):寫區(qū)域信息2信息,長度為18個字節(jié),第19個字節(jié)由下位機改寫命令G(0X47):寫區(qū)域信息3信息,長度為18個字節(jié),第19個字節(jié)由下位機改寫命令H(0X48):寫區(qū)域信息4信息,長度為18個字節(jié),第19個字節(jié)由下位機改寫命令I(lǐng)(0X49):啟動刷卡,長度為0命令J(0X4A):啟動存卡,長度為0命令K(0X4B):初始化區(qū)域1,2,3,4。刪除卡號,課程信息及課程記錄。長度為1,后跟區(qū)域號命令L(0X4C):設置時間,寫入DS1302中:順序為秒,分,時,日,月,星期,年;長度為7,按上述順序?qū)懭搿F渲?,區(qū)域(1,2,3,4)的意思是:第幾個512字節(jié)的位置,從0開始到4或0到8。4.2.3下位機EEPROM資源分配EEPROM(電可擦寫可編程只讀存儲器)是用戶可更改的只讀存儲器(ROM),其可通過高于普通電壓的作用來擦除和重編程(重寫)。不像EPROM芯片,EEPROM不需從計算機中取出即可修改。EEPROM的一種特殊形式是閃存,其應用通常是個人電腦中的電壓來擦寫和重編程,可以擦寫100000次以上。作為學生綜合成績管理系統(tǒng),其核心的功能就是考勤信息的采集。在多課程的考勤信息同時采集以及長達一個學期的工作后,勢必會收集到大量的考勤信息。如何在長達一個學期的時間中安全可靠地保存這些考勤信息是一個十分關(guān)鍵的問題。結(jié)合EEPROM可反復擦寫,大容量存儲以及掉電后數(shù)據(jù)部丟失的特點,最終采用了EEPROM來存儲這些考勤信息,有效地解決了這一難題。而本系統(tǒng)所使用的STC12C5A32S2這款單片機,其本身就內(nèi)置有EEPROM,這不僅可以節(jié)省片外資源,減小了成本,使用起來也會更加方便,這也是本考勤系統(tǒng)之所以采用這款單片機的原因之一。EEPROM資源分配:存儲區(qū)域1:000-9FF,共5x512存儲區(qū)域2:A00-13FF,共5x512存儲區(qū)域3:1400-25FF,共9x512存儲區(qū)域4:2600-37FF,共9x512存儲區(qū)域5:3800-49FF,共9x512為了在管理大量的考勤信息的同時,又不會過多占用單片機的資源。因此在考勤系統(tǒng)中,28K的EEPROM被劃分成5個區(qū)域,前4個區(qū)域分別存儲四門課程的考勤信息,而存儲區(qū)域5主要用來存儲漢字字庫等信息,這樣的設計可以大大簡化數(shù)據(jù)管理的復雜度,解放更多的單片機資源。一般情況下,課程每周會有一次或者兩次考勤,即其各自所需考勤信息的存儲大小不同??紤]到這一實際情況,這4個區(qū)域被劃分成兩種大小,因此,我將區(qū)域1和2用來存儲每周考勤一次的課程,而其它2個區(qū)域中兩種課程都可以存儲??记谛畔⒂蓛刹糠纸M成,分別是“卡號”和“學生到達教室時間與上課時間之差”,卡號由4個字節(jié)組成,而時間差是由1個有符號字節(jié)存儲,即每組信息共有5個字節(jié)。這樣的設計是考慮到EEPROM的資源緊張,為了提高其利用率,也是節(jié)約成本的方法。每個存儲區(qū)域的第一個扇區(qū)存放學生的卡號,現(xiàn)最多100個學生,每個卡號有4個字節(jié),并且該扇區(qū)最后一個字節(jié)用來存儲該課程信息。5綜合成績管理5.1課程信息管理每個存儲區(qū)域的第一個扇區(qū)地址為:0511,其中480511放如下信息:480481482483484485486487488489490491492493494495學院年級專業(yè)班年度年度學期課程周次星期時分星期時分區(qū)域496497498499500501502503504505506507508509510511人數(shù)開關(guān)次數(shù)學院:1,2,3,4年級:10級為0X10,為8421BCD碼專業(yè):1,2,3,4年度:10年為0X10,為8421BCD碼課程:1,2,3,4,5,6,7,8星期:1星期一,2星期二,………….6星期六,0星期天時/分:均為8421BCD碼人數(shù):為16進制數(shù)開關(guān):開1,關(guān)0說明:496為學生人數(shù),497為這門課是否開講,511為共上了幾次課,刷了幾次卡(每次刷卡自動加一)在本設計中,設置了讀取區(qū)域課程信息和寫入?yún)^(qū)域課程信息兩種功能。由于課程信息存儲在固定的位置,在讀取某區(qū)域信息時,程序?qū)⒆詣幼x出該區(qū)域的課程信息,并匹配到視圖表格中,方便老師統(tǒng)計。而在寫入?yún)^(qū)域課程信息時,只需要選擇畫面上的各個項目的下拉框中的選項,單擊寫入課程即可。5.2學生基本信息管理每個區(qū)域的地址0~400:存放學生的卡號,最多100個學生,每個卡號有4個字節(jié),共占4x100=400字節(jié)。在讀取某區(qū)域信息時,程序會自動匹配該學生的基本信息(卡號)與該學生的簽到情況。5.3初始化管理每個區(qū)域的地址0~400:存放學生的卡號,最多100個學生,每個卡號有4個字節(jié),共占4x100=400字節(jié)。本設計中可以通過上位機來對下位機某個區(qū)域進行初始化,清楚該區(qū)域的課程信息,學生信息以及簽到情況等。5.4時間校正管理本設計中,可以通過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論