摘 要:本文介紹了基于Android平臺(tái)的學(xué)生簽到系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。由于傳統(tǒng)的點(diǎn)名方式既費(fèi)時(shí)又費(fèi)力還無(wú)法解決學(xué)生代簽的問(wèn)題,因此該項(xiàng)目通過(guò)Android平臺(tái)和GPS定位系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了學(xué)生注冊(cè)、登錄,利用GPS定位發(fā)送位置進(jìn)行簽到的基本功能。這樣開(kāi)發(fā)完成的學(xué)生簽到系統(tǒng)運(yùn)行穩(wěn)定,可用性好,方便快捷。
關(guān)鍵詞:學(xué)生簽到系統(tǒng);Android平臺(tái);GPS定位系統(tǒng)
中圖分類(lèi)號(hào):TP312.1 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
現(xiàn)代社會(huì),隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展和迅速崛起我們的生產(chǎn)生活方式也發(fā)生了巨大的變化。同時(shí)由計(jì)算機(jī)設(shè)計(jì)的一些軟件和系統(tǒng)為我們的生活提供了許多方便,從而也代替了一些較復(fù)雜的手工程序?;谶@種思想,本文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Android平臺(tái)的學(xué)生簽到系統(tǒng)。相比于傳統(tǒng)的點(diǎn)名方式如教師點(diǎn)名簽到方式,利用手機(jī)GPS定位發(fā)送位置進(jìn)行簽到既可以節(jié)省時(shí)間,又解決了學(xué)生代簽的問(wèn)題,既方便又快捷,也提高了課堂質(zhì)量,能夠準(zhǔn)確反映學(xué)生出勤情況。
2 系統(tǒng)與開(kāi)發(fā)環(huán)境介紹(The introduction of the
system and development environment)
2.1 系統(tǒng)介紹
Android,是一個(gè)以Linux為基礎(chǔ)的開(kāi)源移動(dòng)設(shè)備操作系統(tǒng)。該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。它采用軟件堆層的架構(gòu),主要分為三部分:底層以Linux內(nèi)核工作為基礎(chǔ),由C語(yǔ)言開(kāi)發(fā),只提供基本功能;中間層包括函數(shù)庫(kù)Library和虛擬機(jī)Virtual Machine,由C++開(kāi)發(fā)。最上層是各種應(yīng)用軟件,包括通話程序、短信程序等,應(yīng)用軟件則由各公司自行開(kāi)發(fā),以Java作為編寫(xiě)程序的一部分[1]。由于Android和操作系統(tǒng)進(jìn)行了緊密的整合并提供了許多API和工具,所以用戶可以方便地使用Android手機(jī)。
2.2 開(kāi)發(fā)環(huán)境介紹
學(xué)生簽到系統(tǒng)將Android SDK 4.0作為開(kāi)發(fā)環(huán)境,Eclipse作為開(kāi)發(fā)平臺(tái),Java作為開(kāi)發(fā)語(yǔ)言,SharedPreferences和SQLite作為數(shù)據(jù)庫(kù)。開(kāi)發(fā)過(guò)程中還需用到sqlitejdbc-v033-nested.jar包,struts及Navicat 9。sqlitejdbc-v033-nested.jar包的使用是為了支持jdbc訪問(wèn)SQLite數(shù)據(jù)庫(kù)。同時(shí),struts提供了清晰的MVC架構(gòu)和大量的標(biāo)記庫(kù),可以有效地節(jié)省開(kāi)發(fā)時(shí)間,因此本文選用struts作為開(kāi)發(fā)的框架。專(zhuān)為簡(jiǎn)化數(shù)據(jù)庫(kù)的管理及降低系統(tǒng)管理成本而設(shè)Navicat的是一套快速、可靠并價(jià)格合理的數(shù)據(jù)庫(kù)管理工具。它能簡(jiǎn)單安全地創(chuàng)建、組織并訪問(wèn)及共用信息。
3 系統(tǒng)分析(System analysis)
3.1 可行性分析
現(xiàn)代的大學(xué)課堂中,老師常常通過(guò)點(diǎn)名或?qū)W生用紙簽到的方式進(jìn)行簽到。這種傳統(tǒng)的簽到方式不僅管理復(fù)雜,統(tǒng)計(jì)困難,還浪費(fèi)時(shí)間,也無(wú)法解決學(xué)生代簽的問(wèn)題。針對(duì)這些問(wèn)題,若能夠利用現(xiàn)在我們?nèi)巳吮貍涞闹悄苁謾C(jī)進(jìn)行簽到,就可以便于教師管理,節(jié)省時(shí)間和成本,提高效率。
3.2 需求分析
3.2.1 系統(tǒng)總體需求分析
系統(tǒng)角色說(shuō)明具體如下:
根據(jù)管理系統(tǒng)的使用范圍,將用戶劃分為教師用戶和學(xué)生用戶兩類(lèi)。
(1)教師用戶:第一次使用時(shí)需要注冊(cè),再次使用時(shí)可以綁定用戶名避免頻繁登錄。開(kāi)啟簽到功能后能夠接受學(xué)生的簽到信息。
(2)學(xué)生用戶:第一次使用時(shí)首先需要注冊(cè),通過(guò)系統(tǒng)錄入自己的信息,再次使用時(shí)可綁定用戶名。待教師開(kāi)啟簽到功能后進(jìn)行定位簽到發(fā)送位置也可以隨時(shí)查詢簽到情況。
3.2.2 非功能需求
為了能夠使系統(tǒng)穩(wěn)定、安全且高效地運(yùn)行,系統(tǒng)應(yīng)該滿足以下功能需求。
(1)可擴(kuò)展性和開(kāi)放性
一個(gè)好的系統(tǒng)程序需要不斷地改進(jìn)和創(chuàng)新,因此在開(kāi)發(fā)編制本系統(tǒng)時(shí),就需要很好的可擴(kuò)展性和開(kāi)放性,使得在開(kāi)發(fā)過(guò)程中主體結(jié)構(gòu)不變,可以隨時(shí)根據(jù)用戶的需求不斷將新的功能加入到系統(tǒng)中去或者減少不必要的功能,而不必將整個(gè)系統(tǒng)大范圍改動(dòng),省時(shí)省力。
(2)易用性和易維護(hù)性
為了方便用戶的使用,提高簽到系統(tǒng)的交互流暢性,需要簡(jiǎn)化注冊(cè)流程,操作提示要出現(xiàn)在合適的位置,并且用戶如果出錯(cuò)要及時(shí)反饋,盡可能地為用戶創(chuàng)造方便,也需要為用戶提供一個(gè)簡(jiǎn)便快捷友好的操作界面。
(3)響應(yīng)速度
在用戶注冊(cè)完畢提交后,系統(tǒng)應(yīng)提高反饋速度,在短時(shí)間內(nèi)提示用戶注冊(cè)是否成功,若成功則提示“成功注冊(cè)”,若不成功則迅速返回注冊(cè),重新注冊(cè)。作為衡量學(xué)生簽到系統(tǒng)的重要性能指標(biāo)提高響應(yīng)速度是很重要的。
4 系統(tǒng)設(shè)計(jì)(System design)
4.1 系統(tǒng)基本功能模塊設(shè)計(jì):
根據(jù)本系統(tǒng)的設(shè)計(jì)需求及理念將系統(tǒng)劃分為注冊(cè)、登錄和定位簽到三個(gè)模塊。
(1)注冊(cè)模塊:教師和學(xué)生需要輸入用戶名(學(xué)生的用戶名為學(xué)號(hào))、密碼、姓名及驗(yàn)證碼,若注冊(cè)成功則提示“成功注冊(cè)”,否則返回到注冊(cè)頁(yè)面清空信息并提示錯(cuò)誤的輸入信息。
(2)登錄模塊:教師和學(xué)生需要填寫(xiě)自己已注冊(cè)的用戶名、密碼及驗(yàn)證碼,在確定后有提示信息是否記住密碼,選擇“是”則以后默認(rèn)登錄信息直接登錄。
(3)定位簽到模塊:系統(tǒng)利用Android手機(jī)的GPS定位功能進(jìn)行軟件開(kāi)發(fā)。Android關(guān)于地理定位的API主要集中在android.location軟件包內(nèi)[2]。因此可以利用Android手機(jī)提供的API從平臺(tái)的GPS模塊來(lái)獲取地理位置數(shù)據(jù),并將數(shù)據(jù)通過(guò)GPRS傳輸?shù)椒?wù)器,自動(dòng)分析人員所在區(qū)域,將定位信息發(fā)送給手機(jī)。根據(jù)系統(tǒng)設(shè)計(jì)需求將此定位簽到模塊分為兩部分。
a.教師簽到情況查詢部分:教師需要開(kāi)啟簽到功能,可設(shè)定簽到規(guī)定時(shí)間,隨后系統(tǒng)將自動(dòng)列出已簽到學(xué)生的姓名、學(xué)號(hào)和簽到位置信息。
b.學(xué)生簽到部分:待教師開(kāi)啟簽到功能后,學(xué)生首先開(kāi)啟自動(dòng)定位功能,點(diǎn)擊“定位”鍵,并將已定位到的位置在對(duì)話欄里發(fā)送。
圖1 學(xué)生簽到系統(tǒng)總體需求用例圖
Fig.1 The use case diagram of students' overall
demand on the signing system
4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)存儲(chǔ)是在Android系統(tǒng)開(kāi)發(fā)中一項(xiàng)很重要的技術(shù),在Android系統(tǒng)開(kāi)發(fā)中常見(jiàn)的四種數(shù)據(jù)存儲(chǔ)方式有文件存儲(chǔ)數(shù)據(jù)、SharedPreferences存儲(chǔ)數(shù)據(jù)、Content Provider存儲(chǔ)數(shù)據(jù)和SQLite數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)[3]。其中SharedPreferences是Android平臺(tái)上一個(gè)輕量級(jí)的存儲(chǔ)類(lèi),用來(lái)保存一些標(biāo)志位狀態(tài)和一些常用配置。SQLite是一款輕型的數(shù)據(jù)庫(kù),占用資源低,處理速度快。因此根據(jù)它們的特點(diǎn)本系統(tǒng)采用了SharedPreferences和SQLite數(shù)據(jù)庫(kù)兩種存儲(chǔ)方式用來(lái)存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)通信接口采用JDBC,通過(guò)JDBC向數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)API,可以用Java API編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。根據(jù)系統(tǒng)功能設(shè)計(jì)要求及功能模塊劃分,系統(tǒng)主要數(shù)據(jù)表如表1—表3所示。
表1 學(xué)生信息表
Tab.1 Studentsinformation table名稱 字段名稱 數(shù)據(jù)類(lèi)型 約束
用戶名 Id integer 主鍵
密碼 password varchar Not Null
姓名 Name text Not Null
表2 簽到信息表
Tab.2 The signing information table
名稱 字段名稱 數(shù)據(jù)類(lèi)型 約束
簽到號(hào) Id integer 主鍵
學(xué)生賬戶 student_id varchar Not Null
簽到日期 Date date Not Null
簽到時(shí)間 signtime time Not Null
表3 簽到參數(shù)表
Tab.3 The parameter table 名稱 字段名稱 數(shù)據(jù)類(lèi)型 約束
參數(shù)記錄號(hào) Id integer 主鍵
簽到地點(diǎn) place varchar Not Null
簽到點(diǎn)經(jīng)度坐標(biāo) longitude float Not Null
簽到點(diǎn)緯度坐標(biāo) latitude float Not Null
5 結(jié)論(Conclusion)
基于Android平臺(tái)開(kāi)發(fā)的學(xué)生簽到系統(tǒng)將手機(jī)自帶的GPS定位功能和Java編程相結(jié)合來(lái)讀取GPS信息獲取學(xué)生位置。這樣設(shè)計(jì)實(shí)現(xiàn)的簽到系統(tǒng)方便了教師的教學(xué)管理,解決了學(xué)生代簽的問(wèn)題,提高了課堂效率。相信隨著Android手機(jī)的不斷普及和發(fā)展,這種能夠解決現(xiàn)實(shí)問(wèn)題的應(yīng)用軟件也會(huì)越來(lái)越受歡迎。
參考文獻(xiàn)(References)
[1] 安卓軟件開(kāi)發(fā)網(wǎng).Android的系統(tǒng)架構(gòu)認(rèn)識(shí),2013.
[2] 代敏.基于Android平臺(tái)下手機(jī)定位程序的設(shè)計(jì)及實(shí)現(xiàn)[J].計(jì) 算機(jī)與數(shù)字工程.2012,40(4):143-145.
[3] 尹京花,王華軍.基于Android開(kāi)發(fā)的數(shù)據(jù)存儲(chǔ)[J].數(shù)字通 信,2012,39(6):79-81.
作者簡(jiǎn)介:
白肖璇(1993-),女,本科生.研究領(lǐng)域:軟件開(kāi)發(fā).