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