基于Android的課堂考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(共35頁(yè))_第1頁(yè)
基于Android的課堂考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(共35頁(yè))_第2頁(yè)
基于Android的課堂考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(共35頁(yè))_第3頁(yè)
基于Android的課堂考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(共35頁(yè))_第4頁(yè)
基于Android的課堂考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(共35頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上本科畢業(yè)論文題 目基于Android的課堂考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation of Classroom Attendance System Based on Android姓 名學(xué) 號(hào)專(zhuān) 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師職 稱(chēng)副教授中國(guó)·武漢二一七年五月專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)分類(lèi)號(hào) 密級(jí)華中農(nóng)業(yè)大學(xué)楚天學(xué)院本科畢業(yè)論文 基于Android的課堂考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)Design and Implementation of Classroom Attendance System Based on Android學(xué)生姓名: 學(xué)生學(xué)號(hào):學(xué)生專(zhuān)

2、業(yè):計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師: 華中農(nóng)業(yè)大學(xué)楚天學(xué)院二一七年五月華中農(nóng)業(yè)大學(xué)楚天學(xué)院畢業(yè)論文(設(shè)計(jì))原創(chuàng)性聲明本人鄭重聲明:所呈交的畢業(yè)論文(設(shè)計(jì)),是本人在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行研究所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文(設(shè)計(jì))不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)過(guò)的作品成果。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。 作者簽名:               日 期:  年 月 日目 錄摘要I關(guān)鍵詞IAbstra

3、ctIKey wordsI1 緒論11.1 研究目的與意義11.2 國(guó)內(nèi)外的研究現(xiàn)狀11.3 本文的主要組織結(jié)構(gòu)12 系統(tǒng)開(kāi)發(fā)環(huán)境介紹22.1 Android開(kāi)發(fā)平臺(tái)基礎(chǔ)知識(shí)22.1.1 Android平臺(tái)簡(jiǎn)介22.1.2 Android的系統(tǒng)結(jié)構(gòu)22.2 課題相關(guān)的Android技術(shù)介紹32.2.1 Android終端與Web服務(wù)器數(shù)據(jù)交互32.3 開(kāi)發(fā)工具介紹33 需求分析及系統(tǒng)概要設(shè)計(jì)4 3.1 系統(tǒng)可行性分析43.2 功能需求分析53.3 數(shù)據(jù)庫(kù)設(shè)計(jì)53.4 關(guān)系模型83.5 數(shù)據(jù)庫(kù)表84 系統(tǒng)詳細(xì)設(shè)計(jì)104.1 系統(tǒng)整體架構(gòu)設(shè)計(jì)104.1.1 系統(tǒng)架構(gòu)設(shè)計(jì)104.1.2 系統(tǒng)整體架構(gòu)

4、114.2 從功能模塊看核心流程124.2.1 服務(wù)端連接設(shè)計(jì)實(shí)現(xiàn)124.2.2 登錄注冊(cè)設(shè)計(jì)實(shí)現(xiàn)124.2.3 請(qǐng)假功能模塊的實(shí)現(xiàn)134.2.4 考勤模塊實(shí)現(xiàn)144.2.5 個(gè)人中心模塊功能實(shí)現(xiàn)165 實(shí)驗(yàn)與驗(yàn)證176 系統(tǒng)測(cè)試246.1 系統(tǒng)測(cè)試方法246.2 系統(tǒng)測(cè)試過(guò)程246.3 測(cè)試總結(jié)277 設(shè)計(jì)總結(jié)27參考文獻(xiàn)28致謝29摘 要本論文介紹的是基于安卓技術(shù)的課堂考勤系統(tǒng),本軟件能夠?yàn)橛脩?hù)提供實(shí)時(shí)查看課程信息,進(jìn)行課堂簽到的功能,能夠解決當(dāng)前高校對(duì)考勤信息管理困難的問(wèn)題,對(duì)考勤信息進(jìn)行統(tǒng)一的管理,提高考勤信息的實(shí)時(shí)性和統(tǒng)一性。這樣能讓高校對(duì)考勤信息的管理變得更加方便快捷,節(jié)省人力物力

5、,為需求雙方提供了一個(gè)便利的平臺(tái)。本軟件系統(tǒng)采用Eclipse開(kāi)發(fā)環(huán)境結(jié)合Android SDK進(jìn)行設(shè)計(jì),開(kāi)發(fā)了一個(gè)基于Java語(yǔ)言的課堂考勤軟件。系統(tǒng)主要實(shí)現(xiàn)了登錄注冊(cè)、請(qǐng)假、考勤簽到、個(gè)人中心等主要功能模塊。在請(qǐng)假和考勤簽到中使用了百度定位的解決了簽到時(shí)候?qū)W(xué)生位置的定位,在查詢(xún)考勤信息中可以根據(jù)不同的條件獲得符合要求的考勤信息,個(gè)人中心可以對(duì)賬號(hào)密碼等進(jìn)行修改。關(guān)鍵詞課堂考勤;Android;Android SDK;AbstractThis paper introduces a class attendance system based on Android technology.Thi

6、s software can provide real-time information for the user to view the curriculum,classroom attendance function and can solve the difficulties in managing current college attendance information for colleges and universities, uniformly managing the attendance information and improving the real-time an

7、d consistency of attendance information.This can make the management of attendance information more convenient and quick,and save manpower and material resources.It provides a convenient platform for both sides of demand.The software system has developed a classroom attendance software based on Java

8、 using Eclipse to develop environment and combining with Android SDK to design.The system mainly implements the major functional modules of login,registration,leaving,attendance,personal center and so on.In the leave and attendance registration,the use of Baidu positioning has solved the positioned

9、position when students sign.In the inquiry of attendance information,the system can access to the attendance information that meets the requirements according to different conditions.The password of the account number can be modified in the personal center.Key wordsClass attendance;Android;Android S

10、DK;1 緒論1.1 研究目的與意義開(kāi)發(fā)本系統(tǒng)的目的,就是要解決目前高校中關(guān)于學(xué)生請(qǐng)假與上課出勤管理中所面臨的一系列問(wèn)題。開(kāi)發(fā)出高校學(xué)生考勤管理系統(tǒng)能有效地提高高校辦事效率,解決目前高校學(xué)生請(qǐng)假及上課出勤管理問(wèn)題,實(shí)現(xiàn)學(xué)生請(qǐng)假及上課出勤信息對(duì)任課教師、班主任、院系領(lǐng)導(dǎo)、學(xué)校領(lǐng)導(dǎo)透明,使班主任、院系領(lǐng)導(dǎo)及時(shí)把握學(xué)生的學(xué)習(xí)情況,及時(shí)與學(xué)生溝通,提高教學(xué)質(zhì)量。但是傳統(tǒng)教學(xué)中,學(xué)生的考勤信息僅作為教師課程總評(píng)結(jié)果中對(duì)學(xué)生日常表現(xiàn)的評(píng)價(jià)依據(jù)。而且還存在以下一些問(wèn)題:(1)考勤信息由教師人工操作、管理,效率低下;(2)不同教師所掌握的考勤信息分散、缺乏聯(lián)系;(3)信息匯總往往發(fā)生在期末總評(píng)期間,實(shí)時(shí)性差;

11、(4)記錄形式不規(guī)范統(tǒng)計(jì)困難;(5)教師對(duì)教學(xué)期間的缺勤信息缺乏及時(shí)的處理,利用率低下。本設(shè)計(jì)是以Android操作系統(tǒng)為基礎(chǔ)的“課堂考勤”軟件的設(shè)計(jì)與實(shí)現(xiàn)。為了方便用戶(hù)可以隨時(shí)隨地查看考勤信息,申請(qǐng)請(qǐng)假,在線(xiàn)簽到等,一種高效的辦法就是做成應(yīng)用程序拓展到用戶(hù)的終端設(shè)備上,并且提供一些輔助功能。所以這次畢業(yè)設(shè)計(jì)的目標(biāo)就致力于開(kāi)發(fā)出一款基于Android手機(jī)平臺(tái)的課堂考勤系統(tǒng),來(lái)滿(mǎn)足用戶(hù)的需求。1.2 國(guó)內(nèi)外的研究現(xiàn)狀就目前的情況和事實(shí)來(lái)看,Android市場(chǎng)正在以迅猛的方式,慢慢地?cái)U(kuò)展了它的產(chǎn)品,以滿(mǎn)足不同人群的需求,而不僅僅是做一些低端的智能手機(jī),智能機(jī)器能夠滿(mǎn)足一般人群的日常生活,包括娛樂(lè)的

12、需求,會(huì)產(chǎn)生一些比較昂貴,但高品質(zhì)的高端智能手機(jī),適合商務(wù)人士使用。智能機(jī)現(xiàn)在越來(lái)越多的被大家所接受,相較于其他品牌的普通機(jī)器,人們喜歡買(mǎi)一種便宜的,性能優(yōu)異的智能機(jī),其原因是因?yàn)樗麄兡軡M(mǎn)足一般人誰(shuí)使用手機(jī)的需求,性能特點(diǎn)各方面也讓用戶(hù)感到這是一個(gè)非常良好的感覺(jué)和行動(dòng),而不是作為高端機(jī)的價(jià)格昂貴。很多人喜歡用手機(jī)玩系統(tǒng),看視頻等,功能有點(diǎn)硬件和軟件的手機(jī)需要增加的需求,比如在屏幕上流暢,速度快,兼容性好等優(yōu)點(diǎn),對(duì)這些人來(lái)說(shuō),也有很多高端智能手機(jī)采用Android,這款手機(jī)完全可以滿(mǎn)足人們的日常需求?,F(xiàn)在應(yīng)用的安卓系統(tǒng)將更加努力來(lái)改善,有許多出名的應(yīng)用程序,如地圖導(dǎo)航,視頻點(diǎn)播系統(tǒng)等?,F(xiàn)在And

13、roid的發(fā)展速度超出了所有人的想象,為安卓開(kāi)發(fā)的軟件也非常樂(lè)觀,這是一個(gè)值得發(fā)展壯大的領(lǐng)域,安卓也將是一個(gè)主流系統(tǒng),供市民使用。1.3 本文的主要組織結(jié)構(gòu)第一章緒論:全文的研究目的與意義、國(guó)內(nèi)外的研究現(xiàn)狀是本章的主要內(nèi)容。此設(shè)計(jì)的研究目的與意義在第一節(jié)做出了簡(jiǎn)單介紹,第二節(jié)對(duì)所用的工具及技術(shù)做出了簡(jiǎn)略的敘述,本文的主要組織結(jié)構(gòu)在第三節(jié)做出了簡(jiǎn)單介紹。第二章研究基礎(chǔ):本章主要介紹了全文用到的幾個(gè)基本概念以及使用的開(kāi)發(fā)工具。第一節(jié)對(duì)全文需要用到的基本概念給出了解釋。第二節(jié)對(duì)完成本次設(shè)計(jì)所需的開(kāi)發(fā)工具做了簡(jiǎn)要介紹。第三章系統(tǒng)分析:系統(tǒng)的功能模塊和系統(tǒng)使用流程在這一節(jié)進(jìn)行了介紹。第四章系統(tǒng)設(shè)計(jì)及主要

14、模塊功能:本章對(duì)整個(gè)系統(tǒng)的實(shí)現(xiàn)、系統(tǒng)架構(gòu)進(jìn)行了介紹,并將核心內(nèi)容進(jìn)行了實(shí)現(xiàn),如:簽到、登錄、查詢(xún)請(qǐng)假、查詢(xún)考勤等。第五章系統(tǒng)實(shí)現(xiàn):這一章是對(duì)本次設(shè)計(jì)的各種功能進(jìn)行細(xì)致的講述實(shí)現(xiàn)過(guò)程及系統(tǒng)如何完成這些功能的。第六章系統(tǒng)測(cè)試:這一章是對(duì)本次設(shè)計(jì)的各種功能進(jìn)行細(xì)致的測(cè)試,驗(yàn)證系統(tǒng)可用。第七章總結(jié):這一章對(duì)本次畢業(yè)設(shè)計(jì)進(jìn)行了自我總結(jié)。2 系統(tǒng)開(kāi)發(fā)環(huán)境介紹2.1 Android開(kāi)發(fā)平臺(tái)基礎(chǔ)知識(shí)2.1.1 Android平臺(tái)簡(jiǎn)介Android屬于開(kāi)源移動(dòng)操作系統(tǒng),該系統(tǒng)主要在Linux平臺(tái)上進(jìn)行設(shè)計(jì),Andy Rubin是該系統(tǒng)的最初設(shè)計(jì)主體,隨后Google對(duì)其進(jìn)行收購(gòu),并且在07年正式宣布該平臺(tái)的建設(shè)

15、成功,號(hào)稱(chēng)是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。該平臺(tái)采用軟件疊層架構(gòu),由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成。該平臺(tái)在具體實(shí)踐過(guò)程中獲得了快速的發(fā)展,究其原因:其一,Google非常支持該系統(tǒng)的發(fā)展,該公司非常關(guān)注該系統(tǒng)在以下兩個(gè)方面的優(yōu)勢(shì),即開(kāi)源以及標(biāo)準(zhǔn)化,同時(shí)希望在創(chuàng)新移動(dòng)產(chǎn)業(yè)過(guò)程中讓這一優(yōu)勢(shì)得到體現(xiàn),借此來(lái)解決相關(guān)問(wèn)題,以此來(lái)讓個(gè)人也能夠想享受到開(kāi)放性的信息服務(wù)系統(tǒng)服務(wù)。其二,Android自身所具有的開(kāi)放、應(yīng)用程序相互平等、應(yīng)用程序之間溝通無(wú)限制的優(yōu)勢(shì)有也是其快速發(fā)展的重要原因。2.1.2 Android的系統(tǒng)結(jié)構(gòu)該系統(tǒng)架構(gòu)在具體設(shè)計(jì)過(guò)程中遵循的思想為分層架構(gòu),形成了清

16、晰的結(jié)構(gòu)以及層次,做到了分工合作。具體來(lái)說(shuō),其主要由以下幾個(gè)部分組成,即應(yīng)用程序?qū)?、?yīng)用框架層、系統(tǒng)庫(kù)和Android運(yùn)行庫(kù)以及Linux內(nèi)核層,如圖2-1所示。圖2-1 Android系統(tǒng)架構(gòu)圖接下來(lái)對(duì)每一層的功能進(jìn)行具體分析:第一,應(yīng)用層,這一層的應(yīng)用程序在編寫(xiě)過(guò)程中主要使用的語(yǔ)言為JAVA語(yǔ)言,并且有非常關(guān)鍵性的應(yīng)用程序,典型代表有通訊錄管理、收發(fā)信息以及撥打電話(huà)等等。這些核心應(yīng)用可以被編程人員自己用JAVA語(yǔ)言開(kāi)發(fā)的應(yīng)用程序進(jìn)行替代。第二,應(yīng)用程序框架層,在具體開(kāi)發(fā)這一系統(tǒng)時(shí),這一層發(fā)揮著基礎(chǔ)性作用,相當(dāng)數(shù)量核心應(yīng)用程序來(lái)實(shí)現(xiàn)核心功能過(guò)程中,都需要依托這一層才能夠?qū)崿F(xiàn)。立足于該層中的重

17、用機(jī)制,開(kāi)發(fā)人員對(duì)其給予的組件部分,能夠使開(kāi)發(fā)應(yīng)用程序快速的實(shí)現(xiàn),同時(shí)能夠方便地替換平臺(tái)本身的各種應(yīng)用程序組件。第三,系統(tǒng)庫(kù)以及Android運(yùn)行庫(kù),系統(tǒng)庫(kù)在應(yīng)用程序中發(fā)揮著決定性影響,并且連接以下兩個(gè)層,即框架層以及Linux內(nèi)核層。在對(duì)該系統(tǒng)進(jìn)行運(yùn)行過(guò)程中,其具體組成內(nèi)容有核心庫(kù)和Dalvik虛擬機(jī),前者既兼容了大多數(shù)Java語(yǔ)言所需要調(diào)用的功能函數(shù),又包括了Android的核心庫(kù)。第四,Linux內(nèi)核層,該系統(tǒng)的關(guān)鍵功能實(shí)現(xiàn)都需要依托這一層次來(lái)實(shí)現(xiàn),典型代表有安全性、相關(guān)進(jìn)程、管理以及網(wǎng)絡(luò)協(xié)議等等。Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。本文主要是在Android應(yīng)用基礎(chǔ)上來(lái)進(jìn)

18、行相關(guān)軟件開(kāi)發(fā),這意味著有必要介紹Android的應(yīng)用程序基礎(chǔ)知識(shí)和相關(guān)組件。2.2 課題相關(guān)的Android技術(shù)介紹2.2.1 Android終端與Web服務(wù)器數(shù)據(jù)交互在android中發(fā)布應(yīng)用的途徑主要有:第一,客戶(hù)端應(yīng)用程序,依托Android SDK來(lái)完成開(kāi)發(fā),在用戶(hù)設(shè)備安裝過(guò)程中,其后綴為.apk。第二,作為web應(yīng)用程序,使用web標(biāo)準(zhǔn)制定和通過(guò)web瀏覽器訪(fǎng)問(wèn)一一不需安裝任何東西。在最終決定應(yīng)用程序方法時(shí),受到諸多因素影響,但是為能夠支持viewport屬性等等,以此來(lái)進(jìn)一步簡(jiǎn)便web應(yīng)用程序開(kāi)發(fā)。除此之外,能實(shí)現(xiàn)根據(jù)屏幕大小確定web應(yīng)用的適當(dāng)尺寸、根據(jù)屏幕分辨率提供圖片和不同

19、風(fēng)格等功能。在這種情況下,提出屏幕考慮因素可以讓web應(yīng)用程序開(kāi)發(fā)難度進(jìn)一步減少。因?yàn)樗蠥ndroid類(lèi)型的款的屏幕可以幫你將web頁(yè)面設(shè)計(jì)的很好。在客戶(hù)端以及web端中建立相應(yīng)的程序并不需要對(duì)相關(guān)程序進(jìn)行設(shè)計(jì),這也是該系統(tǒng)的特點(diǎn)之一。據(jù)此能夠綜合使用這兩方面內(nèi)容,以此來(lái)對(duì)相關(guān)客戶(hù)端進(jìn)行開(kāi)發(fā),并且在程序中添加web頁(yè)。下圖直觀顯示如何可以訪(fǎng)問(wèn)web頁(yè)從web瀏覽器或Android的應(yīng)用程序。如圖2-2所示。圖2-2 Android終端與Web服務(wù)器端數(shù)據(jù)交互2.3 開(kāi)發(fā)工具介紹(1) Eclipse介紹Eclipse源代碼具有開(kāi)放性的特點(diǎn),從本質(zhì)上看,其僅僅包含了一個(gè)框架以及一組服務(wù),然而其

20、存在相應(yīng)的標(biāo)準(zhǔn)插件集,可以據(jù)此來(lái)對(duì)開(kāi)發(fā)環(huán)境進(jìn)行構(gòu)建,是一個(gè)基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。Eclipse主要選擇了輕型軟件組件化架構(gòu)來(lái)建立插件集,據(jù)此來(lái)在客戶(hù)機(jī)中增加相應(yīng)的功能,例如可以支持更多的開(kāi)發(fā)語(yǔ)言?,F(xiàn)階段,已經(jīng)存在的插件可以對(duì)如下內(nèi)容進(jìn)行使用,即C/C+(CDT)、Ruby等等,同時(shí)也可以開(kāi)發(fā)數(shù)據(jù)庫(kù)。插件架構(gòu)可以在當(dāng)前環(huán)境中增加任何內(nèi)容,具體來(lái)說(shuō),可以實(shí)現(xiàn)配置管理等等,并不僅僅是對(duì)相關(guān)編程語(yǔ)言進(jìn)行使用。其主要結(jié)合如下思想進(jìn)行設(shè)計(jì),即依托插件來(lái)實(shí)現(xiàn)所有的功能,其不具有較大的核心,主要通過(guò)插件方式來(lái)在核心中添加相關(guān)的功能。Eclipse基本內(nèi)核包括:圖形API,Java開(kāi)發(fā)環(huán)境插件(JDT)

21、,插件開(kāi)發(fā)環(huán)境(PDE)等。Eclipse是一個(gè)開(kāi)放源代碼的軟件開(kāi)發(fā)項(xiàng)目。它具體包括四個(gè)部分:Eclipse Platform,JDT,CDT和PDE,主要由以下幾個(gè)項(xiàng)目組成:Eclipse項(xiàng)目、工具項(xiàng)目和技術(shù)項(xiàng)目。PDE用來(lái)支持插件開(kāi)發(fā)、CDT支持C開(kāi)發(fā)、JDT支持Java開(kāi)發(fā)、Eclipse Platform則提供了一個(gè)通用的開(kāi)發(fā)平臺(tái),是一個(gè)開(kāi)放的可擴(kuò)展IDE。要據(jù)此來(lái)編寫(xiě)Android工程,首先需要形成相應(yīng)的開(kāi)發(fā)環(huán)境,在這一過(guò)程中,首先需要對(duì)該工具進(jìn)行安裝,然后在其上安裝ADT插件,再指定SDK正確的路徑,這樣變可以創(chuàng)建android虛擬機(jī)了。(2)關(guān)鍵技術(shù)介紹Android平臺(tái)開(kāi)發(fā)方面

22、包含基本的應(yīng)用功能開(kāi)發(fā)、數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)訪(fǎng)問(wèn)這三大塊。如圖2-3所示。圖 2-3 Android平臺(tái)開(kāi)發(fā)(3)功能開(kāi)發(fā)標(biāo)準(zhǔn)的程序由如下4部分組成即Activity、Broadcast Intent Receiver、Service、Content Provider來(lái)實(shí)現(xiàn)。(4)數(shù)據(jù)存儲(chǔ)在Android,可供選擇的存儲(chǔ)方式包括了SharedPreferences、文件存儲(chǔ)、SQLite數(shù)據(jù)庫(kù)存儲(chǔ)方式、內(nèi)容提供器方式(Content Provider)以及網(wǎng)絡(luò)方式5種,本系統(tǒng)網(wǎng)絡(luò)方式主要是通過(guò)網(wǎng)絡(luò)訪(fǎng)問(wèn)該網(wǎng)絡(luò)提供的網(wǎng)絡(luò)服務(wù)接口實(shí)現(xiàn)數(shù)據(jù)的讀寫(xiě)服務(wù)。(5)網(wǎng)絡(luò)訪(fǎng)問(wèn)方面主要是Http訪(fǎng)問(wèn)技術(shù)的封裝,通過(guò)ja

23、va.*;以及A.*;下面提供的HttpPost、DefaultHttpClient、HttpResponse等類(lèi)提供的訪(fǎng)問(wèn)接口來(lái)實(shí)現(xiàn)具體的服務(wù)訪(fǎng)問(wèn)。本軟件采用Java作為開(kāi)發(fā)語(yǔ)言,布局和數(shù)據(jù)存儲(chǔ)是開(kāi)發(fā)本軟件的關(guān)鍵技術(shù),布局用來(lái)設(shè)計(jì)用戶(hù)交互界面,使用xml技術(shù)設(shè)計(jì),而xml中控件的位置和狀態(tài)則離不開(kāi)布局的使用,用戶(hù)界面的設(shè)計(jì)是否美觀和合理直接影響用戶(hù)體驗(yàn),因此運(yùn)用好布局技術(shù)是直接和用戶(hù)相關(guān)的,而數(shù)據(jù)存儲(chǔ)技術(shù)則記錄了用戶(hù)所有的操作數(shù)據(jù)和用戶(hù)所需要提取的數(shù)據(jù)。3 需求分析及系統(tǒng)概要設(shè)計(jì)3.1 系統(tǒng)可行性分析(1)技術(shù)可行性Java提供了穩(wěn)定的性能、優(yōu)秀的升級(jí)性、更快速的開(kāi)發(fā)、更簡(jiǎn)便的管理、全新的語(yǔ)

24、言以及服務(wù)。整個(gè)系統(tǒng)幫用戶(hù)做了大部分不重要的瑣碎的工作。且關(guān)于這方面的書(shū)籍、資料比較齊全。(2)操作可行性本系統(tǒng)采用基于安卓客戶(hù)端,利用安卓手機(jī)安裝軟件就能夠進(jìn)行訪(fǎng)問(wèn)和操作,且界面簡(jiǎn)單易操作,用戶(hù)只要平時(shí)有在用過(guò)智能手機(jī),都能進(jìn)行訪(fǎng)問(wèn)和操作。本系統(tǒng)具有易操作、易管理、交互性好的特點(diǎn),在操作上是非常簡(jiǎn)單的。因此本系統(tǒng)可以進(jìn)行開(kāi)發(fā)。而且對(duì)于目前高??记谛畔⒐芾砝щy的問(wèn)題可以進(jìn)行有效的解決,提高考勤信息的實(shí)時(shí)性和統(tǒng)一性。(3)經(jīng)濟(jì)可行性系統(tǒng)是基于Android的軟件,采用Eclipse平臺(tái)。所以系統(tǒng)在開(kāi)發(fā)人力、財(cái)力要求不高。且能夠有效降低高校中對(duì)考勤花費(fèi)的人力物力。具有經(jīng)濟(jì)可行性。3.2 功能需求分

25、析用戶(hù)使用考勤系統(tǒng),首先需要登錄成功。通過(guò)http協(xié)議發(fā)送post請(qǐng)求給后臺(tái)服務(wù)器,后臺(tái)服務(wù)器通過(guò)controller接受登錄的用戶(hù)名和密碼選擇對(duì)應(yīng)方法驗(yàn)證是否登錄成功。當(dāng)學(xué)生沒(méi)有賬號(hào)時(shí),可以點(diǎn)擊學(xué)生注冊(cè)進(jìn)行注冊(cè)。輸入所有信息后,且賬號(hào)名不為空,兩次密碼相同,則將注冊(cè)信息通過(guò)異步post提交給后臺(tái),后臺(tái)調(diào)用數(shù)據(jù)庫(kù)添加學(xué)生信息。教師、輔導(dǎo)員以及領(lǐng)導(dǎo)需要在后臺(tái)由管理員進(jìn)行添加。系統(tǒng)主要分為考勤、請(qǐng)假、個(gè)人信息三個(gè)模塊。進(jìn)入系統(tǒng)首頁(yè)后可以選擇這三個(gè)功能模塊。在學(xué)生登錄后,點(diǎn)擊請(qǐng)假可以查看請(qǐng)假狀態(tài)(請(qǐng)假是否通過(guò)審核),并且可以添加請(qǐng)假的申請(qǐng)或者刪除之前的請(qǐng)假申請(qǐng);當(dāng)點(diǎn)擊考勤時(shí)根據(jù)課程、時(shí)間、當(dāng)前定位地

26、點(diǎn)來(lái)確定學(xué)生是否簽到成功。在教師登錄后,點(diǎn)擊查看請(qǐng)假信息可以查看當(dāng)前通過(guò)審核的請(qǐng)假信息。當(dāng)點(diǎn)擊查看考勤信息可查看此教師教授課程的所有考勤信息,教師也可以根據(jù)學(xué)號(hào)添加缺勤信息,或者點(diǎn)擊統(tǒng)計(jì)然后根據(jù)學(xué)生姓名搜此學(xué)生的各種考勤信息。輔導(dǎo)員和領(lǐng)導(dǎo)登錄后,點(diǎn)擊查看請(qǐng)假信息可以查看所有請(qǐng)假信息,并且可以選擇是否通過(guò)請(qǐng)假申請(qǐng);而點(diǎn)擊查看考勤信息可以查看所有學(xué)生的考勤信息,并且可以根據(jù)課程、時(shí)間來(lái)查詢(xún)所有對(duì)應(yīng)的考勤信息。用戶(hù)登錄后都可以在個(gè)人界面查看到昵稱(chēng)和賬號(hào),也可以直接修改昵稱(chēng)和密碼。圖 3-1 系統(tǒng)功能結(jié)構(gòu)圖3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)(1)學(xué)生實(shí)體屬性圖,如下圖3-2所示。圖 3-2 學(xué)生實(shí)體屬性圖(2)教師實(shí)

27、體屬性圖,如下圖3-3所示。圖 3-3 教師實(shí)體屬性圖(3)輔導(dǎo)員實(shí)體屬性圖,如下圖3-4所示。圖 3-4 輔導(dǎo)員實(shí)體屬性圖(4)領(lǐng)導(dǎo)實(shí)體屬性圖,如下圖3-5所示。圖 3-5 領(lǐng)導(dǎo)實(shí)體屬性圖(5)學(xué)生、課程考勤局部E-R圖,如下圖3-6所示。圖 3-6 學(xué)生、課程考勤局部E-R圖(6)教師、課程局部E-R圖,如下圖3-7所示。圖 3-7 教師、課程局部E-R圖(7)學(xué)生、課程請(qǐng)假局部E-R圖,如下圖3-8所示。圖 3-8 學(xué)生、課程請(qǐng)假局部E-R圖(8)總體E-R圖,如下圖3-9所示。圖 3-9 總體E-R圖3.4 關(guān)系模型由以上實(shí)體和E-R圖可導(dǎo)出如下關(guān)系模型。學(xué)生(編號(hào),學(xué)號(hào),密碼,姓名,

28、角色,班級(jí),電話(huà),密保,經(jīng)度,緯度)教師(編號(hào),工號(hào),密碼,姓名,角色,課程,電話(huà),密保,經(jīng)度,緯度)輔導(dǎo)員(編號(hào),工號(hào),密碼,姓名,角色,電話(huà),密保,經(jīng)度,緯度)領(lǐng)導(dǎo)(編號(hào),工號(hào),密碼,姓名,角色,電話(huà),密保,經(jīng)度,緯度)考勤(編號(hào),學(xué)號(hào),教師工號(hào),地址,時(shí)間,學(xué)生姓名,課程,狀態(tài),經(jīng)度,緯度)請(qǐng)假(編號(hào),學(xué)號(hào),教師工號(hào),備注,時(shí)間,地址,審核狀態(tài),圖片)3.5 數(shù)據(jù)庫(kù)表用戶(hù)表,如下表3-1所示。表 3-1 學(xué)生表字段字段名類(lèi)型意義id編號(hào)int自增長(zhǎng)gonghao學(xué)號(hào)varchar(20)主鍵pass密碼varchar(50)name姓名varchar(50)type角色varchar(2

29、0)識(shí)別身份banji班級(jí)varchar(20)學(xué)生所在班級(jí)tel電話(huà)varchar(50)mibao密保varchar(50)找回密碼需驗(yàn)證lat經(jīng)度varchar(20)lng緯度varchar(20)教師表,如下表3-2所示。表 3-2 教師表字段字段名類(lèi)型意義id編號(hào)int自增長(zhǎng)gonghao工號(hào)varchar(20)主鍵pass密碼varchar(50)name姓名varchar(50)type角色varchar(20)識(shí)別身份kecheng課程varchar(50)教師教授的課程名tel電話(huà)varchar(50)mibao密保varchar(20)找回密碼需驗(yàn)證lat經(jīng)度varch

30、ar(20)lng緯度varchar(50)輔導(dǎo)員表,如下表3-3所示。表 3-3 輔導(dǎo)員表字段字段名類(lèi)型意義id編號(hào)int自增長(zhǎng)gonghao工號(hào)varchar(20)主鍵pass密碼varchar(50)name姓名varchar(50)type角色varchar(20)識(shí)別身份tel電話(huà)varchar(50)mibao密保varchar(50)找回密碼需驗(yàn)證lat經(jīng)度varchar(20)lng緯度varchar(20)領(lǐng)導(dǎo)表,如下表3-4所示。表 3-4 領(lǐng)導(dǎo)表字段字段名類(lèi)型意義id編號(hào)int自增長(zhǎng)gonghao工號(hào)varchar(20)主鍵pass密碼varchar(50)name姓

31、名varchar(50)type角色varchar(20)識(shí)別身份tel電話(huà)varchar(50)mibao密保varchar(50)找回密碼需驗(yàn)證lat經(jīng)度varchar(20)lng緯度varchar(20)考勤表,如下表3-5所示。表 3-5 考勤表字段字段名類(lèi)型意義id編號(hào)int自增長(zhǎng)uid學(xué)生學(xué)號(hào)號(hào)varchar(20)tid教師工號(hào)varchar(20)根據(jù)教師確定課程address地址varchar(50)簽到地點(diǎn)time時(shí)間varchar(50)簽到時(shí)間uname學(xué)生姓名varchar(50)簽到學(xué)生姓名state狀態(tài)varchar(20)簽到狀態(tài)kc課程varchar(50)

32、簽到課程lat經(jīng)度varchar(20)lng緯度varchar(20)請(qǐng)假表,如下表3-6所示。表 3-6 請(qǐng)假表字段字段名類(lèi)型意義id編號(hào)int自增長(zhǎng)uid學(xué)生工號(hào)varchar(20)tid教師工號(hào)varchar(20)beizhu備注varchar(50)請(qǐng)假原因data時(shí)間varchar(50)請(qǐng)假時(shí)間address地址varchar(50)請(qǐng)假地點(diǎn)type審核狀態(tài)varchar(20)審核狀態(tài),默認(rèn)審核中pic圖片varchar(50)頭像4 系統(tǒng)詳細(xì)設(shè)計(jì)4.1 系統(tǒng)整體架構(gòu)設(shè)計(jì)4.1.1 系統(tǒng)架構(gòu)設(shè)計(jì)若確定軟件具有若干個(gè)部分,則其中最高層次必然為系統(tǒng)架構(gòu)。軟件系統(tǒng)的核心內(nèi)容之一即

33、為元件,再設(shè)計(jì)系統(tǒng)架構(gòu)過(guò)程中,需要對(duì)元件之間的關(guān)系進(jìn)行確定。系統(tǒng)架構(gòu)設(shè)計(jì)除了對(duì)己確定的需求的技術(shù)實(shí)現(xiàn)構(gòu)架、作好規(guī)劃外,對(duì)其可擴(kuò)展行、穩(wěn)定性和安全性也要給予足夠的重視。本系統(tǒng)主要存在前臺(tái)以及后臺(tái),即客戶(hù)端以及服務(wù)器端,彼此之間具有相對(duì)獨(dú)立性。在設(shè)計(jì)客戶(hù)端過(guò)程中,要對(duì)使用者的可操作性進(jìn)行關(guān)注,后臺(tái)服務(wù)端設(shè)計(jì)著重功能實(shí)現(xiàn)上的邏輯合理性,兼顧與數(shù)據(jù)庫(kù)的數(shù)據(jù)交互。本基于Android手機(jī)的課堂考勤系統(tǒng)后臺(tái)的開(kāi)發(fā)便是采用了Spring MVC的框架來(lái)進(jìn)行實(shí)現(xiàn)的。Spring MVC是服務(wù)者到工作者模式的實(shí)現(xiàn)。前端控制器是DispatcherServlet;應(yīng)用控制器其實(shí)可以拆為處理器映射器(Handler

34、 Mapping)進(jìn)行處理器管理和視圖解析器(View Resolver)來(lái)進(jìn)行視圖管理;頁(yè)面控制器/動(dòng)作/處理器為Controller接口(僅包含ModelAndView handleRequest(request,response) 方法)的實(shí)現(xiàn)(也可以是任何的POJO類(lèi));支持本地化(Locale)解析、主題(Theme)解析及文件上傳等;提供了非常靈活的數(shù)據(jù)驗(yàn)證、格式化和數(shù)據(jù)綁定機(jī)制;提供了強(qiáng)大的約定大于配置(慣例優(yōu)先原則)的契約式編程支持。圖 4-1 Spring MVC應(yīng)用結(jié)構(gòu)核心架構(gòu)的具體流程步驟如下:(1)首先用戶(hù)發(fā)送請(qǐng)求至DispatcherServlet,前端控制器收到請(qǐng)求

35、后自己不進(jìn)行處理,而是委托給其他的解析器進(jìn)行處理,作為統(tǒng)一訪(fǎng)問(wèn)點(diǎn),進(jìn)行全局的流程控制;(2)DispatcherServlet至HandlerMapping,HandlerMapping將會(huì)把請(qǐng)求映射為HandlerExecutionChain對(duì)象(包含一個(gè)Handler處理器(頁(yè)面控制器)對(duì)象、多個(gè)HandlerInterceptor攔截器)對(duì)象,通過(guò)這種策略模式,很容易添加新的映射策略;(3)DispatcherServlet至HandlerAdapter,HandlerAdapter將會(huì)把處理器包裝為適配器,從而支持多種類(lèi)型的處理器,即適配器設(shè)計(jì)模式的應(yīng)用,從而很容易支持很多類(lèi)型的處理器

36、;(4)HandlerAdapter至處理器功能處理方法的調(diào)用,HandlerAdapter將會(huì)根據(jù)適配的結(jié)果調(diào)用真正的處理器的功能處理方法,完成功能處理;并返回一個(gè)ModelAndView對(duì)象(包含模型數(shù)據(jù)、邏輯視圖名);(5)ModelAndView的邏輯視圖名至ViewResolver,ViewResolver將把邏輯視圖名解析為具體的View,通過(guò)這種策略模式,很容易更換其他視圖技術(shù);(6)View至渲染,View會(huì)根據(jù)傳進(jìn)來(lái)的Model模型數(shù)據(jù)進(jìn)行渲染,此處的Model實(shí)際是一個(gè)Map數(shù)據(jù)結(jié)構(gòu),因此很容易支持其他視圖技術(shù);(7)返回控制權(quán)給DispatcherServlet,并且由D

37、ispatcherServlet返回響應(yīng)給用戶(hù),到此一個(gè)流程結(jié)束。圖 4-2 系統(tǒng)數(shù)據(jù)流向在本系統(tǒng)中,用Spring MVC開(kāi)發(fā)框架來(lái)構(gòu)建后臺(tái)服務(wù)端,利用了其提供了基于Java的高效開(kāi)發(fā)的特點(diǎn),可以快速構(gòu)建穩(wěn)定、功能強(qiáng)大的后臺(tái)應(yīng)用服務(wù)。如圖所示,本系統(tǒng)從Android端直接向由Spring MVC搭建的服務(wù)端獲取請(qǐng)求,服務(wù)端接受請(qǐng)求過(guò)后或調(diào)用遠(yuǎn)程WEB接口獲取數(shù)據(jù),或調(diào)用本地?cái)?shù)據(jù)庫(kù)獲取數(shù)據(jù),然后返回JSON數(shù)據(jù)結(jié)構(gòu)的返回?cái)?shù)據(jù)給Android端。如此一來(lái),就形成了一個(gè)運(yùn)轉(zhuǎn)良好的信息回路。不但把原有系統(tǒng)進(jìn)行了整合,而且還加入了一些新功能。4.1.2 系統(tǒng)整體架構(gòu)基于Android手機(jī)的課堂考勤系統(tǒng)

38、的層次和布局如圖4-3所示:圖 4-3 系統(tǒng)結(jié)構(gòu)圖由上圖可見(jiàn)系統(tǒng)是由三個(gè)部分組成,客戶(hù)端、服務(wù)端和數(shù)據(jù)端,三個(gè)層次在系統(tǒng)中承擔(dān)的角色各不相同??蛻?hù)端就是指移動(dòng)終端,用戶(hù)通過(guò)3G或者WIFI利用移動(dòng)設(shè)備進(jìn)入系統(tǒng),與系統(tǒng)建立通信。對(duì)于本系統(tǒng)來(lái)說(shuō),該層是基于安卓的應(yīng)用程序搭建,其中包括應(yīng)用程序的界面部分(Android View)和應(yīng)用程序的邏輯控制(Android Controller)搭建。該層通過(guò)調(diào)用服務(wù)端接口獲取信息。服務(wù)端是一個(gè)基于Java平臺(tái)的WEB應(yīng)用,與傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用程序不同的是,該層不包含界面的展示,只是為前臺(tái)提供JSON數(shù)據(jù)接口。該層包括控制層和業(yè)務(wù)邏輯層,控制層負(fù)責(zé)提供外部接口

39、以及對(duì)接口進(jìn)行數(shù)據(jù)定義,業(yè)務(wù)邏輯類(lèi)定義了訪(fǎng)問(wèn)獲取數(shù)據(jù)庫(kù)信息的邏輯和訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方式。數(shù)據(jù)層包含兩個(gè)數(shù)據(jù)源,一部分是本地?cái)?shù)據(jù)庫(kù)的訪(fǎng)問(wèn),另一部分是對(duì)現(xiàn)有的基于Android平臺(tái)的課堂考勤系統(tǒng)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)。無(wú)論是數(shù)據(jù)的交互還是界面以及流程的設(shè)計(jì),本系統(tǒng)都遵循了MVC設(shè)計(jì)原則,盡把系統(tǒng)的功能流程拆分成為具有單獨(dú)功能的層次,這樣一來(lái),當(dāng)未來(lái)需要對(duì)系統(tǒng)進(jìn)行修改或者擴(kuò)展的時(shí)候就會(huì)變得非常方便,簡(jiǎn)而言之,提升了系統(tǒng)的擴(kuò)展性。同時(shí),系統(tǒng)安全設(shè)計(jì)需要貫穿整個(gè)數(shù)據(jù)流程,為信息系統(tǒng)的存儲(chǔ)、傳遞、利用提供安全性保障。4.2 從功能模塊看核心流程4.2.1 服務(wù)端連接設(shè)計(jì)實(shí)現(xiàn)在本系統(tǒng)我們是使用Http網(wǎng)絡(luò)協(xié)議技術(shù),它具有

40、GET和POST兩種請(qǐng)求方式,對(duì)于服務(wù)器交互的數(shù)據(jù),我們使用JSON字符串,Gson框架對(duì)它進(jìn)行解析和轉(zhuǎn)換,這些方法都分別封裝在HttpsUtil.java和JsonUtils.java兩個(gè)工具類(lèi)中。4.2.2 登錄注冊(cè)設(shè)計(jì)實(shí)現(xiàn)點(diǎn)擊課堂考勤APP的桌面程序圖標(biāo)進(jìn)入登錄界面即login_main.xml界面,先從SharedPreferences中取出上次登錄的用戶(hù)名、密碼,如不為空則賦值給相應(yīng)的輸入框,如為空則要求用戶(hù)輸入自己用戶(hù)名密碼,點(diǎn)擊登錄按鈕執(zhí)行validate() 驗(yàn)證用戶(hù)、密碼是否規(guī)范,符合要求后調(diào)用UserClient.get()方法,開(kāi)啟一個(gè)異步任務(wù)將數(shù)據(jù)通過(guò)Http傳服務(wù)器與

41、數(shù)據(jù)庫(kù)的用戶(hù)信息進(jìn)行匹配,若用戶(hù)名、密碼正確無(wú)誤則用戶(hù)登錄成功,同時(shí)也將本次用戶(hù)、密碼也保存到SharedPreference中。用戶(hù)登錄的流程圖如4-4所示。圖 4-4 用戶(hù)登錄流程圖如果是新用戶(hù),則點(diǎn)擊登錄界面上的注冊(cè)按鈕,進(jìn)入到activity_register.xml頁(yè)面在RegisterActivity.java中進(jìn)行注冊(cè),此時(shí)用戶(hù)需要輸入基本信息,分別為用戶(hù)名、密碼、確認(rèn)密碼等信息。點(diǎn)擊注冊(cè)按鈕驗(yàn)證信息的規(guī)范性后將注冊(cè)信息封裝提交服務(wù)器并保存到數(shù)據(jù)庫(kù)中。注冊(cè)成功后返回登錄界面。如下圖4-5所示。圖 4-5 用戶(hù)注冊(cè)流程圖如果忘記密碼,則可以點(diǎn)擊找回密碼來(lái)通過(guò)密保找回密碼。在點(diǎn)擊提交

42、時(shí)會(huì)驗(yàn)證是否為空,當(dāng)兩個(gè)EditText都不為空的時(shí)候才能提交。服務(wù)器去數(shù)據(jù)庫(kù)查詢(xún),如果查到對(duì)應(yīng)用戶(hù),則返回當(dāng)前用戶(hù)的姓名。如下圖4-6所示。圖 4-6 用戶(hù)注冊(cè)流程圖4.2.3 請(qǐng)假功能模塊的實(shí)現(xiàn)請(qǐng)假功能模塊主要實(shí)現(xiàn)了用戶(hù)查看請(qǐng)假記錄,學(xué)生可以發(fā)起請(qǐng)假信息,輔導(dǎo)員和領(lǐng)導(dǎo)對(duì)學(xué)生的請(qǐng)假信息進(jìn)行審核。學(xué)生申請(qǐng)請(qǐng)假的界面是功能實(shí)現(xiàn)在qingjia_add.java中,界面為一個(gè)ImageView、日期為兩個(gè)TestView、備注則為一個(gè)EditText控件。當(dāng)提交的時(shí)候會(huì)通過(guò)UserClient.java中的get方法發(fā)出一個(gè)異步請(qǐng)求提交請(qǐng)假信息,后臺(tái)接受后將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)中。請(qǐng)假功能模塊實(shí)現(xiàn)流程如

43、圖4-7所示。圖 4-7 學(xué)生請(qǐng)假流程圖當(dāng)學(xué)生提交申請(qǐng)后,輔導(dǎo)員和領(lǐng)導(dǎo)可以在查詢(xún)請(qǐng)假中看到未審核的請(qǐng)假信息,輔導(dǎo)員和領(lǐng)導(dǎo)可以選擇是否通過(guò)審核,審核流程如圖4-8所示。圖 4-8 審核流程圖教師可以在查詢(xún)請(qǐng)假里面查看到自己所教授課程的請(qǐng)假信息,這里只顯示請(qǐng)假通過(guò)審核的信息;學(xué)生可以查看自己請(qǐng)假狀態(tài)是否被審核通過(guò);輔導(dǎo)員和領(lǐng)導(dǎo)可以查看所有未審核請(qǐng)假信息。至此請(qǐng)假功能模塊結(jié)束。4.2.4 考勤模塊實(shí)現(xiàn)考勤模塊主要實(shí)現(xiàn)了用戶(hù)查看考勤記錄的功能,學(xué)生進(jìn)行簽到,教師對(duì)學(xué)生簽到信息進(jìn)行審核。在學(xué)生簽到中通過(guò)課程、時(shí)間以及地點(diǎn)來(lái)進(jìn)行確定學(xué)生是否能簽到成功,這里面課程通過(guò)學(xué)生選擇,時(shí)間自動(dòng)在提交的時(shí)候獲取,而地

44、點(diǎn)則由百度定位來(lái)實(shí)現(xiàn)。簽到時(shí)可以根據(jù)控件com.baidu.mapapi.map.MapView這個(gè)百度控件來(lái)查看當(dāng)前自己在地圖上的大致位置,在定位中定位會(huì)在BDLocationListener中獲得返回的經(jīng)緯度和地址描述,通過(guò)重寫(xiě)onReceiveLocation方法來(lái)獲取定位的信息,然后調(diào)用服務(wù)器方法來(lái)和教師位置作對(duì)比,如果在該課程簽到時(shí)間內(nèi)且地理位置相差距離在30米內(nèi)。則算簽到成功,否則記為遲到。如圖4-9所示。圖 4-9 學(xué)生簽到流程圖而在教師查詢(xún)考勤信息時(shí),默認(rèn)顯示的是當(dāng)前課的所有考勤信息。可以點(diǎn)擊統(tǒng)計(jì)進(jìn)入按學(xué)生姓名查詢(xún)考勤信息。相當(dāng)于在默認(rèn)情況下加了查詢(xún)條件,使得教師可以更快速的找

45、到想要的信息。如圖4-10所示。圖 4-10 教師查看及添加考勤流程圖當(dāng)輔導(dǎo)員和領(lǐng)導(dǎo)查詢(xún)考勤信息時(shí),默認(rèn)顯示全部考勤信息。同樣可以點(diǎn)擊進(jìn)入一個(gè)新的Activity按照課程、時(shí)間、類(lèi)別的方式來(lái)指定條件查詢(xún)。如圖4-11所示。圖 4-11 輔導(dǎo)員、領(lǐng)導(dǎo)考勤流程圖4.2.5 個(gè)人中心模塊功能實(shí)現(xiàn)個(gè)人中心模塊主要實(shí)現(xiàn)了用戶(hù)查看個(gè)人基本信息、修改個(gè)人信息的功能。在這里可以查看到當(dāng)前賬號(hào)的賬號(hào)名和昵稱(chēng),可以直接對(duì)昵稱(chēng)和密碼進(jìn)行修改,當(dāng)需要修改的時(shí)候會(huì)驗(yàn)證兩個(gè)EditText控件中的內(nèi)容是否為空,不為空的時(shí)候才會(huì)進(jìn)行提交修改。Android會(huì)把這個(gè)請(qǐng)求提交給服務(wù)器,讓服務(wù)器自己選擇UserControlle

46、r中對(duì)應(yīng)的方法解決。個(gè)人中心模塊流程圖如圖4-12所示。圖 4-12 個(gè)人中心流程圖這里根據(jù)當(dāng)前登錄賬號(hào),對(duì)此賬號(hào)的昵稱(chēng)和密碼進(jìn)行修改。這里也使用AsyncHttpClient進(jìn)行異步請(qǐng)求修改賬號(hào)昵稱(chēng)和密碼并根據(jù)返回的json確定是否修改成功。5 實(shí)驗(yàn)與驗(yàn)證這里本人將從四個(gè)角色分別測(cè)試本程序是否能夠完成其所有功能,每個(gè)角色在這個(gè)系統(tǒng)中的功能不同需要分開(kāi)來(lái)演示。(1)學(xué)生身份實(shí)現(xiàn)的功能首先啟動(dòng)應(yīng)用,就會(huì)啟動(dòng)LoginActivity這個(gè)Activity,這個(gè)界面主要部分是圖片TextView、兩個(gè)EditText、一個(gè)Button按鈕,兩個(gè)EditText中獲取賬號(hào)和密碼,按鈕被點(diǎn)擊時(shí)候觸發(fā)監(jiān)聽(tīng)

47、時(shí)間去驗(yàn)證數(shù)據(jù)是否合法,然后提交給服務(wù)器,由服務(wù)器的select()方法在數(shù)據(jù)庫(kù)中匹配是否存在這個(gè)賬號(hào),并且密碼是否正確。如果正確會(huì)返回當(dāng)前登錄用戶(hù)的角色,然后進(jìn)入對(duì)應(yīng)功能模塊。如下圖5-1所示。圖 5-1 登錄界面接下來(lái)點(diǎn)擊學(xué)生注冊(cè),會(huì)調(diào)用RegistActivity這個(gè)Activity。這個(gè)Activity中當(dāng)提交的時(shí)候會(huì)對(duì)各個(gè)EditText進(jìn)行是否為空的驗(yàn)證。兩次輸入密碼會(huì)驗(yàn)證兩次是否相同。當(dāng)兩個(gè)條件都滿(mǎn)足的時(shí)候提交才能將數(shù)據(jù)提交給服務(wù)器,讓服務(wù)器對(duì)數(shù)據(jù)庫(kù)進(jìn)行添加操作。如下圖5-2所示。圖 5-2 學(xué)生注冊(cè)界面輸入信息后點(diǎn)擊提交,由服務(wù)器先用select()方法驗(yàn)證學(xué)號(hào)是否重復(fù),如果重

48、復(fù)則不能注冊(cè)。如果不重復(fù)則執(zhí)行User.add()方法添加學(xué)生信息,然后返回注冊(cè)成功消息,成功后自動(dòng)返回登錄界面,這里成功后會(huì)將注冊(cè)這個(gè)界面的Activity用finish()方法結(jié)束掉。如下圖5-3所示。圖 5-3 注冊(cè)成功后返回登錄界面登錄進(jìn)入系統(tǒng),這里會(huì)發(fā)送異步請(qǐng)求給服務(wù)器,服務(wù)器在數(shù)據(jù)庫(kù)中查詢(xún),匹配則登錄成功,并按照不同角色登入不同Activity。學(xué)生登錄的是com.example.qingjia包下的MainActivity這個(gè)Activity。如下圖5-4所示。圖 5-4 學(xué)生登錄界面在請(qǐng)假中可以看請(qǐng)假結(jié)果,點(diǎn)擊請(qǐng)假后會(huì)通過(guò)Intent跳轉(zhuǎn)到qingjia_list.java這個(gè)

49、Activity中,并發(fā)出異步請(qǐng)求獲取所有的請(qǐng)假信息,然后通過(guò)返回的json數(shù)據(jù)將數(shù)據(jù)再用adapter添加成一個(gè)個(gè)view,然后顯示上去。如下圖5-5所示。圖 5-5 查看自己請(qǐng)假狀態(tài)點(diǎn)擊右上角加號(hào)可以申請(qǐng)請(qǐng)假。點(diǎn)擊右上角加號(hào)跳轉(zhuǎn)到qingjia_add.java中,當(dāng)填寫(xiě)了請(qǐng)假信息后,點(diǎn)擊提交時(shí)會(huì)驗(yàn)證時(shí)間和請(qǐng)假原因是否為空,不為空則發(fā)送請(qǐng)求給服務(wù)器,執(zhí)行添加操作。如下圖5-6所示。 (a) 未填寫(xiě)請(qǐng)假 (b) 填寫(xiě)后圖 5-6 申請(qǐng)請(qǐng)假界面選擇請(qǐng)假課程、圖片、時(shí)間、請(qǐng)假原因后點(diǎn)擊提交,即可申請(qǐng)請(qǐng)假。這里選圖片的時(shí)候,如果圖片過(guò)大,可以通過(guò)cropImage()方法對(duì)圖片進(jìn)行剪切。成功添加后

50、如下圖5-7所示。在提交后會(huì)從服務(wù)器獲取一個(gè)返回值,當(dāng)返回值為1的時(shí)候就會(huì)代表請(qǐng)假成功,用MyToastUtil.java中這個(gè)ShowToast方法來(lái)顯示一個(gè)成功提示的吐司提示。圖 5-7 申請(qǐng)成功點(diǎn)擊請(qǐng)假信息可以選擇是否取消請(qǐng)假。當(dāng)選擇刪除的時(shí)候,就將刪除的信息提交到服務(wù)器執(zhí)行kaoqingController.deleteById()方法執(zhí)行刪除操作。刪除完了后會(huì)自動(dòng)刷新頁(yè)面,重新使用異步請(qǐng)求獲取請(qǐng)假數(shù)據(jù),然后顯示在界面上。如下圖5-8所示。(a) 選擇操作 (b) 選擇刪除后圖 5-8 刪除請(qǐng)假申請(qǐng)?jiān)诘卿浗缑纥c(diǎn)擊考勤,并選擇課程后即可簽到,如果此時(shí)離這節(jié)課的老師太遠(yuǎn)則會(huì)記為遲到。這個(gè)過(guò)

51、程中調(diào)用了百度定位的接口,通過(guò)重寫(xiě)onReceiveLocation方法獲取BDLocationListener中返回的地址信息。這個(gè)地址信息中有三個(gè)需要的數(shù)據(jù)分別為:address、lat、lng,address是當(dāng)前位置的大致信息,lat和lng分別是經(jīng)度和緯度,定位主要靠經(jīng)度和緯度進(jìn)行計(jì)算距離來(lái)判斷是否符合簽到。然后finish()掉這個(gè)Activity。如下圖5-9所示。 (a) 選擇課程并提交 (b) 成功提交圖 5-9 考勤簽到點(diǎn)擊個(gè)人信息,里面可以修改當(dāng)前賬號(hào)密碼。打開(kāi)mycenter.java這個(gè)Activity,如果修改用戶(hù)信息不為空,則提交要求改的昵稱(chēng)和密碼。服務(wù)器通過(guò)js

52、on中的數(shù)據(jù)自動(dòng)匹配kaoqingController中的update()方法更新信息。然后根據(jù)返回json判斷是否修改成功,用吐司提示。如下圖5-10所示。 (a) 個(gè)人信息界面 (b) 修改信息圖 5-10 更新昵稱(chēng)和密碼提交后根據(jù)服務(wù)器返回的json數(shù)據(jù)來(lái)判斷是否修改成功,當(dāng)返回1的時(shí)候就提示成功。如下圖5-11所示。圖 5-11 更新成功(2)教師身份實(shí)現(xiàn)的功能教師登錄后點(diǎn)擊請(qǐng)假記錄可以查看已通過(guò)審核的請(qǐng)假信息。這里跳轉(zhuǎn)的是com.example.qingjia.jiaoshi包下的qingjia_list.java這個(gè)Activity。如下圖5-12。圖 5-12 查看通過(guò)審核的請(qǐng)假

53、點(diǎn)擊查詢(xún)考勤記錄可以看教授課程的考勤情況,通過(guò)UserClient中的get方法發(fā)出異步請(qǐng)求獲取考勤信息。如果點(diǎn)擊統(tǒng)計(jì)則跳轉(zhuǎn)到tongji_list.java中,點(diǎn)擊可以根據(jù)學(xué)生信息將考勤信息進(jìn)行篩選,然后顯示。如下圖5-13。 (a) 顯示考勤 (b) 按姓名查詢(xún)圖 5-13 查看所有本課考勤信息教師可以自己添加缺勤記錄。這里通過(guò)學(xué)號(hào)添加缺勤信息,將學(xué)號(hào)通過(guò)異步請(qǐng)求發(fā)送給服務(wù)器,然后調(diào)用kaoqingController中的buchong()方法添加缺勤信息。如下圖5-14所示。(a) 填寫(xiě)缺勤學(xué)生學(xué)號(hào)(b) 成功添加并刷新圖 5-14 添加缺勤信息注:教師個(gè)人信息部分和學(xué)生相同,在此就不多

54、做贅述。(3)輔導(dǎo)員、領(lǐng)導(dǎo)身份實(shí)現(xiàn)的功能請(qǐng)假信息中可以查看所有請(qǐng)假信息,點(diǎn)擊可以選擇是否審核通過(guò)。這里先跳轉(zhuǎn)到com.example.qt包下的qingjia_list.java這個(gè)Activity,這里默認(rèn)條件只顯示需要審核的請(qǐng)假信息。點(diǎn)擊確認(rèn)刪除后將請(qǐng)求提交給服務(wù)器,服務(wù)器執(zhí)行qingjiaController中的update()方法修改請(qǐng)假信息的狀態(tài)。處理完成后,如果成功會(huì)返回1的結(jié)果表示操作成功,由此完成對(duì)請(qǐng)假的審核。如下圖5-15所示。 (a) 審核請(qǐng)假 (b) 批準(zhǔn)請(qǐng)假圖 5-15 審核請(qǐng)假審核通過(guò)后學(xué)生這里顯示的請(qǐng)假信息。審核后會(huì)自動(dòng)調(diào)用UserClient中的get方法重新獲取請(qǐng)假信息,然后刷新界面。如下圖5-16所示。圖 5-16 審核通過(guò)后顯示結(jié)果如果點(diǎn)擊查詢(xún)考勤信息,可以查看所有課程的遲到和缺勤的信息。當(dāng)點(diǎn)擊統(tǒng)計(jì)時(shí)候跳轉(zhuǎn)到tongji_list.java中,然后可以根據(jù)課程、時(shí)間和類(lèi)別對(duì)考勤信息進(jìn)行篩選。這里同樣使用UserClient中的get方法進(jìn)行異步請(qǐng)求

溫馨提示

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

評(píng)論

0/150

提交評(píng)論