版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1前言1.1選題背景校外實習(xí)是高校學(xué)生都需要經(jīng)歷的一個教學(xué)實踐過程,同時也是學(xué)校教務(wù)管理的一個重要工作,而對校外實習(xí)的學(xué)生進行及時有效的管理是學(xué)生工作人員工作的重中之重。通過對這些學(xué)生進行及時有效的管理,掌握其學(xué)習(xí)進度、確保其人身安全是學(xué)校管理的一個重要課題,同時也是一個難題,其主要原因就是由于時間、地點等因素,導(dǎo)致現(xiàn)有的管理制度無法及時準確掌握校外實習(xí)學(xué)生的信息。綜合而言主要有以下幾個方面的問題:現(xiàn)有的考勤制度無法完成準確考勤(是否本人簽到);通知下發(fā)不夠及時方便;校外人身安全難以保障,緊急情況求救不便;請假審批不夠及時便捷;各班級考勤情況不能及時統(tǒng)計對比;考勤管理信息化程度明顯不足;難以實現(xiàn)校外實習(xí)管理一站式服務(wù)。移動設(shè)備的快速發(fā)展給我們帶來了新的思路。Android系統(tǒng)的出現(xiàn)給智能移動設(shè)備帶來一場新的革命,它的易用性、界面友好性都深深吸引用戶。人們越來越希望能在智能移動終端上完成之前只能在PC上完成的工作,事實上Android已經(jīng)做到了這一點。智能手機可以通過連接網(wǎng)絡(luò)方便地實現(xiàn)定位、拍攝、語音、收發(fā)消息等功能,智能手機的迅速普及為校外實習(xí)管理系統(tǒng)的實現(xiàn)帶來了可能。將所有的業(yè)務(wù)都轉(zhuǎn)向云平臺,是信息行業(yè)面臨的一個重大改變。當前有很多的云平臺供用戶使用,比如百度云、新浪云、微軟云等。云平臺具有搭建快速、操作簡捷、智能管理、運行穩(wěn)定、安全可靠;彈性擴展、節(jié)約成本等優(yōu)點。將應(yīng)用部署于云平臺上已成為大勢所趨。針對以上存在的幾點問題,借助智能移動設(shè)備進行基于百度云平臺的校外實習(xí)管理為學(xué)校教務(wù)管理開辟了一種新的管理模式,對高校提高管理效率,進行規(guī)范化、科學(xué)化管理具有重要意義。主要體現(xiàn)在:手機定位加水印照片考勤,精準考勤;通知推送功能,通知下發(fā)及時方便;一鍵SOS功能,緊急求救一鍵完成;請假審批,請假手續(xù)網(wǎng)上辦理;考勤情況統(tǒng)計評比;語音查詢,方便快捷;考勤、請假、求救、評比,人員管理一站式服務(wù)。1.2系統(tǒng)簡要說明基于百度云平臺的校外實習(xí)管理系統(tǒng)是高?;A(chǔ)管理系統(tǒng)之一。引進該系統(tǒng)將有助于探索新的考勤管理模式,為改善高校學(xué)風(fēng)、營造良好的學(xué)習(xí)氛圍提供有力支持。同時,利用移動終端將考勤情況信息化,可以減輕相關(guān)人員管理負擔,輕松便捷實現(xiàn)高效管理。按照各角色所承擔的業(yè)務(wù),本系統(tǒng)主要由兩個功能模塊組成:教師模塊和學(xué)生模塊。其中,教師模塊的主要功能包括:(1)考勤情況查看;(2)考勤情況統(tǒng)計分析;(3)請假審批;(4)實時定位;(5)通知推送;(6)語音查詢;(7)接收求救信息。學(xué)生模塊的主要功能包括:(1)定位當前位置;(2)拍攝水印照片;(3)發(fā)送考勤信息;(4)一鍵SOS;(5)請假。該系統(tǒng)兩個模塊分別擁有自己的客戶端,功能不同,客戶端不同,登錄時無需進行角色驗證。1.3相關(guān)開發(fā)技術(shù)簡介1.3.1MVC設(shè)計模式MVC模式(Model-View-Controller)是軟件工程中的一種軟件設(shè)計典范,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。它們各自的功能分別為:(1)控制器(Controller)-負責轉(zhuǎn)發(fā)請求,對請求進行處理。(2)視圖(View)-界面設(shè)計人員進行圖形界面設(shè)計。(3)模型(Model)-程序員編寫程序應(yīng)有的功能(實現(xiàn)算法等等)、數(shù)據(jù)庫專家進行數(shù)據(jù)管理和數(shù)據(jù)庫設(shè)計(可以實現(xiàn)具體的功能)。這種經(jīng)典的模式優(yōu)點眾多,主要包括低耦合性、高重用性和可適用性、較低的生命周期成本、部署快,可維護性高。MVC模式的目的是實現(xiàn)一種動態(tài)的程序設(shè)計,使后續(xù)對程序的修改和擴展簡化,并且使程序某一部分的重復(fù)利用成為可能。除此之外,此模式通過對復(fù)雜度的簡化,使程序結(jié)構(gòu)更加直觀。軟件系統(tǒng)通過對自身基本部分分離的同時也賦予了各個基本部分應(yīng)有的功能。圖1.1MVC組件類型的關(guān)系和功能1.3.2AndroidAndroid系統(tǒng)架構(gòu)采用了分層架構(gòu)的思想,從底層到上層共有四層:LinuxKernel(Linux內(nèi)核層)、AndroidRuntimeandLibraries(系統(tǒng)運行庫層)、ApplicationFramework(應(yīng)用程序框架層)和Applications(應(yīng)用程序?qū)樱?。四層架?gòu)分工合作,將Android打造成一種以Linux為核心的移動平臺。圖1.2Android系統(tǒng)架構(gòu)圖1.3.3Afinal框架Afinal是一個Android的sqliteorm和ioc框架。同時封裝了Android中的Http框架,使其更加簡單易用;使用FinalBitmap,無需考慮Bitmap在Android中加載的時候OOM的問題和快速滑動的時候圖片加載位置錯位等問題。目前Afinal主要有四大模塊:(1)FinalDB模塊:Android中的orm框架,一行代碼就可以進行增刪改查。支持一對多,多對一等查詢。(2)FinalActivity模塊:Android中的ioc框架,完全注解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。(3)FinalHttp模塊:通過Httpclient進行封裝Http數(shù)據(jù)請求,支持Ajax方式加載。(4)FinalBitmap模塊:通過FinalBitmap,Imageview加載Bitmap的時候無需考慮Bitmap加載過程中出現(xiàn)的OOM和Android容器快速滑動時出現(xiàn)的圖片錯位等現(xiàn)象。FinalBitmap可以配置線程加載線程數(shù)量,緩存大小,緩存路徑,加載顯示動畫等。Afina的宗旨是簡潔,快速。約定大于配置的方式。盡量一行代碼完成所有事情。1.3.4移動互聯(lián)技術(shù)隨著智能手機的普及、3G/4G時代的到來和各種應(yīng)用的推出,互聯(lián)網(wǎng)已從桌面PC走向手機及其他移動設(shè)備。移動互聯(lián)網(wǎng)是在互聯(lián)網(wǎng)技術(shù)經(jīng)過充分發(fā)展之后,與移動通信的數(shù)據(jù)通信能力相結(jié)合形成的技術(shù)平臺,解決了常規(guī)互聯(lián)網(wǎng)受網(wǎng)絡(luò)接入條件制約的訪問能力問題。本系統(tǒng)以百度云作為網(wǎng)絡(luò)交互平臺,提供核心服務(wù):響應(yīng)數(shù)據(jù)請求和進行數(shù)據(jù)庫增刪改查,用戶的手持設(shè)備或便攜式設(shè)備作為移動端,通過聯(lián)網(wǎng),校外實習(xí)學(xué)生就可以利用本系統(tǒng)進行個人信息的獲取,如:用戶所在地理位置、用戶姓名、用戶編號以及用戶頭像,學(xué)生用戶通過本系統(tǒng)的拍照功能即可將自己的照片加上時間和地點水印發(fā)送到百度云存儲和云數(shù)據(jù)庫,這樣學(xué)生用戶就完成了簽到;;教師用戶通過聯(lián)網(wǎng),可以查看當天學(xué)生的考勤情況以及考勤信息如:所在的考勤位置、考勤時間和考勤圖片,教師還可以查看自己所管轄的所有學(xué)生一個月或者一周的考勤情況餅狀圖。移動互聯(lián)網(wǎng)技術(shù)讓本系統(tǒng)的用戶可以隨時隨地的進行考勤操作,讓考勤雙方能隨時獲取考勤信息。1.3.5實時通信技術(shù)在傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用中,由于人們無法攜帶計算機并保持開機和接入網(wǎng)絡(luò),因此更多的是非實時通信,如電子郵件等。發(fā)展到在移動互聯(lián)網(wǎng)應(yīng)用中,移動終端時刻伴隨著用戶,就產(chǎn)生了把消息實時通知用戶的需求。但是移動終端存在電池容量低和網(wǎng)絡(luò)流量收費高的挑戰(zhàn),因此需要研究移動互聯(lián)網(wǎng)下的實時通信技術(shù)。XMPP協(xié)議是一種基于可擴展標記語言XML的高度自由、高度開放的協(xié)議,可以方便快捷地實現(xiàn)即時通訊(IM)。XMPP超強的跨平臺性和可擴展性,直觀性和廉價性,為系統(tǒng)提供了良好的可用性。本系統(tǒng)利用開源服務(wù)器Openfire在Android平臺上設(shè)計并實現(xiàn)了基于XMPP協(xié)議的即時通信系統(tǒng)。教師端,教師可以隨時查看任一學(xué)生的當前位置,并時刻監(jiān)聽,在學(xué)生發(fā)出求救信息后即刻接收并及時作出反應(yīng);學(xué)生端,可實現(xiàn)請假及一鍵SOS功能,在遇到緊急情況時立刻向教師及指定好友發(fā)送求救信息。圖1.3XMPP協(xié)議簡單示意圖1.3.6圖片處理技術(shù)圓角處理:傳統(tǒng)的矩形照片不適合軟件界面的布局,影響界面的美觀,因此本系統(tǒng)的用戶頭像均采用圓角圖片的處理技術(shù)對矩形圖片進行切割覆蓋處理圓角化圖片,這樣更符合人的審美,也適合軟件界面的布局,使界面更人性化,用戶體驗更好。圖1.4圓角處理簡單示意圖水印處理:本系統(tǒng)采用的圖片水印處理技術(shù)在原來照片的基礎(chǔ)上加上了時間、地點和頭像然后進行整體截圖,生成的水印照片不但起到美化作用,更是將一些必要信息直接展示給教師看,減少了加載數(shù)據(jù)的必要,起到了節(jié)省流量的作用。圖1.5水印技術(shù)簡單示意圖1.3.7語音識別技術(shù)現(xiàn)在熱門的體感交互以及語音控制,技術(shù)的趨勢總是想方設(shè)法讓我們能夠用最自然的方式與機器交流,而語音作為人類溝通和獲取信息最自然最便捷的方式,必然成為人機交互的未來趨勢。本系統(tǒng)在教師端采用百度語音識別技術(shù),智能識別語音返回識別字符串,再進行字符串配對查找學(xué)生資料,查詢學(xué)生信息只需語音即可,無需用手操作,智能快捷。1.3.8信息緩存技術(shù)本系統(tǒng)第一次登錄就會緩存用戶信息,如:用戶名,用戶密碼,用戶頭像,用戶分組號,用戶名電話等信息與本地,第二次登錄將實現(xiàn)自動登錄(如果選擇自動登錄選項的話),并檢查是否有本地緩存,有的話將自動加載本地數(shù)據(jù)和圖片。這樣將大大減少聯(lián)網(wǎng)流量,減少用戶的經(jīng)濟負擔。圖1.6信息緩存簡單示意圖1.3.9HTTP協(xié)議HTTP的主要特點可概括為:能夠支持客戶/服務(wù)器模式;簡單快速,客戶向服務(wù)器請求服務(wù)時,只需傳送請求方法和路徑,由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小;HTTP允許傳輸任意類型的數(shù)據(jù)對象,因此更加靈活;我們采用無連接的方式處理請求,即服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,就斷開連接,采用這種方式可以節(jié)省傳輸時間。本系統(tǒng)客戶端(Android)通過HTTP協(xié)議連接服務(wù)器端的PHP程序,通過JSON格式發(fā)送SQL請求到服務(wù)器端,服務(wù)器端的PHP解析JSON格式,獲取詳細請求,然后PHP程序再從服務(wù)器數(shù)據(jù)庫獲取數(shù)據(jù),再把數(shù)據(jù)封裝成JSON格式,再通過HTTP協(xié)議發(fā)送給客戶端,客戶端再解析接收到的JSON數(shù)據(jù)格式,還原成原來的數(shù)據(jù)。圖1.7HTTP協(xié)議簡單示意圖1.3.10PHP語言PHP的主要特點可概括為:PHP運行于各種平臺(Windows,Linux,Unix,MacOSX等等);兼容幾乎所有服務(wù)器(Apache,IIS等等);支持多種數(shù)據(jù)庫;沒有成本,可供免費下載和使用;PHP是基于服務(wù)器端的,因此即使再多的用戶,再復(fù)雜的程序也不會影響運行的速度。1.4應(yīng)用前景目前,市場上存在的手機考勤軟件,例如“外勤365”、“18云辦公”、“管家婆簽到通”等,基本都是以外勤管理為核心,面向不同的終端用戶(Web、iPhone、Android),大部分擁有定位、考勤、日志、客戶、簽到、請假等多項應(yīng)用功能,借此提高企業(yè)外勤管理的效率。但這些軟件存在以下弊端:沒有提供語音查詢的功能。沒有提供一定小規(guī)模人員的同時定位功能。沒有充分體現(xiàn)以人為本的設(shè)計理念,過多注重對人員的管理,而忽略了考勤的目的一方面是為了監(jiān)督作用,提高出勤率和工作效率,更重要的一點是為了校外學(xué)生的安全考慮,避免校外學(xué)習(xí)時出現(xiàn)一些突發(fā)事件而來不及及時作出反應(yīng)。系統(tǒng)功能過于龐大,對用戶的流量計費沒有充分考慮。本系統(tǒng)充分利用移動互聯(lián)網(wǎng)絡(luò)實現(xiàn)了實時的信息傳遞,具有很強的可操作性及應(yīng)用前景,完全能夠適用于不同地域,滿足不同高校的需求,應(yīng)用前景廣。本系統(tǒng)的應(yīng)用對高校提高管理效率,進行規(guī)范化、科學(xué)化管理具有重要意義,使高校校外實習(xí)管理再上一個新的臺階。2需求分析2.1任務(wù)概述2.1.1目標(1)明確軟件需求,加速開發(fā)進程;(2)學(xué)生使用本系統(tǒng)可以實現(xiàn)定位當前位置、拍攝水印照片、發(fā)送考勤信息、發(fā)送請假信息、一鍵SOS等功能;(3)教師使用本系統(tǒng)可以實現(xiàn)考勤情況查看、考勤情況統(tǒng)計分析、請假審批、實時定位、同地圖定位、通知推送、語音查詢等功能;(4)高校對校外實習(xí)實現(xiàn)規(guī)范化、科學(xué)化管理。2.1.2開發(fā)環(huán)境(1)硬件:1)PC機:處理器為Intel,內(nèi)存2G;2)測試機:操作系統(tǒng)為Android4.0以上版本的智能手機。(2)軟件:1)ADT-Bundle-windows-x86-20140702:Android集成開發(fā)環(huán)境,其中包含已安置ADT插件的Eclipse和AndroidSDK;2)jdk1.7:Java語言開發(fā)工具包,包含了Java程序開發(fā)所需要的環(huán)境、工具和資源;3)IE瀏覽器:訪問網(wǎng)頁,進行有關(guān)百度云平臺的配置和操作;4)ZendStudio10:PHP語言集成開發(fā)環(huán)境(IDE);5)TortoiseSVN-6129-x64:開放源代碼的版本控制系統(tǒng),向百度云服務(wù)器提交代碼;6)openfire3_7_1:基于XMPP協(xié)議的開源實時協(xié)作(RTC)服務(wù)器,以此構(gòu)建高效率的即時通信服務(wù)器。2.1.3運行環(huán)境(1)硬件:操作系統(tǒng)為Android4.0以上版本的智能手機。(2)軟件:1)jdk1.7;2)Mysql數(shù)據(jù)庫(位于百度云服務(wù)器);2.1.4條件與限制客戶端要求:操作系統(tǒng)為Android4.0以上版本的智能手機。2.1.5用戶特征本系統(tǒng)用戶為各高校學(xué)生管理人員和校外實習(xí)的學(xué)生,主要用戶有以下兩類:(1)校外實習(xí)學(xué)生:主要負責向教師發(fā)送考勤、請假信息;(2)教師:負責學(xué)生校外實習(xí)的管理,主要包括統(tǒng)計查看學(xué)生考勤信息、請假審批、通知推送等。2.2數(shù)據(jù)描述2.2.1靜態(tài)數(shù)據(jù)靜態(tài)數(shù)據(jù)是指基本保持穩(wěn)定的數(shù)據(jù)。本系統(tǒng)中的主要靜態(tài)數(shù)據(jù)有以下幾類:AttManager表(教師表):教師ID、教師姓名、教師頭像、教師性別、聯(lián)系方式、教師管理班級數(shù);AttGroup表(班級表):班級ID、班級名稱、班級人數(shù);AttObject表(學(xué)生表):學(xué)生ID、學(xué)生姓名、學(xué)生頭像、學(xué)生性別、學(xué)生年齡、學(xué)生電話、學(xué)生所在公司、學(xué)生應(yīng)在地址、緊急聯(lián)系人ID;AttInformation表(考勤信息表):考勤信息ID;AskForLeave表(請假表):請假ID。2.2.2動態(tài)數(shù)據(jù)動態(tài)數(shù)據(jù)是指時常發(fā)生變化,并直接反映事務(wù)過程的數(shù)據(jù)。本系統(tǒng)中的主要靜態(tài)數(shù)據(jù)有以下幾類:AttGroup表(班級表):今日時間、今日到崗數(shù)、今日缺勤數(shù)、今日遲到數(shù)、周到崗數(shù)、周缺勤數(shù)、周遲到數(shù)、月到崗數(shù)、月缺勤數(shù)、月遲到數(shù);AttObject表(學(xué)生表):學(xué)生月到崗數(shù)、學(xué)生月缺勤數(shù)、學(xué)生月遲到數(shù)、考勤信息發(fā)送時間、今日考勤狀態(tài);AttInformation表(考勤信息表):考勤圖片路徑、考勤地址、考勤信息發(fā)送時間、考勤經(jīng)度、考勤緯度;AskForLeave表(請假表):請假時間、請假原因、是否準假。2.3功能需求2.3.1業(yè)務(wù)流程圖圖2.1學(xué)生端主要業(yè)務(wù)流程圖圖2.2教師端主要業(yè)務(wù)流程圖2.3.2功能劃分根據(jù)業(yè)務(wù)流程圖,本系統(tǒng)將校外實習(xí)管理的主要業(yè)務(wù)分為兩大模塊:學(xué)生端和教師端。以下介紹每個模塊的主要功能項目劃分情況:學(xué)生模塊:獲取個人信息、修改個人資料、忘記密碼短信驗證、定位當前位置、拍攝水印照片、發(fā)送考勤信息、發(fā)送請假信息、一鍵SOS、添加緊急聯(lián)系人。教師模塊:獲取個人信息、修改個人資料、忘記密碼短信驗證、班級考勤情況查看、語音查詢、實時定位學(xué)生位置、學(xué)生月考勤情況查看、學(xué)生考勤水印照片查看、班級周考勤情況統(tǒng)計分析、班級月考勤情況統(tǒng)計分析、請假信息查看、請假審批、同地圖定位、通知推送。2.3.3其他功能需求(1)主程序界面需求本軟件在操作和使用上要求簡單易用,參照目前各APP主流界面風(fēng)格,結(jié)合本系統(tǒng)具體功能,做了如下界面設(shè)計:1)側(cè)滑菜單:系統(tǒng)主要功能在教師模塊且教師模塊功能較多,因此在界面設(shè)計上仿照QQ5.0引入了側(cè)滑菜單,使功能操作更加靈活便捷;2)自定義適配器:Android的API也提供了許多創(chuàng)建ListView適配器的快捷方式。例如ArrayAdapter、SimpleAdapter和SimpleCursorAdapter等。如果采用這些系統(tǒng)自帶的適配器,對于事件的響應(yīng)只能局限在一個行單位。假設(shè)一行里面有一個按鈕和一個圖片控件,它們之間的響應(yīng)操作是不一樣的。若采用系統(tǒng)自帶的適配器,就不能精確到每個控件的響應(yīng)事件。因此在Adapter的使用上本系統(tǒng)采取自定義適配器來實現(xiàn)這個比較精確的請求,同時,對于功能需求更加合理,用戶使用更加人性化;3)自定義彈出框:本系統(tǒng)中存在一些消息提示,此效果采用彈出框來顯示。PopupWindow這個類用來實現(xiàn)一個彈出框,可以使用任意布局的View作為其內(nèi)容,這個彈出框懸浮在當前Activity之上的任意位置,靈活便捷,符合用戶使用習(xí)慣,大大提高用戶體驗;4)餅狀圖:針對系統(tǒng)考勤情況統(tǒng)計對比功能引入餅狀圖,使用MPAndroidChart類庫實現(xiàn)Android設(shè)備上各種統(tǒng)計圖表的繪制,使統(tǒng)計結(jié)果更加直觀;5)通知欄推送:針對本系統(tǒng)一鍵SOS和通知下發(fā)功能,引入了通知機制中的通知欄框架Notificaiton,它是位于頂層可以展開的通知列表,適用于此類及時的交互事件的通知;6)過渡動畫:軟件使用過程中,為避免干澀的切換到另一個界面或功能,特此引入過渡動畫。如界面切換過程中的進入動畫和退出動畫,在當前界面覆蓋或自然切換,保持了切換與過渡的連續(xù)性和整體性,使用戶擁有更加愉快地使用體驗。(2)數(shù)據(jù)庫初始化需求系統(tǒng)投入使用前首先進行數(shù)據(jù)庫的數(shù)據(jù)錄入。主要需錄入以下幾部分內(nèi)容:學(xué)生ID:學(xué)生的登錄名,即學(xué)生學(xué)號,不可更改;教師ID:教師的登錄名,即教師工號,不可更改;初始密碼:登錄時的初始密碼,用戶登錄成功后可重新設(shè)置;教師--班級關(guān)系:教師ID和教師所管理班級的ID;班級--學(xué)生關(guān)系:班級ID和本班級內(nèi)所包含學(xué)生的ID。(3)其他功能需求要求系統(tǒng)提供用戶名密碼驗證功能,在登錄界面進行用戶名和密碼的驗證。驗證用戶名在數(shù)據(jù)庫中是否存在,驗證密碼輸入位數(shù)用戶對應(yīng)的密碼位數(shù)是否相等。要求系統(tǒng)提供記住密碼功能,用戶下次登錄時無需再次輸入密碼。要求系統(tǒng)提供自動登錄功能,用戶使用軟件時點擊本系統(tǒng)快捷方式即可自動登錄到主界面,無需在登錄界面點擊“登錄”按鈕。2.4性能需求2.4.1數(shù)據(jù)精確度數(shù)據(jù)要求必須精確,可靠,真實。進行數(shù)據(jù)操作請求時,如:查找、刪除、修改、添加,應(yīng)保證輸入數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)的相匹配性。而在滿足用戶請求時,系統(tǒng)應(yīng)保證所響應(yīng)數(shù)據(jù)的查全率與查準率。2.4.2時間特性該系統(tǒng)時間特性影響因素較多,比如網(wǎng)絡(luò)傳輸速度、云服務(wù)器訪問速度、系統(tǒng)數(shù)據(jù)量、系統(tǒng)當前在線用戶人數(shù)、客戶端硬件配置等,但系統(tǒng)總體響應(yīng)時間應(yīng)不超過5s,復(fù)雜功能響應(yīng)時間應(yīng)在可接受范圍之內(nèi)。2.4.3適應(yīng)性該系統(tǒng)主要基于Android平臺開發(fā),主要應(yīng)用于Android操作系統(tǒng)的智能手機。2.5運行需求2.5.1用戶界面系統(tǒng)用戶界面參照目前主流APP的界面風(fēng)格結(jié)合自身功能綜合設(shè)計,主程序參照QQ5.0風(fēng)格設(shè)置了側(cè)滑菜單,加入扁平化元素,并配以自定義列表、彈出框、過渡動畫等設(shè)計,使得整體界面風(fēng)格清大方,簡單易用。2.5.2硬件接口(1)云端服務(wù)器內(nèi)存要求:128MB內(nèi)存或以上(2)云端服務(wù)器磁盤要求:2GB或以上(3)云端服務(wù)器帶寬要求:5Mb/S或以上(4)客戶端處理器要求:1GHz處理器或以上(5)客戶端內(nèi)存要求:512MB內(nèi)存或以上(6)運行環(huán)境硬件配置:真機,Android4.2.1操作系統(tǒng),CPU主頻1.6GHz,運行內(nèi)存為2GB。2.5.3軟件接口(1)云端服務(wù)器和數(shù)據(jù)庫操作實現(xiàn):通過IE瀏覽器訪問,進行有關(guān)配置和操作;(2)代碼提交:TortoiseSVN-6129-x64(3)客戶端操作系統(tǒng):Android(4)客戶端系統(tǒng)必要配置:Android4.0及以上(5)開發(fā)環(huán)境軟件配置:Android集成開發(fā)環(huán)境:ADT-Bundle-windows-x86-20140702PHP語言集成開發(fā)環(huán)境(IDE):ZendStudio10。2.5.4故障處理由于用戶在使用本系統(tǒng)時,可能因長時間使用多個功能而使得內(nèi)存占有量上升,因此使用完成后及時退出可以有效降低系統(tǒng)內(nèi)存消耗,保持系統(tǒng)運行流暢。系統(tǒng)反應(yīng)時間上面,建議用戶在執(zhí)行查詢功能時,盡量增加查詢條件以減少查詢數(shù)據(jù)量,縮短系統(tǒng)反應(yīng)時間。3概要設(shè)計3.1系統(tǒng)結(jié)構(gòu)設(shè)計根據(jù)需求分析,基于百度云平臺的校外實習(xí)管理系統(tǒng)的功能結(jié)構(gòu)圖如圖3.1所示。該APP主要實現(xiàn)學(xué)生端和教師端兩大模塊的功能?;诎俣仍破脚_的校外實習(xí)管理系統(tǒng)基于百度云平臺的校外實習(xí)管理系統(tǒng)APP教師模塊學(xué)生模塊教師模塊學(xué)生模塊語音查詢通知推送實時定位請假審批考勤統(tǒng)計分析考勤情況查看修改個人資料獲取個人信息請假一鍵SOS發(fā)送考勤信息拍攝水印照片定位當前位置修改個人資料獲取個人信息語音查詢通知推送實時定位請假審批考勤統(tǒng)計分析考勤情況查看修改個人資料獲取個人信息請假一鍵SOS發(fā)送考勤信息拍攝水印照片定位當前位置修改個人資料獲取個人信息圖3.1系統(tǒng)功能結(jié)構(gòu)圖3.2功能概要設(shè)計功能概要設(shè)計主要從模塊功能描述、系統(tǒng)用例圖和目標業(yè)務(wù)時序圖三個方面進行描述。3.2.1模塊功能描述根據(jù)2.3.2節(jié)的描述,劃分完功能模塊和功能項目后,各模塊的具體功能已明確,現(xiàn)簡述如下:(1)學(xué)生模塊:1)獲取個人信息:用戶登錄成功后即從服務(wù)器獲取個人信息并緩存到本地,方便以后取用,無需每次聯(lián)網(wǎng)獲?。?)修改個人資料:登錄名、用戶名、頭像、性別等信息均不可更改,主要修改項為登錄密碼;3)忘記密碼短信驗證:登錄時如忘記密碼,可點擊登錄界面的“忘記密碼”按鈕,向手機發(fā)送短信驗證碼,輸入驗證碼后進行新密碼設(shè)置;4)定位當前位置:主頁中系統(tǒng)自動利用百度地圖定位當前位置,并獲取當前經(jīng)緯度;5)拍攝水印照片:拍攝包含本人的水印照片,水印內(nèi)容為學(xué)生頭像、當前定位地點、當前時間;6)發(fā)送考勤信息:拍攝完成水印照片后發(fā)送考勤信息;7)發(fā)送請假信息:在請假界面編輯請假信息發(fā)送;8)一鍵SOS:遇到緊急情況時點擊“SOS”按鈕,向指定緊急聯(lián)系人發(fā)送求救信息。9)添加緊急聯(lián)系人:進行一鍵SOS操作后,如果檢測到該用戶未添加緊急聯(lián)系人,跳轉(zhuǎn)到添加聯(lián)系人界面,依次填寫三個聯(lián)系人ID,添加緊急聯(lián)系人。(2)教師模塊:1)獲取個人信息:用戶登錄成功后即從服務(wù)器獲取個人信息并緩存到本地,方便以后取用,無需每次聯(lián)網(wǎng)獲取;2)修改個人資料:登錄名、用戶名、頭像、性別等信息均不可更改,主要修改項為登錄密碼;3)忘記密碼短信驗證:登錄時如忘記密碼,可點擊登錄界面的“忘記密碼”按鈕,向手機發(fā)送短信驗證碼,輸入驗證碼后進行新密碼設(shè)置;4)班級考勤情況查看:系統(tǒng)主頁顯示登錄教師所管理班級的考勤情況,包括到崗數(shù)、缺勤數(shù)、遲到數(shù)等。點擊某班級可以查看具體考勤情況,即到崗學(xué)生列表、遲到學(xué)生列表、缺勤學(xué)生列表、考勤情況未知的學(xué)生列表;5)語音查詢:語音查詢界面進行語音輸入,使查詢更加便捷。語音識別后進行姓名匹配,若有匹配結(jié)果則可以選擇查看學(xué)生的考勤情況和水印照片,定位該學(xué)生當前位置;6)實時定位學(xué)生位置:語音識別與匹配完成后,選擇“當前位置”,定位該學(xué)生當前所在地理位置;7)學(xué)生月考勤情況查看:語音識別與匹配完成后,選擇“考勤記錄”,查看該學(xué)生月考勤情況;8)學(xué)生考勤水印照片查看:語音識別與匹配完成后,選擇“水印照片”,查看該學(xué)生今日所上傳的水印照片,確定是否為本人簽到;9)班級周考勤情況統(tǒng)計分析:主頁側(cè)滑,在側(cè)邊欄選擇“統(tǒng)計”菜單,查看班級周考勤情況餅狀圖;10)班級月考勤情況統(tǒng)計分析:在統(tǒng)計界面選擇“月度統(tǒng)計”,查看班級月考勤情況餅狀圖;11)請假信息查看:主頁側(cè)滑,在側(cè)邊欄選擇“消息”菜單,查看學(xué)生的請假信息;12)請假審批:在消息界面對某一請假信息選擇“同意”或“不同意”,對學(xué)生請假信息進行處理;13)同地圖定位:定位某班級所有學(xué)生的當前位置,并在同一張地圖上顯示;14)通知推送:向某班級所有學(xué)生發(fā)送通知,推送到給學(xué)生;3.2.2系統(tǒng)用例圖根據(jù)3.2.1節(jié)的描述,系統(tǒng)涉及到的用戶包括兩大類:學(xué)生和教師。每類用戶對應(yīng)的用例圖如下所示:圖3.2學(xué)生用例圖圖3.3教師用例圖圖3.2為學(xué)生用例圖,學(xué)生的主要任務(wù)為獲取個人信息、修改個人資料、定位當前位置、拍攝水印照片、發(fā)送考勤信息、一鍵SOS、請假。圖3.3為學(xué)生用例圖,教師的主要任務(wù)為獲取個人信息、修改個人資料、考勤情況查看、考勤情況統(tǒng)計分析、請假審批、實時定位、通知推送、語音查詢。3.2.3目標業(yè)務(wù)時序圖圖3.4學(xué)生考勤信息發(fā)送時序圖圖3.5學(xué)生一鍵SOS時序圖圖3.6學(xué)生請假時序圖圖3.7教師考勤情況查看時序圖圖3.8教師實時定位時序圖圖3.9教師通知推送時序圖圖3.10教師請假審批時序圖3.3數(shù)據(jù)庫設(shè)計3.3.1概念結(jié)構(gòu)設(shè)計本系統(tǒng)采用自頂向下的方法設(shè)計概念結(jié)構(gòu),即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細化。數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計主要使用E-R圖(實體-關(guān)系圖)的形式進行表述。首先呈現(xiàn)的是系統(tǒng)總體E-R圖,然后根據(jù)不同的功能需求劃分不同的子E-R圖,具體描述如下:圖3.11系統(tǒng)總體E-R圖如圖3.11所示為系統(tǒng)總體E-R圖,反映了系統(tǒng)中各表之間的實體-關(guān)系圖,各表之間通過存儲相互關(guān)聯(lián)的主鍵或其他可唯一確定一條數(shù)據(jù)的鍵值進行相互關(guān)聯(lián)。各數(shù)據(jù)對應(yīng)狀態(tài)可能為一對一,一對多,多對一,多對多的關(guān)系,具體各表之間的對應(yīng)關(guān)系將在以下各子E-R圖中進行闡述。圖3.12學(xué)生、權(quán)限、班級之間的E-R圖如圖3.12所示,每個學(xué)生擁有多個不同的權(quán)限,同一個權(quán)限也可以由不同的學(xué)生擁有;每個學(xué)生屬于一個確定的班級,每個班級可以包含多名學(xué)生。圖3.13教師、權(quán)限、班級之間的E-R圖如圖3.13所示,每個教師擁有多個不同的權(quán)限,同一個權(quán)限也可以由不同的教師擁有;每名教師管理多個班級,每個班級只能由一個教師管理。圖3.14學(xué)生、考勤信息、教師之間的E-R圖如圖3.14所示,每個學(xué)生每天可以發(fā)送一條考勤信息,每條考勤信息也只能由一個學(xué)生發(fā)送;每個教師可以查看多條考勤信息,每條考勤信息只能由管理發(fā)送該信息的學(xué)生的教師查看。圖3.15學(xué)生、請假信息、教師之間的E-R圖如圖3.15所示,每個學(xué)生每天可以發(fā)送多條請假信息,每條請假信息也只能由一個學(xué)生發(fā)送;每個教師可以審批多條請假信息,每條請假信息只能由管理發(fā)送該信息的學(xué)生的教師審批。3.3.2邏輯結(jié)構(gòu)設(shè)計本系統(tǒng)共用到教師信息表(AttManager)、班級信息表(AttGroup)、教師-班級表(ManagerGroup)、班級-學(xué)生表(GroupObject)、學(xué)生信息表(AttObject)、考勤信息表(AttInformation)、請假信息表(AskForLeave)7個數(shù)據(jù)表,涉及到系統(tǒng)用戶—教師和學(xué)生、考勤、請假等多個方面,以下將以列表形式簡要簡要敘述各數(shù)據(jù)表的邏輯結(jié)構(gòu)設(shè)計。表3.1:AttManager表功能描述:教師基本信息表,存放教師基本信息。表3.1教師信息表(AttManager)字段名稱中文說明鍵別是否空數(shù)據(jù)類型長度備注managerID教師IDPKNOVarchar36教師工號managerPassword登錄密碼NOVarchar50managerName教師姓名NOVarchar36managerIcon頭像地址YESVarchar50工號+”.jpg”格式managerSex教師性別YESVarchar10managerTel聯(lián)系電話YESVarchar20managerGroupNum管理班級數(shù)NOInt表3.2:AttGroup表功能描述:班級基本信息表,存放班級基本信息。表3.2班級信息表(AttGroup)字段名稱中文說明鍵別是否空數(shù)據(jù)類型長度備注groupID班級IDPKNOVarchar36groupName班級名稱NOVarchar50objectNum班級人數(shù)NOIntgroupAttendanceNum到崗數(shù)NOInt初始為0續(xù)表3.2groupAbsenteeismNum缺勤數(shù)NOInt初始為0groupLateNum遲到數(shù)NOInt初始為0time今日時間NOVarchar502016-05-20格式WeekAttendanceNum周到崗數(shù)NOInt初始為0WeekAbsenteeismNum周缺勤數(shù)NOInt初始為0WeekLateNum周遲到數(shù)NOInt初始為0MonthAttendanceNum月到崗數(shù)NOInt初始為0MonthAbsenteeismNum月缺勤數(shù)NOInt初始為0MonthLateNum月遲到數(shù)NOInt初始為0表3.3:ManagerGroup表功能描述:教師-班級基本信息表,存放教師與其所管理班級的對應(yīng)關(guān)系。表3.3教師-班級表(ManagerGroup)字段名稱中文說明鍵別是否空數(shù)據(jù)類型長度備注managerID教師IDNOVarchar36groupID班級IDFKNOVarchar36表3.4:GroupObject表功能描述:班級-學(xué)生表,存放班級與本班級學(xué)生的對應(yīng)關(guān)系。表3.4班級-學(xué)生表(GroupObject)字段名稱中文說明鍵別是否空數(shù)據(jù)類型長度備注groupID班級IDNOVarchar36objectID學(xué)生IDFKNOVarchar36表3.5:AttObject表功能描述:學(xué)生信息表,存放學(xué)生基本信息和考勤統(tǒng)計數(shù)據(jù)。表3.5學(xué)生信息表(AttObject)字段名稱中文說明鍵別是否空數(shù)據(jù)類型長度備注objectID學(xué)生IDPKNOVarchar36學(xué)生學(xué)號objectPassword登錄密碼NOVarchar50續(xù)表3.5objectName學(xué)生姓名NOVarchar50objectIcon頭像地址YESVarchar50學(xué)號+”.jpg”格式objectSex學(xué)生性別YESVarchar10objectAge學(xué)生年齡YESIntobjectTel聯(lián)系電話NOVarchar20groupID所屬班級IDFKNOVarchar36objAttendanceNum月到崗數(shù)NOInt初始為0objAbsenteeismNum月缺勤數(shù)NOInt初始為0objLateNum月遲到數(shù)NOInt初始為0objectCompany所在公司NOVarchar50objAddress公司地址NOVarchar50objInfoSendTime考勤時間NOVarchar502016-05-20格式\o"排序"objectCondition考勤狀態(tài)NOVarchar50unknown、attend、late、absence四種狀態(tài)emergencyContactID緊急聯(lián)系人IDNOVarchar50aaa#20131112031#20131112007格式表3.6:AttInformation表功能描述:考勤信息表,存放學(xué)生發(fā)送的各項考勤信息。表3.6考勤信息表(AttInformation)字段名稱中文說明鍵別是否空數(shù)據(jù)類型長度備注infoID考勤信息IDPKNOInt自增infoImage水印照片路徑Y(jié)ESVarchar50學(xué)號+日期+”.jpg”格式infoAddress定位地點YESVarchar50objInfoSendTime發(fā)送時間YESVarchar50objectID考勤學(xué)生IDFKNOVarchar36infoLng定位經(jīng)度YESIntinfoLat定位緯度YESInt20表3.7:AskForLeave表功能描述:請假信息表,存放學(xué)生的請假信息。表3.7請假信息表(AskForLeave)字段名稱中文說明鍵別是否空數(shù)據(jù)類型長度備注leaveID請假IDPKNOInt自增objectID請假學(xué)生IDFKNOVarchar36groupID請假學(xué)生班級FKNOVarchar36leaveSendTime請假時間YESVarchar502016-05-20格式leaveReason請假原因YESVarchar100isApprove是否準假NOInt默認為0,未置可否,同意為1,拒絕為24詳細設(shè)計與系統(tǒng)實現(xiàn)4.1系統(tǒng)總體結(jié)構(gòu)基于百度云平臺的校外實習(xí)管理系統(tǒng)APP是一個Android客戶端,主要處理交互和交互邏輯。APP負責與用戶交互,將用戶的操作請求發(fā)送到服務(wù)端,服務(wù)端進行處理后將結(jié)果返回給客戶端,再呈現(xiàn)給用戶。以下為系統(tǒng)邏輯架構(gòu)圖和物理架構(gòu)圖。圖4.1系統(tǒng)邏輯架構(gòu)圖如圖4.1所示為系統(tǒng)邏輯架構(gòu)圖,基于百度云平臺的校外實習(xí)管理系統(tǒng)APP包括學(xué)生端和教師端兩大模塊的考勤情況統(tǒng)計、請假審批、通知推送、一鍵SOS、實時定位、語音查詢等功能,所有功能模塊同時在不同終端上相互協(xié)作共同完成校外實習(xí)管理工作。終端通過互聯(lián)網(wǎng)、GPS網(wǎng)絡(luò)遠程連接百度云平臺,訪問云平臺提供的Mysql數(shù)據(jù)庫,云存儲器,實現(xiàn)與云服務(wù)器的數(shù)據(jù)通信。圖4.2系統(tǒng)物理架構(gòu)圖如圖4.2所示為系統(tǒng)物理架構(gòu)圖,多個移動客戶端(包括教師端和多個學(xué)生端)通過網(wǎng)絡(luò)遠程連接百度云服務(wù)器,客戶端、服務(wù)器在物理架構(gòu)上相互分離,通過網(wǎng)絡(luò)連接共同構(gòu)成了基于百度云平臺的校外實習(xí)管理系統(tǒng)。本系統(tǒng)的重要核心功能——通知推送,是重點也是難點。在此我選擇持久連接的方式與XMPP協(xié)議相結(jié)合,實現(xiàn)了消息的實時監(jiān)聽,以下為消息推送示意圖:圖4.3消息推送示意圖4.2系統(tǒng)架構(gòu)設(shè)計本系統(tǒng)開發(fā)采用C/S結(jié)構(gòu),MVC設(shè)計模式。其中,View是顯示數(shù)據(jù)的,Model層是對數(shù)據(jù)的處理、操作、訪問,而Activity在中間起了組織的作用,充當了Controller層。除此之外,系統(tǒng)的分析設(shè)計采用面向?qū)ο蠹夹g(shù),使用Visio等工具進行輔助設(shè)計。圖4.4Android中的MVC模式應(yīng)用模型4.2.1Model層的實現(xiàn)Model層是對數(shù)據(jù)的處理、操作、訪問,是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都寫在該層。對數(shù)據(jù)庫的操作、對網(wǎng)絡(luò)的操作、對業(yè)務(wù)計算的操作等都寫在該層。本系統(tǒng)中,Model層的實現(xiàn)主要在com.smartattendance.util包中。其中,MyNetUtil.java類封裝了網(wǎng)絡(luò)請求的處理方法;SaveUserInfo.java類封裝了信息緩存的方法;UploadImage.java類封裝了圖片上傳的方法;XmppTool.java類則封裝了連接openfire服務(wù)器的配置。在Activity中調(diào)用這些方法,即實現(xiàn)了Controller層和Model層的交互。4.2.2View層的實現(xiàn)Android本身就將界面和邏輯分離開來設(shè)計。在Android中,采用xml文件進行界面的描述。View在layout目錄下通過xml文件格式生成,用getViewById()獲取,使用的時候可以非常方便地引入。xml文件位于Android項目的res/layout目錄下。不同樣式的界面對應(yīng)不同的xml文件,不同功能一般對應(yīng)不同的界面,也就有不同的xml文件。如登錄界面對應(yīng)activity_login.xml;主界面對應(yīng)activity_main.xml;自定義的listview樣式界面lv_item_content.xml;彈出框界面popupwindow_emergency.xml等。為提高軟件的友好性,本系統(tǒng)在界面設(shè)計上精益求精。首先,對普通的輸入框、文本框、按鈕等進行了優(yōu)化,自定義了不同的shape.xml文件,設(shè)置了圓角、邊框、顏色、透明度等風(fēng)格,并且在頁面跳轉(zhuǎn)時設(shè)置了過渡動畫,保持了切換與過渡的連續(xù)性和整體性,使用戶擁有更加愉快地使用體驗。其次,為了保持不同窗口之間的風(fēng)格統(tǒng)一,在這些xml文件中,用到了很多相同的布局,如標題欄。為了避免在每個xml文件中都把相同的布局都重寫一遍,造成代碼冗余,可讀性差,修改起來比較麻煩,對后期的修改和維護不利,便把相同布局的代碼單獨寫成一個模塊,在用到的時候,通過<include/>標簽來重用layout的代碼。最后,對ListView的性能優(yōu)化。除了自定義了ListView的顯示界面,系統(tǒng)還利用用ViewHolder來對ListView的數(shù)據(jù)加載進行了優(yōu)化,避免了為每一個Item都創(chuàng)建一個View對象,占用大量內(nèi)存,影響軟件性能。4.2.3Controller層的實現(xiàn)Controller在系統(tǒng)負責對外部事件的響應(yīng),包括:鍵盤敲擊、屏幕觸摸、電話呼入等。Android的控制層的重任通常落在了眾多的Acitvity的肩上,在Model層和View層之間,Activity在中間起了組織的作用。Activity加載顯示xml文件定義的界面,調(diào)用Model層中的方法進行網(wǎng)絡(luò)訪問、數(shù)據(jù)操作等,獲得數(shù)據(jù)顯示在界面上,完成系統(tǒng)各項功能。幾乎每一個Activity都要調(diào)用Model層的MyNetUtil.java方法進行網(wǎng)絡(luò)訪問。例如LoginActivity.java類中調(diào)用了MyNetUtil.java方法,傳入了用戶名和密碼兩個參數(shù),通過網(wǎng)絡(luò)訪問到數(shù)據(jù)庫中進行驗證,驗證匹配則返回“success”,否則返回“fail”。得到返回結(jié)果后,Activity會根據(jù)結(jié)果跳轉(zhuǎn)到主界面或給出相應(yīng)提示(密碼錯誤、網(wǎng)絡(luò)未連接等),即登錄成功或登錄失敗。4.3系統(tǒng)關(guān)鍵基礎(chǔ)類系統(tǒng)的設(shè)計利用了Java的繼承特性,把公共的行為和屬性都提到了父類中,子類繼承父類就擁有父類的行為和屬性了。這樣能提高代碼的重用性和易維護性,且大大減少代碼冗余。如:MyActvity、MyListview類。同時,系統(tǒng)中還封裝了很多工具類,如:Constants、MyNetUtil、SaveUserInfo、UploadImage、XmppTool等。這些都是系統(tǒng)中的關(guān)鍵、主要模塊,具體如下:(1)MyActvity:Activity的基礎(chǔ)類,系統(tǒng)中所有的Activity都繼承該類。MyActvity繼承了Activity,并加入了voidback(Viewview)方法,主要用于設(shè)置Activity切換時的過渡動畫。(2)MyListview:Listview的基礎(chǔ)類,系統(tǒng)中所有的Listview都繼承該類。MyListview繼承了Listview,解決了ListView嵌套在ScrollView中出現(xiàn)的ListView顯示不全的滑動沖突問題。即重寫ListView,使ListView不滾動,讓ScrollView滾動。(3)Constants:系統(tǒng)常量類,封裝了BASEURL,API_KEY、SECRET_KEY等常用的常量值。(4)MyNetUtil:網(wǎng)絡(luò)訪問類,封裝了網(wǎng)絡(luò)請求方法,包括sendPOSTRequest(Stringpath,List<BasicNameValuePair>list)和sendGetRequest(Stringpath,List<BasicNameValuePair>list),返回結(jié)果為Json數(shù)據(jù)。(5)SaveUserInfo:信息緩存類,考慮到軟件運行效率和流量花費,用戶登錄成功后系統(tǒng)會自動把用戶信息緩存到本地,方便取用。緩存信息包括用戶ID、用戶名、性別、頭像、聯(lián)系電話等。(6)UploadImage:圖片上傳類,用于將圖片上傳到百度云存儲。系統(tǒng)調(diào)用Camera得到Bitmap圖片后轉(zhuǎn)化為數(shù)據(jù)流,再以數(shù)據(jù)流的形式上傳到百度云存儲。(7)XmppTool:封裝了連接openfire服務(wù)器的配置,包括地址,端口,用戶等。4.4百度云數(shù)據(jù)庫配置在百度開發(fā)者中創(chuàng)建應(yīng)用引擎BAE。百度應(yīng)用引擎(BaiduAppEngine,簡稱BAE)提供彈性、便捷、一站式的應(yīng)用部署服務(wù),支持PHP/Java/Node.js/Python等各種應(yīng)用。只需上傳應(yīng)用代碼,BAE自動完成運行環(huán)境配置、應(yīng)用部署、均衡負載、資源監(jiān)控、日志收集等各項工作,大大簡化部署運維工作。(1)安裝TortoiseSVN:BAE采用SVN和git兩種方式進行版本控制,在此選擇SVN。(2)登錄BAE及添加部署:創(chuàng)建新部署,用于托管smartattendance應(yīng)用。在此,要填寫域名和應(yīng)用名稱。此域名組成了常量類中的BASEURL,通過/****.php即可生成訪問數(shù)據(jù)庫的鏈接。(3)本地開發(fā)及部署代碼(通過SVN上傳代碼):1)在本地創(chuàng)建一個項目文件夾,將服務(wù)器端的代碼庫同步到本地。2)右擊項目文件夾,從彈出菜單中選擇“SVNCheckout”。3)復(fù)制SVN地址后粘貼到Checkout窗口中,完成項目的初始化。(4)編寫PHP文件,使用SVN提交:SVN配置完成以后,就可以編寫PHP文件了。比如在項目文件夾中編寫了Login.php,此文件夾檢測到文件夾內(nèi)有變化,其左下角會出現(xiàn)紅色感嘆號,此時右擊項目文件夾,從彈出菜單中選擇“SVNCommit”,點擊“OK”上傳。 圖4.5使用SVN上傳代碼圖(5)發(fā)布上線:1)刷新“應(yīng)用引擎BAE-部署列表”頁面,“狀態(tài)”下出現(xiàn)“有新版”的字樣,說明本地代碼已成功提交到BAE服務(wù)器端。2)點擊右側(cè)“快捷發(fā)布”,發(fā)布新版本。“狀態(tài)”變?yōu)椤鞍l(fā)布中”。待狀態(tài)欄變?yōu)椤罢!?,說明已發(fā)布成功。圖4.6版本發(fā)布圖(6)創(chuàng)建MySql數(shù)據(jù)庫;(7)在MySql數(shù)據(jù)庫中創(chuàng)建表;圖4.7數(shù)據(jù)表創(chuàng)建完成圖(8)PHP連接MySQL:項目文件夾中有一個自動生成的conn.php,在此設(shè)置數(shù)據(jù)庫連接信息,包括百度開發(fā)者中的AK,SK,mysql數(shù)據(jù)庫名。設(shè)置編碼格式為“UTF8”。圖4.8PHP連接MySQL圖完成以上配置以后,就可以編寫PHP代碼,通過SVN提交到BAE,發(fā)布新版本后,在手機客戶端就可以應(yīng)用此/****.php鏈接,進行客戶端與數(shù)據(jù)庫的交互。4.5公共模塊功能設(shè)計與實現(xiàn)4.5.1登錄功能(1)模塊描述本功能用于用戶登錄。學(xué)生和教師分為兩個客戶端,兩個不同的登錄界面,另外還實現(xiàn)了用戶名檢測、密碼檢測、忘記密碼、自動登錄功能。(2)輸入項表4.1用戶登錄輸入數(shù)據(jù)表輸入數(shù)據(jù)相關(guān)說明用戶名文本輸入框,包含用戶名檢測,必填密碼文本輸入框,包含密碼檢測,必填(3)輸出項用戶名檢測:檢測到數(shù)據(jù)庫中不存在的用戶名,用戶名輸入框右側(cè)的“對號”標志為灰色;密碼檢測:檢測到輸入密碼為空,密碼輸入框右側(cè)的“對號”標志為灰色;聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;登錄檢測:檢測到用戶名和密碼不匹配,使用Toast提示“用戶名和密碼不匹配,請重新輸入”;openfire服務(wù)器登錄檢測:檢測到登錄openfire服務(wù)器成功,使用Toast提示"“IMloginSuccess”;檢測到登錄openfire服務(wù)器成功,使用Toast提示“IMloginFail”。(4)邏輯流程4.9用戶登錄流程圖(5)用戶界面設(shè)計圖4.10登錄界面(教師端)圖4.11登錄界面(學(xué)生端)(6)核心源文件及調(diào)用關(guān)系1)學(xué)生端源文件登錄功能界面文件:activity_login.xml登錄功能實現(xiàn)文件:LoginObjectActivity.java網(wǎng)絡(luò)訪問文件:MyNetUtil.javaopenfire服務(wù)器登錄文件:XmppTool.java登錄功能Sql語句組織和處理文件:ObjectLogin.php2)教師端源文件登錄功能界面文件:activity_login.xml登錄功能實現(xiàn)文件:LoginActivity.java網(wǎng)絡(luò)訪問文件:MyNetUtil.javaopenfire服務(wù)器登錄文件:XmppTool.java登錄功能Sql語句組織和處理文件:Login.php3)調(diào)用關(guān)系圖4.12登錄功能調(diào)用關(guān)系圖(教師端)圖4.13登錄功能調(diào)用關(guān)系圖(學(xué)生端)4.5.2忘記密碼功能(1)模塊描述(以教師端為例)本功能用于用戶忘記密碼時通過短信驗證碼更改密碼。系統(tǒng)運用了第三方免費驗證碼平臺—MOB。短信驗證碼請求流程有以下幾步:1)手機端請求下發(fā)短信2)SMSSDK服務(wù)器請求短信服務(wù)商3)短信服務(wù)商下發(fā)短信4)手機端發(fā)送短信驗證碼到開發(fā)者服務(wù)器進行驗證5)開發(fā)者服務(wù)器發(fā)送到SMSSDK服務(wù)器進行驗證6)SMSSDK服務(wù)器返回開發(fā)者服務(wù)器驗證結(jié)果7)開發(fā)者服務(wù)器把驗證結(jié)果返回手機端圖4.14短信驗證碼請求流程圖在短信驗證界面輸入手機號后,系統(tǒng)會首先驗證該手機號是否為數(shù)據(jù)庫中該用戶對應(yīng)的手機號,如果不是,提示“手機號與用戶不匹配,請重新輸入”;如果是,發(fā)送短信驗證碼,驗證成功后跳轉(zhuǎn)到密碼設(shè)置界面,即可進行密碼修改。(2)輸入項表4.2忘記密碼輸入數(shù)據(jù)表輸入數(shù)據(jù)相關(guān)說明手機號文本輸入框,當前用戶手機號,必填驗證碼文本輸入框,獲得的短信驗證碼,必填新密碼文本輸入框,新密碼,必填確認密碼文本輸入框,用于檢驗是否與新密碼一致,必填(3)輸出項聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;手機號檢測:檢測到未輸入手機號,使用Toast提示“手機號碼不能為空”;檢測到輸入的手機號不是數(shù)據(jù)庫中該用戶對應(yīng)的手機號,使用Toast提示“手機號與用戶不匹配,請重新輸入”;驗證碼檢測:點擊驗證按鈕,檢測到驗證碼為空,使用Toast提示“驗證碼不能為空”;驗證碼發(fā)送檢測:驗證碼發(fā)送以后,使用Toast提示“驗證碼已經(jīng)發(fā)送”;確認密碼檢測:檢測到確認密碼與密碼不一致,使用Toast提示“兩次輸入的密碼不一致,請再次輸入”;密碼修改檢測:密碼修改成功,使用Toast提示“密碼修改成功”;密碼修改失敗,使用Toast提示“密碼修改失敗”。(4)邏輯流程圖4.15忘記密碼流程圖(5)用戶界面設(shè)計圖4.16短信驗證界面圖4.17密碼設(shè)置界面(6)核心源文件及調(diào)用關(guān)系1)源文件短信驗證功能界面文件:activity_sms.xml短信驗證功能實現(xiàn)文件:SMSActivity.java短信驗證SDK的核心類文件(jar包加載):SMSSDK密碼設(shè)置功能界面文件:activity_password.xml密碼設(shè)置功能實現(xiàn)文件:ForgetModifyPassword.java網(wǎng)絡(luò)訪問文件:MyNetUtil.java手機號驗證Sql語句組織和處理文件:ManageCheckPhone.php重置密碼Sql語句組織和處理文件:ManageUpdatePassword.php2)調(diào)用關(guān)系圖4.18忘記密碼功能調(diào)用關(guān)系圖4.6考勤功能模塊設(shè)計與實現(xiàn)(1)模塊描述本功能由學(xué)生端和教師端兩個客戶端共同完成。對于學(xué)生端,用戶登錄后會自動定位當前位置,獲取當前時間,用戶信息(姓名、班級、頭像等)顯示在界面上。點擊“照相機”按鈕拍攝水印照片,照片顯示信息除拍攝內(nèi)容外還包括頭像、時間、地點。拍攝完成后系統(tǒng)自動返回主界面,點擊“發(fā)送”按鈕即發(fā)送了考勤信息;對于教師端,教師可以查看他所管理的所有班級的考勤情況(到崗數(shù)、缺勤數(shù)等),也可以通過語音查詢抽查某一學(xué)生的考勤情況,即查看他的水印照片,避免考勤結(jié)果不精確,出現(xiàn)代考勤情況。(2)輸入項學(xué)生端:表4.3學(xué)生端考勤輸入數(shù)據(jù)表輸入內(nèi)容相關(guān)說明水印照片手動拍攝本人照片,必填教師端:表4.4教師端查看輸入數(shù)據(jù)表輸入內(nèi)容相關(guān)說明學(xué)生姓名語音輸入學(xué)生姓名,必填(2)輸出項1)學(xué)生端:聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;拍照檢測:檢測到未拍攝水印照片發(fā)送,使用Toast提示“請拍照后再上傳”;班級考勤信息更改檢測:檢測到考勤信息成功更改數(shù)據(jù)庫班級信息表(TableAttGroup),到崗(或缺勤或遲到或未知)次數(shù)加一,使用Toast提示“插入成功”;否則提示“插入失敗”;個人考勤信息更改檢測:檢測到考勤信息成功更改數(shù)據(jù)庫學(xué)生表(TableAttObject),使用Toast提示“個人信息添加成功”;否則提示“個人信息添加失敗”;2)教師端:聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;用戶信息緩存檢測:未讀取到保存為文件的用戶信息,使用Toast提示“緩存信息為空”;語音查詢檢測:檢測到匹配學(xué)生,使用Toast提示“匹配成功”(因姓名匹配過程中會進行多個姓名比較,無需每次匹配失敗都提示“匹配失敗”,故無失敗提醒)。(4)邏輯流程1)學(xué)生端:圖4.19考勤信息發(fā)送流程圖2)教師端:圖4.20考勤情況查看流程圖(5)用戶界面設(shè)計1)學(xué)生端:圖4.21學(xué)生端主界面圖4.22水印照片拍攝界面圖4.23考勤信息發(fā)送界面圖4.24發(fā)送成功界面2)教師端:圖4.25教師端側(cè)滑界面圖4.26教師端主界面圖4.27班級考勤情況界面圖4.28水印照片查看界面(6)核心源文件及調(diào)用關(guān)系1)學(xué)生端源文件主界面文件:activity_send.xml考勤信息發(fā)送功能實現(xiàn)文件:MainObjectActivity.java百度地圖定位SDK的核心類文件(jar包加載):LocationClient.class時間日期類文件:Data.class水印照片拍攝功能界面文件:waterphoto_camera.xml水印照片拍攝功能實現(xiàn)文件:WaterPhotoActivity.java相機設(shè)置類實現(xiàn)文件:WaterCameraActivity.javaAfinal框架圖片下載核心類文件(jar包加載):FinalBitmap.class圖片上傳功能界面文件:activity_upload_success.xml圖片上傳功能實現(xiàn)文件:UploadImage.java百度云存儲SDK的核心類文件(jar包加載):BosClientConfiguration.class網(wǎng)絡(luò)訪問文件:MyNetUtil.java班級信息緩存Sql語句組織和處理文件:GetGroupInfoID2.php考勤信息添加Sql語句組織和處理文件:Save.php班級考勤情況更改Sql語句組織和處理文件:Update.php學(xué)生個人考勤情況更改Sql語句組織和處理文件:Update1.php2)教師端源文件側(cè)滑菜單效果界面文件:activity_main.xml側(cè)滑菜單效果實現(xiàn)文件:MainActivity.java主界面文件:fragment_content.xml主界面實現(xiàn)文件:ContentFragment.java主界面ListView適配器界面文件:lv_item_content.xml主界面ListView適配器實現(xiàn)文件:ContentAdapter.java班級考勤具體情況界面文件:activity_group_item.xml班級考勤具體情況實現(xiàn)文件:GroupItemActivity.java班級具體情況ListView適配器界面文件:lv_item_object.xml班級具體情況ListView適配器實現(xiàn)文件:GroupObjectAdapter.java信息緩存文件:Variables.java百度語音SDK的核心類文件(jar包加載):DialogRecognitionListener.class語音查詢功能界面文件:activity_voice_recognition.xml語音查詢功能實現(xiàn)文件:VoiceRecognitionActivity.java語音識別功能界面文件:activity_voice_recognized.xml語音識別功能實現(xiàn)文件:VoiceRecognizedActivity.java水印照片查看功能界面文件:activity_water_image.xml水印照片查看功能實現(xiàn)文件:VoiceWaterImageActivity.javaAfinal框架圖片下載核心類文件(jar包加載):FinalBitmap.class網(wǎng)絡(luò)訪問文件:MyNetUtil.java所管理班級ID獲取Sql語句組織和處理文件:GetGroupID.php今日班級考勤統(tǒng)計Sql語句組織和處理文件:GetGroupInfoID.php班級考勤具體情況獲取Sql語句組織和處理文件:GetGroupObject.php班級考勤統(tǒng)計緩存Sql語句組織和處理文件:GetGroupInfoID2.php姓名匹配Sql語句組織和處理文件:GetObjectName.php3)調(diào)用關(guān)系圖4.29考勤信息發(fā)送功能調(diào)用關(guān)系(學(xué)生端)圖4.30考勤情況查看功能調(diào)用關(guān)系圖(教師端)4.7統(tǒng)計分析功能模塊設(shè)計與實現(xiàn)(1)模塊描述本功能用于教師對考勤情況的統(tǒng)計分析。為方便老師對其所管理的班級進行統(tǒng)計對比,系統(tǒng)自動統(tǒng)計了班級的周考勤情況和月考勤情況,為使描述更加直觀,采用餅狀圖的形式展現(xiàn)。主界面已將班級考勤情況緩存,此處調(diào)用即可。(2)輸入項無。(3)輸出項無。(4)邏輯流程圖4.31統(tǒng)計分析流程圖(5)用戶界面設(shè)計圖4.32周考勤統(tǒng)計界面圖4.33月考勤統(tǒng)計界面(6)核心源文件及調(diào)用關(guān)系1)源文件考勤統(tǒng)計視圖界面文件:fragment_count.xml考勤統(tǒng)計視圖實現(xiàn)文件:CountFragment.java信息緩存文件:Variables.java周考勤統(tǒng)計功能界面文件:fragment_week.xml周考勤統(tǒng)計功能實現(xiàn)文件:WeekFragment.java月考勤統(tǒng)計功能界面文件:fragment_month.xml月考勤統(tǒng)計功能實現(xiàn)文件:MonthFragment.java考勤統(tǒng)計ListView適配器界面文件:lv_item_count.xml考勤統(tǒng)計ListView適配器實現(xiàn)文件:CountAdapter.java餅狀圖繪制類文件:ChartView.java2)調(diào)用關(guān)系:圖4.34統(tǒng)計分析功能調(diào)用關(guān)系圖4.8一鍵SOS功能模塊設(shè)計與實現(xiàn)(1)模塊描述本功能用于學(xué)生在校外遇到緊急情況時向指定聯(lián)系人發(fā)送求救信息。每個學(xué)生都設(shè)置3個緊急聯(lián)系人,可以是學(xué)生也可以是老師。求救信息為實時消息,以手機通知欄信息的形式展現(xiàn)。(2)輸入項無。(3)輸出項聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;openfire服務(wù)器登錄檢測:檢測到登錄openfire服務(wù)器成功,使用Toast提示“IMloginSuccess”;檢測到登錄openfire服務(wù)器成功,使用Toast提示“IMloginFail”;緊急聯(lián)系人檢測:檢測到未添加緊急聯(lián)系人,使用彈出框提示并設(shè)置按鈕選擇是否立刻添加。(4)邏輯流程圖4.35一鍵SOS流程圖(5)用戶界面設(shè)計圖4.36一鍵SOS開啟界面圖4.37一鍵SOS界面圖4.38無緊急聯(lián)系人提示界面圖4.39緊急聯(lián)系人添加界面圖4.40求救消息接收界面圖4.41消息查看界面(6)核心源文件及調(diào)用關(guān)系1)學(xué)生端源文件一鍵SOS功能界面文件和功能實現(xiàn)文件:activity_sos.xml、SOSActivity.java百度地圖定位SDK的核心類文件(jar包加載):LocationClient.class時間日期類文件:Data.classopenfire服務(wù)器登錄文件:XmppTool.javaXMPP客戶端類庫:Smack類庫彈出框類文件:PopupWindow.class添加緊急聯(lián)系人功能界面文件:activity_set_emergency_ontact.xml添加緊急聯(lián)系人功能實現(xiàn)文件:SetEmergencyContactActivity.java網(wǎng)絡(luò)訪問文件:MyNetUtil.java獲取緊急聯(lián)系人Sql語句組織和處理文件:SOSGetContactID.php判斷添加用戶是否存在Sql語句組織和處理文件:IfContactExist.php添加緊急聯(lián)系人Sql語句組織和處理文件:AddContact.php2)教師端源文件消息監(jiān)聽類實現(xiàn)文件:ReceiverService.javaChat監(jiān)聽類文件:ChatManager.class狀態(tài)欄通知管理類文件:NotificationManager.class求救消息查看界面文件:activity_informationshow.xml求救消息查看實現(xiàn)文件:InfoShowActivity.java3)調(diào)用關(guān)系圖4.42求救功能調(diào)用關(guān)系圖(學(xué)生端)圖4.43接收功能調(diào)用關(guān)系圖(教師端)4.9請假審批功能模塊設(shè)計與實現(xiàn)(1)模塊描述本功能用于學(xué)生請假和教師審批。(2)輸入項表4.4通知推送輸入數(shù)據(jù)表輸入內(nèi)容相關(guān)說明請假內(nèi)容必填(3)輸出項1)學(xué)生端:聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;請假信息發(fā)送檢測:檢測到請假信息發(fā)送成功,使用Toast提示“請假信息已發(fā)送”;否則提示“請假信息發(fā)送失敗”;2)教師端:聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;獲取請假信息檢測:檢測到從數(shù)據(jù)庫返回請假信息為空,使用Toast提示“今日無請假信息”。(4)邏輯流程圖4.44請假審批流程圖(學(xué)生端)圖4.45請假審批流程圖(教師端)(5)用戶界面設(shè)計圖4.46請假發(fā)送界面圖4.47請假信息瀏覽界面圖4.48詳細信息查看界面圖4.49請假審批界面(6)核心源文件及調(diào)用關(guān)系1)學(xué)生端源文件請假信息發(fā)送功能界面文件:activity_askfor_leave.xml請假信息發(fā)送功能實現(xiàn)文件:AskForLeaveActivity.java時間日期類文件:Data.class網(wǎng)絡(luò)訪問文件:MyNetUtil.java插入請假信息Sql語句組織和處理文件:InsertLeaveInfo.php2)教師端源文件請假信息瀏覽功能界面文件:fragment_message.xml請假信息瀏覽功能實現(xiàn)文件:MessageFragment.java時間日期類文件:Data.classAfinal框架圖片下載核心類文件(jar包加載):FinalBitmap.class班級具體情況ListView適配器界面文件:lv_item_object.xml班級具體情況ListView適配器實現(xiàn)文件:GroupObjectAdapter.java網(wǎng)絡(luò)訪問文件:MyNetUtil.java獲取請假信息Sql語句組織和處理文件:GetLeaveInfo.php3)調(diào)用關(guān)系圖4.50請假功能調(diào)用關(guān)系圖(學(xué)生端)圖4.51審批功能調(diào)用關(guān)系圖(教師端)4.10通知推送功能模塊設(shè)計與實現(xiàn)(1)模塊描述本功能用于教師向?qū)W生實時下發(fā)通知。消息以狀態(tài)欄通知的形式展現(xiàn)。(2)輸入項表4.5通知推送輸入數(shù)據(jù)表輸入內(nèi)容相關(guān)說明通知內(nèi)容必填(3)輸出項openfire服務(wù)器登錄檢測:檢測到登錄openfire服務(wù)器成功,使用Toast提示"“IMloginSuccess”;檢測到登錄openfire服務(wù)器成功,使用Toast提示“IMloginFail”。(4)邏輯流程圖4.52通知推送流程圖(5)用戶界面設(shè)計圖4.53通知發(fā)送界面圖4.54通知接收界面圖4.55通知顯示界面(6)核心源文件及調(diào)用關(guān)系1)學(xué)生端源文件消息監(jiān)聽類實現(xiàn)文件:IMClientService.javaopenfire服務(wù)器登錄文件:XmppTool.javaXMPP客戶端類庫:Smack類庫狀態(tài)欄通知管理類文件:NotificationManager.class通知查看功能界面文件:activity_notice_show.xml通知查看功能實現(xiàn)文件:NoticeShowActivity.java2)教師端源文件通知發(fā)送功能界面文件:activity_push_notice.xml通知發(fā)送功能實現(xiàn)文件:PushNoticeActivity.javaopenfire服務(wù)器登錄文件:XmppTool.javaXMPP客戶端類庫:Smack類庫網(wǎng)絡(luò)訪問文件:MyNetUtil.java獲取學(xué)生名單Sql語句組織和處理文件:GetObjectName.php3)調(diào)用關(guān)系圖4.55通知發(fā)送功能調(diào)用關(guān)系圖(學(xué)生端)圖4.57通知接收功能調(diào)用關(guān)系圖(教師端)4.11實時定位功能模塊設(shè)計與實現(xiàn)(1)模塊描述本功能用于教師實時定位學(xué)生的位置。使用此功能時,教師向?qū)W生發(fā)送“請定位”的即時消息。學(xué)生客戶端一直在后臺監(jiān)聽消息,收到消息后自動定位并即時向教師發(fā)送當前地點的經(jīng)緯度。教師收到消息后反地理編碼,利用經(jīng)緯度將學(xué)生位置展現(xiàn)在地圖上。本功能具體到某個學(xué)生,查找學(xué)生時使用語音查詢。語音查詢功能將在4.12語音查詢功能模塊設(shè)計與實現(xiàn)部分詳細描述,在此不再贅述。本系統(tǒng)的同地圖定位功能也是使用這個流程,只是教師向多個學(xué)生發(fā)送即時消息,收到多條消息,將多個學(xué)生的位置顯示在地圖上,在此不再詳細描述,只進行界面展示。(2)輸入項無。(3)輸出項openfire服務(wù)器登錄檢測:檢測到登錄openfire服務(wù)器成功,使用Toast提示"“IMloginSuccess”;檢測到登錄openfire服務(wù)器成功,使用Toast提示“IMloginFail”。(4)邏輯流程圖4.58實時定位流程圖(5)用戶界面設(shè)計圖4.59定位選擇界面圖4.60定位結(jié)果界面圖4.61教師端主界面圖4.62同地圖定位界面(6)核心源文件及調(diào)用關(guān)系1)學(xué)生端源文件消息監(jiān)聽類實現(xiàn)文件:IMClientService.java百度地圖定位SDK的核心類文件(jar包加載):LocationClient.classopenfire服務(wù)器登錄文件:XmppTool.javaXMPP客戶端類庫:Smack類庫2)教師端源文件openfire服務(wù)器登錄文件:XmppTool.javaXMPP客戶端類庫:Smack類庫語音識別功能界面文件:activity_voice_recognized.xml語音識別功能實現(xiàn)文件:VoiceRecognizedActivity.java反地理編碼界面文件:activity_geocoder.xml反地理編碼實現(xiàn)文件:GeoCoderDemo.java3)調(diào)用關(guān)系圖4.63實時定位功能調(diào)用關(guān)系圖(教師端)圖4.64實時定位功能調(diào)用關(guān)系圖(學(xué)生端)4.12語音查詢功能模塊設(shè)計與實現(xiàn)(1)模塊描述本功能用于教師通過語音輸入學(xué)生姓名進行查詢。由于學(xué)生數(shù)量龐大,語音識別大大減少了查找困難,提高了查找效率。本系統(tǒng)使用前向百度語音上傳了學(xué)生名單,大大提高了查詢的準確性。(2)輸入項表4.6教師端查看輸入數(shù)據(jù)表輸入內(nèi)容相關(guān)說明學(xué)生姓名語音輸入學(xué)生姓名,必填(3)輸出項聯(lián)網(wǎng)檢測:檢測到未連接網(wǎng)絡(luò),使用Toast提示“請連接網(wǎng)絡(luò)”;語音查詢檢測:檢測到匹配學(xué)生,使用Toast提示“匹配成功”(因姓名匹配過程中會進行多個姓名比較,無需每次匹配失敗都提示“匹配失敗”,故無失敗提醒);(4)邏輯流程圖4.65語音查詢流程圖(5)用戶界面設(shè)計圖4.66語音識別界面圖4.67功能選擇界面圖4.68當前位置界面圖4.69水印照片界面
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年房地產(chǎn)中介加盟及人才培訓(xùn)合作協(xié)議范本3篇
- 2024鋁灰處理項目廢棄物處理項目投資合作合同3篇
- 親子手繪t恤活動方案
- 小學(xué)道德法治教育的創(chuàng)新實踐與思考
- 二零二四年度商務(wù)咨詢與服務(wù)合同
- 家庭語言教育的科學(xué)方法論
- 2025年人教版(2024)必修2物理上冊月考試卷含答案
- 湖北財稅職業(yè)學(xué)院《臨床分子生物學(xué)檢驗技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 河套學(xué)院《機器人與人工智能》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度環(huán)保項目投資與技術(shù)合作合同3篇
- 2024年廣西南寧金融投資集團有限責任公司招聘筆試參考題庫含答案解析
- 2025美國國防部財年美軍武器裝備采購預(yù)算中文版
- 70歲換證三力測試題附答案
- 中華醫(yī)學(xué)會利益沖突聲明模板
- 數(shù)據(jù)分析控制程序(修改)-y
- 七年級數(shù)學(xué)(上)有理數(shù)混合運算100題(含答案)
- 刑事辯護策略技巧案例
- 2024年陜西西安高新區(qū)管委會工作人員招聘筆試參考題庫附帶答案詳解
- 三年級上冊數(shù)學(xué)估算練習(xí)200題
- 二年級美術(shù)復(fù)習(xí)計劃
- 物業(yè)采購工作總結(jié)
評論
0/150
提交評論