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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、華中農業(yè)大學楚天學院本科畢業(yè)論文(設計)本科畢業(yè)論文題 目基于Android的課堂考勤系統(tǒng)的設計與實現(xiàn)Design and Implementation of Classroom Attendance System Based on Android姓 名學 號專 業(yè)計算機科學與技術指導教師職 稱副教授中國·武漢二一七年五月分類號 密級華中農業(yè)大學楚天學院本科畢業(yè)論文 基于Android的課堂考勤系統(tǒng)的設計與實現(xiàn)Design and Implementation of Classroom Attendance System Based on Android學生姓名: 學生學號:學生專業(yè)

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

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

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

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

6、 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 and

7、 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 p

9、osition 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 SD

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26、勤時根據課程、時間、當前定位地點來確定學生是否簽到成功。在教師登錄后,點擊查看請假信息可以查看當前通過審核的請假信息。當點擊查看考勤信息可查看此教師教授課程的所有考勤信息,教師也可以根據學號添加缺勤信息,或者點擊統(tǒng)計然后根據學生姓名搜此學生的各種考勤信息。輔導員和領導登錄后,點擊查看請假信息可以查看所有請假信息,并且可以選擇是否通過請假申請;而點擊查看考勤信息可以查看所有學生的考勤信息,并且可以根據課程、時間來查詢所有對應的考勤信息。用戶登錄后都可以在個人界面查看到昵稱和賬號,也可以直接修改昵稱和密碼。圖 3-1 系統(tǒng)功能結構圖3.3 數(shù)據庫設計(1)學生實體屬性圖,如下圖3-2所示。圖 3-

27、2 學生實體屬性圖(2)教師實體屬性圖,如下圖3-3所示。圖 3-3 教師實體屬性圖(3)輔導員實體屬性圖,如下圖3-4所示。圖 3-4 輔導員實體屬性圖(4)領導實體屬性圖,如下圖3-5所示。圖 3-5 領導實體屬性圖(5)學生、課程考勤局部E-R圖,如下圖3-6所示。圖 3-6 學生、課程考勤局部E-R圖(6)教師、課程局部E-R圖,如下圖3-7所示。圖 3-7 教師、課程局部E-R圖(7)學生、課程請假局部E-R圖,如下圖3-8所示。圖 3-8 學生、課程請假局部E-R圖(8)總體E-R圖,如下圖3-9所示。圖 3-9 總體E-R圖3.4 關系模型由以上實體和E-R圖可導出如下關系模型。

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

29、type角色varchar(20)識別身份banji班級varchar(20)學生所在班級tel電話varchar(50)mibao密保varchar(50)找回密碼需驗證lat經度varchar(20)lng緯度varchar(20)教師表,如下表3-2所示。表 3-2 教師表字段字段名類型意義id編號int自增長gonghao工號varchar(20)主鍵pass密碼varchar(50)name姓名varchar(50)type角色varchar(20)識別身份kecheng課程varchar(50)教師教授的課程名tel電話varchar(50)mibao密保varchar(20)找回

30、密碼需驗證lat經度varchar(20)lng緯度varchar(50)輔導員表,如下表3-3所示。表 3-3 輔導員表字段字段名類型意義id編號int自增長gonghao工號varchar(20)主鍵pass密碼varchar(50)name姓名varchar(50)type角色varchar(20)識別身份tel電話varchar(50)mibao密保varchar(50)找回密碼需驗證lat經度varchar(20)lng緯度varchar(20)領導表,如下表3-4所示。表 3-4 領導表字段字段名類型意義id編號int自增長gonghao工號varchar(20)主鍵pass密碼v

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

32、kc課程varchar(50)簽到課程lat經度varchar(20)lng緯度varchar(20)請假表,如下表3-6所示。表 3-6 請假表字段字段名類型意義id編號int自增長uid學生工號varchar(20)tid教師工號varchar(20)beizhu備注varchar(50)請假原因data時間varchar(50)請假時間address地址varchar(50)請假地點type審核狀態(tài)varchar(20)審核狀態(tài),默認審核中pic圖片varchar(50)頭像4 系統(tǒng)詳細設計4.1 系統(tǒng)整體架構設計4.1.1 系統(tǒng)架構設計若確定軟件具有若干個部分,則其中最高層次必然為系統(tǒng)

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

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

35、rvlet,前端控制器收到請求后自己不進行處理,而是委托給其他的解析器進行處理,作為統(tǒng)一訪問點,進行全局的流程控制;(2)DispatcherServlet至HandlerMapping,HandlerMapping將會把請求映射為HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象、多個HandlerInterceptor攔截器)對象,通過這種策略模式,很容易添加新的映射策略;(3)DispatcherServlet至HandlerAdapter,HandlerAdapter將會把處理器包裝為適配器,從而支持多種類型的處理器,即適配器設計模式的應用,

36、從而很容易支持很多類型的處理器;(4)HandlerAdapter至處理器功能處理方法的調用,HandlerAdapter將會根據適配的結果調用真正的處理器的功能處理方法,完成功能處理;并返回一個ModelAndView對象(包含模型數(shù)據、邏輯視圖名);(5)ModelAndView的邏輯視圖名至ViewResolver,ViewResolver將把邏輯視圖名解析為具體的View,通過這種策略模式,很容易更換其他視圖技術;(6)View至渲染,View會根據傳進來的Model模型數(shù)據進行渲染,此處的Model實際是一個Map數(shù)據結構,因此很容易支持其他視圖技術;(7)返回控制權給Dispatc

37、herServlet,并且由DispatcherServlet返回響應給用戶,到此一個流程結束。圖 4-2 系統(tǒng)數(shù)據流向在本系統(tǒng)中,用Spring MVC開發(fā)框架來構建后臺服務端,利用了其提供了基于Java的高效開發(fā)的特點,可以快速構建穩(wěn)定、功能強大的后臺應用服務。如圖所示,本系統(tǒng)從Android端直接向由Spring MVC搭建的服務端獲取請求,服務端接受請求過后或調用遠程WEB接口獲取數(shù)據,或調用本地數(shù)據庫獲取數(shù)據,然后返回JSON數(shù)據結構的返回數(shù)據給Android端。如此一來,就形成了一個運轉良好的信息回路。不但把原有系統(tǒng)進行了整合,而且還加入了一些新功能。4.1.2 系統(tǒng)整體架構基于A

38、ndroid手機的課堂考勤系統(tǒng)的層次和布局如圖4-3所示:圖 4-3 系統(tǒng)結構圖由上圖可見系統(tǒng)是由三個部分組成,客戶端、服務端和數(shù)據端,三個層次在系統(tǒng)中承擔的角色各不相同。客戶端就是指移動終端,用戶通過3G或者WIFI利用移動設備進入系統(tǒng),與系統(tǒng)建立通信。對于本系統(tǒng)來說,該層是基于安卓的應用程序搭建,其中包括應用程序的界面部分(Android View)和應用程序的邏輯控制(Android Controller)搭建。該層通過調用服務端接口獲取信息。服務端是一個基于Java平臺的WEB應用,與傳統(tǒng)的網絡應用程序不同的是,該層不包含界面的展示,只是為前臺提供JSON數(shù)據接口。該層包括控制層和業(yè)務

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

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

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

42、來通過密保找回密碼。在點擊提交時會驗證是否為空,當兩個EditText都不為空的時候才能提交。服務器去數(shù)據庫查詢,如果查到對應用戶,則返回當前用戶的姓名。如下圖4-6所示。圖 4-6 用戶注冊流程圖4.2.3 請假功能模塊的實現(xiàn)請假功能模塊主要實現(xiàn)了用戶查看請假記錄,學生可以發(fā)起請假信息,輔導員和領導對學生的請假信息進行審核。學生申請請假的界面是功能實現(xiàn)在qingjia_add.java中,界面為一個ImageView、日期為兩個TestView、備注則為一個EditText控件。當提交的時候會通過UserClient.java中的get方法發(fā)出一個異步請求提交請假信息,后臺接受后將數(shù)據寫入數(shù)

43、據庫中。請假功能模塊實現(xiàn)流程如圖4-7所示。圖 4-7 學生請假流程圖當學生提交申請后,輔導員和領導可以在查詢請假中看到未審核的請假信息,輔導員和領導可以選擇是否通過審核,審核流程如圖4-8所示。圖 4-8 審核流程圖教師可以在查詢請假里面查看到自己所教授課程的請假信息,這里只顯示請假通過審核的信息;學生可以查看自己請假狀態(tài)是否被審核通過;輔導員和領導可以查看所有未審核請假信息。至此請假功能模塊結束。4.2.4 考勤模塊實現(xiàn)考勤模塊主要實現(xiàn)了用戶查看考勤記錄的功能,學生進行簽到,教師對學生簽到信息進行審核。在學生簽到中通過課程、時間以及地點來進行確定學生是否能簽到成功,這里面課程通過學生選擇,

44、時間自動在提交的時候獲取,而地點則由百度定位來實現(xiàn)。簽到時可以根據控件com.baidu.mapapi.map.MapView這個百度控件來查看當前自己在地圖上的大致位置,在定位中定位會在BDLocationListener中獲得返回的經緯度和地址描述,通過重寫onReceiveLocation方法來獲取定位的信息,然后調用服務器方法來和教師位置作對比,如果在該課程簽到時間內且地理位置相差距離在30米內。則算簽到成功,否則記為遲到。如圖4-9所示。圖 4-9 學生簽到流程圖而在教師查詢考勤信息時,默認顯示的是當前課的所有考勤信息??梢渣c擊統(tǒng)計進入按學生姓名查詢考勤信息。相當于在默認情況下加了查

45、詢條件,使得教師可以更快速的找到想要的信息。如圖4-10所示。圖 4-10 教師查看及添加考勤流程圖當輔導員和領導查詢考勤信息時,默認顯示全部考勤信息。同樣可以點擊進入一個新的Activity按照課程、時間、類別的方式來指定條件查詢。如圖4-11所示。圖 4-11 輔導員、領導考勤流程圖4.2.5 個人中心模塊功能實現(xiàn)個人中心模塊主要實現(xiàn)了用戶查看個人基本信息、修改個人信息的功能。在這里可以查看到當前賬號的賬號名和昵稱,可以直接對昵稱和密碼進行修改,當需要修改的時候會驗證兩個EditText控件中的內容是否為空,不為空的時候才會進行提交修改。Android會把這個請求提交給服務器,讓服務器自己

46、選擇UserController中對應的方法解決。個人中心模塊流程圖如圖4-12所示。圖 4-12 個人中心流程圖這里根據當前登錄賬號,對此賬號的昵稱和密碼進行修改。這里也使用AsyncHttpClient進行異步請求修改賬號昵稱和密碼并根據返回的json確定是否修改成功。5 實驗與驗證這里本人將從四個角色分別測試本程序是否能夠完成其所有功能,每個角色在這個系統(tǒng)中的功能不同需要分開來演示。(1)學生身份實現(xiàn)的功能首先啟動應用,就會啟動LoginActivity這個Activity,這個界面主要部分是圖片TextView、兩個EditText、一個Button按鈕,兩個EditText中獲取賬號

47、和密碼,按鈕被點擊時候觸發(fā)監(jiān)聽時間去驗證數(shù)據是否合法,然后提交給服務器,由服務器的select()方法在數(shù)據庫中匹配是否存在這個賬號,并且密碼是否正確。如果正確會返回當前登錄用戶的角色,然后進入對應功能模塊。如下圖5-1所示。圖 5-1 登錄界面接下來點擊學生注冊,會調用RegistActivity這個Activity。這個Activity中當提交的時候會對各個EditText進行是否為空的驗證。兩次輸入密碼會驗證兩次是否相同。當兩個條件都滿足的時候提交才能將數(shù)據提交給服務器,讓服務器對數(shù)據庫進行添加操作。如下圖5-2所示。圖 5-2 學生注冊界面輸入信息后點擊提交,由服務器先用select(

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

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

50、方法對圖片進行剪切。成功添加后如下圖5-7所示。在提交后會從服務器獲取一個返回值,當返回值為1的時候就會代表請假成功,用MyToastUtil.java中這個ShowToast方法來顯示一個成功提示的吐司提示。圖 5-7 申請成功點擊請假信息可以選擇是否取消請假。當選擇刪除的時候,就將刪除的信息提交到服務器執(zhí)行kaoqingController.deleteById()方法執(zhí)行刪除操作。刪除完了后會自動刷新頁面,重新使用異步請求獲取請假數(shù)據,然后顯示在界面上。如下圖5-8所示。(a) 選擇操作 (b) 選擇刪除后圖 5-8 刪除請假申請在登錄界面點擊考勤,并選擇課程后即可簽到,如果此時離這節(jié)課

51、的老師太遠則會記為遲到。這個過程中調用了百度定位的接口,通過重寫onReceiveLocation方法獲取BDLocationListener中返回的地址信息。這個地址信息中有三個需要的數(shù)據分別為:address、lat、lng,address是當前位置的大致信息,lat和lng分別是經度和緯度,定位主要靠經度和緯度進行計算距離來判斷是否符合簽到。然后finish()掉這個Activity。如下圖5-9所示。 (a) 選擇課程并提交 (b) 成功提交圖 5-9 考勤簽到點擊個人信息,里面可以修改當前賬號密碼。打開mycenter.java這個Activity,如果修改用戶信息不為空,則提交要求

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

53、 5-12 查看通過審核的請假點擊查詢考勤記錄可以看教授課程的考勤情況,通過UserClient中的get方法發(fā)出異步請求獲取考勤信息。如果點擊統(tǒng)計則跳轉到tongji_list.java中,點擊可以根據學生信息將考勤信息進行篩選,然后顯示。如下圖5-13。 (a) 顯示考勤 (b) 按姓名查詢圖 5-13 查看所有本課考勤信息教師可以自己添加缺勤記錄。這里通過學號添加缺勤信息,將學號通過異步請求發(fā)送給服務器,然后調用kaoqingController中的buchong()方法添加缺勤信息。如下圖5-14所示。(a) 填寫缺勤學生學號(b) 成功添加并刷新圖 5-14 添加缺勤信息注:教師個人

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

溫馨提示

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

最新文檔

評論

0/150

提交評論