版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 畢業(yè)論文 課題名稱:校園信息管理平臺(tái)下的android客戶端 的設(shè)計(jì)與實(shí)現(xiàn)摘要伴隨著3g時(shí)代的到來,移動(dòng)終端所能完成的功能在各行各業(yè)日益廣泛和深入,移動(dòng)便攜的概念早已深入人心,讓人們更加的依賴移動(dòng)終端。本課題來源于校園內(nèi)對(duì)信息管理系統(tǒng)在移動(dòng)終端便捷使用的需求。傳統(tǒng)學(xué)校信息管理系統(tǒng)是采取pc機(jī)通過局域網(wǎng)連接服務(wù)器端的形式進(jìn)行操作,缺少對(duì)移動(dòng)端的支持,學(xué)生無法隨時(shí)隨地使用該系統(tǒng)。因此本應(yīng)用基于android移動(dòng)平臺(tái),讓學(xué)生可以通過android移動(dòng)終端更方便快捷地使用該系統(tǒng)。學(xué)生在xx可以通過瀏覽器登錄mysise查閱自己個(gè)人信息、課程表等內(nèi)容,本系統(tǒng)是通過android移動(dòng)客戶端達(dá)到同樣的效果
2、。本系統(tǒng)是基于android平臺(tái)開發(fā)的一個(gè)xx校園信息管理系統(tǒng),主要完成軟件的整體設(shè)計(jì)以及各個(gè)功能的實(shí)現(xiàn)。在windows操作系統(tǒng)平臺(tái)下,搭載android_2.3.3_sdk開發(fā)環(huán)境,采用java語言作為主要開發(fā)語言,使用eclipse完成后臺(tái)代碼的編寫,使用jsoup技術(shù)解析網(wǎng)頁獲取信息數(shù)據(jù),運(yùn)用多線程技術(shù)保證程序性能,結(jié)合photoshop為界面ui美化,從而完成的一個(gè)android客戶端。本論文是以系統(tǒng)的開發(fā)為線,介紹了此系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程,從軟件設(shè)計(jì)的角度對(duì)系統(tǒng)的理論基礎(chǔ)、系統(tǒng)概要設(shè)計(jì)以及系統(tǒng)具體實(shí)現(xiàn)進(jìn)行了詳細(xì)研究。整個(gè)過程嚴(yán)格遵循了軟件工程的思想和ui視覺享受的理念,保證了系統(tǒng)的
3、實(shí)用價(jià)值。關(guān)鍵詞:android;java;jsoup;移動(dòng)終端abstract with the age of 3g is coming, the functions that mobiles have become more popular and wide spread. people had got used to the convenience of mobiles and become more rely on it. our project is depend on the existent campus information manage system mysise. the
4、 original system is based on windows operating system, pc is the only platform we can used to login in to the system. students could not use the system everywhere. so we make the software that runs on android platform, let students use mysise on their android phones easily.students can login into my
5、sise system and check their personal information, curriculum contents and so on. our system has the same functions but based on android. our system is a campus information manage system that rely on android platform. we basically finished the structure design and functions. in the windows operating
6、system platform, with the android_2.3.3_sdk development environment, using java language as the main development language, use eclipse to finish writing, using jsoup technology to analysis the webpage information, the use of multi-threading technology to ensure the program performance, use photoshop
7、 as the ui landscaping tool , so that we complete the system on android.this article introduces our design of the system and the processing of making it happen. by the view of software design, we had done dozens of research on the basic theory, the summary of the design, and the actual processing. t
8、he whole process had followed the rules of software engineering and ui visual satisfaction so that ensure the pragmatic value of the system.key words : android;java;jsoup; mobiles目 錄前言ix1 緒論11.1 項(xiàng)目背景11.2 mysise系統(tǒng)簡(jiǎn)介11.3 系統(tǒng)的開發(fā)意義11.4 本文的結(jié)構(gòu)22 課題相關(guān)知識(shí)介紹32.1 android平臺(tái)介紹32.1.1 android系統(tǒng)簡(jiǎn)介32.1.2 android系統(tǒng)的特點(diǎn)
9、32.2 jsoup簡(jiǎn)介42.3 開發(fā)工具的選用42.3.1 eclipse簡(jiǎn)介42.3.2 photoshop簡(jiǎn)介42.4 系統(tǒng)運(yùn)行環(huán)境的搭建53 系統(tǒng)需求分析63.1 系統(tǒng)設(shè)計(jì)的總體規(guī)則63.2 可行性分析63.3 系統(tǒng)運(yùn)行環(huán)境需求73.4 用戶需求分析73.5 系統(tǒng)的設(shè)計(jì)目標(biāo)73.6 用例分析與建模83.6.1 用例1 登錄83.6.2 用例2 主菜單93.6.3 用例3 查看個(gè)人信息103.6.4 用例4 查看課程表信息103.6.5 用例5 查看考試時(shí)間表113.6.6 用例6 查看考勤信息114 系統(tǒng)的功能模塊設(shè)計(jì)134.1 mysise系統(tǒng)功能結(jié)構(gòu)圖134.2 系統(tǒng)的功能分析與要
10、求134.3 系統(tǒng)功能模塊的設(shè)計(jì)144.3.1 個(gè)人信息模塊144.3.2 課程信息模塊144.3.3 考試時(shí)間模塊154.3.4 考勤信息模塊154.4 系統(tǒng)用例圖165 系統(tǒng)具體實(shí)現(xiàn)邏輯處理模塊實(shí)現(xiàn)185.1 項(xiàng)目結(jié)構(gòu)示意圖185.2 多線程技術(shù)在項(xiàng)目上的應(yīng)用185.3 主菜單頁面邏輯處理195.4 個(gè)人信息頁面邏輯處理225.5 課程表頁面邏輯處理265.6 考試時(shí)間頁面邏輯處理295.7 考勤信息頁面邏輯處理316 系統(tǒng)測(cè)試346.1 使用ddms346.2 系統(tǒng)測(cè)試346.2.1 測(cè)試用例346.2.2 單元測(cè)試366.2.3 非功能性測(cè)試36設(shè)計(jì)總結(jié)37參考文獻(xiàn)38致 謝39前言現(xiàn)
11、在手機(jī)已經(jīng)成為了人們生活中不可或缺的移動(dòng)設(shè)備,沒有手機(jī)會(huì)讓人覺得寸步難行。手機(jī)不僅僅擁有傳統(tǒng)的打電話、發(fā)短信等基本的功能,而基于智能手機(jī)強(qiáng)大的信息處理能力和可擴(kuò)展能力,以及3g網(wǎng)絡(luò)高速數(shù)據(jù)傳輸,越來越多的功能和業(yè)務(wù)將被開發(fā)出來并大規(guī)模的應(yīng)用。目前,得益于谷歌公司的開源策略,擁有眾多優(yōu)點(diǎn)的android系統(tǒng)發(fā)展迅速,各大產(chǎn)商推出大量搭載android系統(tǒng)的手機(jī),android手機(jī)已經(jīng)占據(jù)了手機(jī)市場(chǎng)的絕大份額。在未來幾年必將大放異彩,將極大的推動(dòng)整個(gè)手機(jī)操作系統(tǒng)甚至是互聯(lián)網(wǎng)乃至軟件行業(yè)的發(fā)展。與此同時(shí),開源的android系統(tǒng)讓程序員獨(dú)立開發(fā)應(yīng)用軟件成為可能。通過學(xué)習(xí)與研究,可以將pc電腦上的大量
12、應(yīng)用移植到android系統(tǒng)上。而學(xué)校的信息管理系統(tǒng)mysise系統(tǒng),目前缺少對(duì)手機(jī)客戶端的支持,基于此,開發(fā)一個(gè)mysise系統(tǒng)android手機(jī)客戶端這樣的想法便油然而生。綜上所述,android系統(tǒng)是移動(dòng)平臺(tái)發(fā)展的大勢(shì)所趨,未來將在移動(dòng)領(lǐng)域扮演一個(gè)時(shí)代重要的角色。所以,對(duì)android平臺(tái)進(jìn)行相關(guān)研究并熟悉它是很有必要的,通過了解手機(jī)軟件行業(yè),進(jìn)而把握未來移動(dòng)互聯(lián)網(wǎng)的發(fā)展趨勢(shì)。同時(shí)可以更好的提升目前掌握的軟件開發(fā)專業(yè)技能,開發(fā)出符合社會(huì)發(fā)展需求的應(yīng)用軟件,從而讓生活更加便捷。1 緒論1.1 項(xiàng)目背景當(dāng)今社會(huì)的生活節(jié)奏越來越快,人們對(duì)手機(jī)提出的要求也越來越高,由于手機(jī)市場(chǎng)發(fā)展迅速,手機(jī)操作
13、系統(tǒng)也出現(xiàn)了不同種類,現(xiàn)在市場(chǎng)上主要有四種手機(jī)操作系統(tǒng),分別是windows mobile,symbian,iphone os以及谷歌的android操作系統(tǒng)。其中,擁有開放源代碼優(yōu)勢(shì)的android系統(tǒng)有著最大的發(fā)展前景。那么能否在手機(jī)上擁有自己編寫的校園信息管理系統(tǒng)呢?答案是肯定的,谷歌android系統(tǒng)就能做到。本文涉及的mysise系統(tǒng)就是一個(gè)基于谷歌android手機(jī)平臺(tái)的校園信息管理系統(tǒng)。1.2 mysise系統(tǒng)簡(jiǎn)介mysise系統(tǒng),是為xx大學(xué)定制的校園信息管理系統(tǒng),主要包含有教師使用的管理系統(tǒng)與學(xué)生使用的信息系統(tǒng),本項(xiàng)目主要研究的是學(xué)生使用的信息管理系統(tǒng)部分。學(xué)生信息管理系統(tǒng),
14、每個(gè)學(xué)生都使用唯一的學(xué)號(hào)作為登錄帳號(hào),登錄系統(tǒng)后可以查看自己的各種信息或者做需要的操作,主要功能模塊有:個(gè)人信息、課程表、考試時(shí)間表、考勤信息等等??梢哉f,通過網(wǎng)絡(luò),學(xué)生就可以方便的在客戶端上看到自己想要的校園信息。然而,目前mysise系統(tǒng)僅提供pc端windows操作系統(tǒng)的客戶端支持。1.3 系統(tǒng)的開發(fā)意義目前mysise系統(tǒng)缺少在移動(dòng)設(shè)備上的支持,顯然已經(jīng)不能滿足當(dāng)代大學(xué)生高效學(xué)習(xí)便捷生活的需求了。移動(dòng)設(shè)備硬件的發(fā)展,使得手機(jī)也可以完成更多的功能需求,android系統(tǒng)的出現(xiàn),更是讓手機(jī)進(jìn)入大屏觸屏?xí)r代,在很多日常應(yīng)用上,功能已經(jīng)相當(dāng)接近甚至替代pc機(jī)。而開源的android系統(tǒng)為開發(fā)者
15、移植pc應(yīng)用程序提供了技術(shù)上的支持,因此,在pc上的mysise系統(tǒng)有理由也有可能被移植到android系統(tǒng)的移動(dòng)設(shè)備上來。本課題是研究如何開發(fā)一款android平臺(tái)上的mysise系統(tǒng)客戶端,它將擁有同pc端基本一致的基礎(chǔ)功能,同步的信息數(shù)據(jù),界面簡(jiǎn)潔美觀,操作簡(jiǎn)單方便。能為xx學(xué)生使用該系統(tǒng)帶來更多的方便與快捷,也使得學(xué)校的教學(xué)設(shè)備的提供更為全面。1.4 本文的結(jié)構(gòu)本人在本課題中承擔(dān)后臺(tái)邏輯處理模塊的工作。論文主要結(jié)構(gòu)及內(nèi)容如下:第一章緒論,介紹項(xiàng)目背景,闡述項(xiàng)目開發(fā)的意義。第二章相關(guān)知識(shí)介紹,介紹項(xiàng)目開發(fā)的相關(guān)技術(shù)與知識(shí)。第三章系統(tǒng)需求分析,分析系統(tǒng)開發(fā)的各方面需求,為設(shè)計(jì)做準(zhǔn)備。第四章
16、系統(tǒng)功能設(shè)計(jì),介紹系統(tǒng)主要功能模塊的設(shè)計(jì)。第五章系統(tǒng)功能實(shí)現(xiàn),介紹系統(tǒng)的后臺(tái)邏輯處理模塊的具體實(shí)現(xiàn)。第六章系統(tǒng)測(cè)試,通過測(cè)試驗(yàn)收產(chǎn)品。2 課題相關(guān)知識(shí)介紹2.1 android平臺(tái)介紹2.1.1 android系統(tǒng)簡(jiǎn)介android一詞的本義指“機(jī)器人”,同時(shí)也是google于2007年11月5日宣布的基于linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱。它包括操作系統(tǒng)、中間件、用戶界面和應(yīng)用程序移動(dòng)電話工作所需要的全部軟件,而且不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專業(yè)權(quán)障礙。目前,最新版本為android 2.3 gingerbread(姜餅)和android 4.0 ice cream sandwich
17、(冰激凌三明治)。雖然android是google公司推出的產(chǎn)品,但更貼切的說法應(yīng)該是開放手機(jī)聯(lián)盟的產(chǎn)品。開放手機(jī)聯(lián)盟是由大約30家公司組成的聯(lián)盟,致力于將“更好的”和“開放的”手機(jī)推向市場(chǎng)。其網(wǎng)站上的一句話很好的闡述了這一點(diǎn):“android是本著成為第一個(gè)開放、完整、免費(fèi)。專門針對(duì)移動(dòng)設(shè)備開發(fā)的平臺(tái)這一目標(biāo),完全從零開始創(chuàng)建的。”2.1.2 android系統(tǒng)的特點(diǎn)1、開放性。google與開放手機(jī)聯(lián)盟合作開發(fā)了 android,google通過與運(yùn)營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望通過建立標(biāo)準(zhǔn)化、開放式的移動(dòng)電話軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開放式的生態(tài)
18、系統(tǒng)。2、應(yīng)用程序無界限。android 上的應(yīng)用程序可以通過標(biāo)準(zhǔn) api 訪問核心移動(dòng)設(shè)備功能。通過互聯(lián)網(wǎng),應(yīng)用程序可以聲明它們的功能可供其他應(yīng)用程序使用。3、應(yīng)用程序是在平等的條件下創(chuàng)建的。移動(dòng)設(shè)備上的應(yīng)用程序可以被替換或擴(kuò)展,即使是撥號(hào)程序或主屏幕這樣的核心組件。4、應(yīng)用程序可以輕松地嵌入網(wǎng)絡(luò)組件。應(yīng)用程序可以輕松地嵌入html、javascript 和樣式表,還可以通過 webview 顯示網(wǎng)絡(luò)內(nèi)容。5、應(yīng)用程序可以并行運(yùn)行。android 是一種完整的多任務(wù)環(huán)境,應(yīng)用程序可以在其中并行運(yùn)行。在后臺(tái)運(yùn)行時(shí),應(yīng)用程序可以生成通知以引起注意。2.2 jsoup簡(jiǎn)介jsoup 是一款 jav
19、a 的html 解析器,可直接解析某個(gè)url地址、html文本內(nèi)容。它提供了一套非常省力的api,可通過dom,css以及類似于jquery的操作方法來取出和操作數(shù)據(jù)。由于 jsoup 良好的可擴(kuò)展性 api 設(shè)計(jì),開發(fā)者可以通過選擇器的定義來開發(fā)出非常強(qiáng)大的 html 解析功能。jsoup是基于mit協(xié)議發(fā)布的,可放心使用于商業(yè)項(xiàng)目。jsoup的主要功能如下:1. 從一個(gè)url,文件或字符串中解析html;2. 使用dom或css選擇器來查找、取出數(shù)據(jù);3. 可操作html元素、屬性、文本;在無法得到學(xué)校信息管理系統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)的情況下,在java編程語言中,使用jsoup來解析http網(wǎng)頁
20、從而獲取所需要的數(shù)據(jù),成為了開發(fā)此系統(tǒng)必要的技術(shù)。2.3 開發(fā)工具的選用 2.3.1 eclipse簡(jiǎn)介eclipse 是一個(gè)開放源代碼的、基于 java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 java 開發(fā)工具(java development tools,jdt)。利用它我們可以在項(xiàng)目的編碼、整合方面極大的提高工作效率,它是功能豐富的java集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能。簡(jiǎn)而言之,通過配置android必要的開發(fā)組件和插件,使用java編程語言,eclipse將
21、完整支持android程序的開發(fā)。2.3.2 photoshop簡(jiǎn)介photoshop是平面圖像處理業(yè)界霸主adobe公司推出的跨越pc和mac兩界首屈一指的大型圖像處理軟件。它功能強(qiáng)大,操作界面友好,得到了廣大第三方開發(fā)廠家的支持,從而也贏得了眾多的用戶的青睞。 photoshop支持眾多的圖像格式,對(duì)圖像的常見操作和變換做到了非常精細(xì)的程度,使得任何一款同類軟件都無法望其頸背;它擁有異常豐富的插件(在photoshop中叫濾鏡),熟練后您自然能體會(huì)到“只有想不到,沒有做不到”的境界。2.4 系統(tǒng)運(yùn)行環(huán)境的搭建1、安裝eclipse 3.7:eclipse 3.7 是一款了綠色軟件,下載后直
22、接解壓即可,第一次運(yùn)行時(shí)會(huì)提示配置工作空間,我選擇的路徑是d:eclipse_android_workspace2、安裝java jdk:jdk(java development kit )是一切java應(yīng)用程序的基。windows系統(tǒng)下,直接運(yùn)行.exe文件安裝,安裝完成后,將安裝路徑下的bin文件夾路徑配置到系統(tǒng)環(huán)境變中。3、下載android sdk:需要先下載android在windows平臺(tái)上的的sdk,官方網(wǎng)站上下載最新2.3版本,解壓后點(diǎn)擊sdk manager.exe即可下載所需要的sdk版本。然后就要將android sdk路徑下的tools文件夾路徑配置到系統(tǒng)環(huán)境變中。4、
23、安裝android開發(fā)插件adt:?jiǎn)?dòng)eclipse,打開help-software updates,選擇available software標(biāo)簽,單擊add site,輸入“http:/dl- development tools和android ddms,全勾選,install安裝,成功,提示重啟eclipse。5、配置android sdk路徑:重啟eclipse后,點(diǎn)擊菜單window-preference,打開配置窗口,在左邊選中android,在右邊輸入android sdk的路徑,點(diǎn)擊ok即可。6、創(chuàng)建avd:為使android應(yīng)用程序可以在模擬器上運(yùn)行,必須創(chuàng)建avd。在ecli
24、pse中選擇window-avd manager, 點(diǎn)擊new,填入name,選擇target的api,sd card大小任意(推薦256m),選擇分辨率為wvga800(480*800)。點(diǎn)擊create avd即可完成創(chuàng)建avd。至此android開發(fā)環(huán)境搭建完成。3 系統(tǒng)需求分析3.1 系統(tǒng)設(shè)計(jì)的總體規(guī)則本項(xiàng)目的主要設(shè)計(jì)規(guī)則有:簡(jiǎn)單性:在實(shí)現(xiàn)系統(tǒng)的功能的同時(shí),盡量讓平臺(tái)操作簡(jiǎn)單,這是非常重要的。美觀性:在實(shí)現(xiàn)系統(tǒng)的功能的同時(shí),盡量提供給用戶較高的視覺享受和操作體驗(yàn)。針對(duì)性:該系統(tǒng)設(shè)計(jì)是xx信息管理系統(tǒng)的定向開發(fā)設(shè)計(jì),所以具有專業(yè)突出和很強(qiáng)的針對(duì)性。實(shí)用性:該系統(tǒng)能完成mysise系統(tǒng)各個(gè)
25、子板塊的信息查看功能,具有良好的實(shí)用性。3.2 可行性分析開發(fā)新系統(tǒng)的要求往往來自對(duì)原系統(tǒng)有更高的要求。由于原mysise系統(tǒng)僅僅支持pc端的使用,而新系統(tǒng)則是針對(duì)移動(dòng)端的支持,故而有開發(fā)的必要??尚行匝芯渴菫榱伺宄到y(tǒng)開發(fā)的項(xiàng)目是不是可以實(shí)現(xiàn)和值得進(jìn)行研究的過程,實(shí)際上是一次大大簡(jiǎn)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過程,所以,進(jìn)行可執(zhí)行性的分析是非常必要的,也是很重要的,經(jīng)過最初的設(shè)計(jì)目標(biāo)和理論知識(shí)得出以下五點(diǎn)的可行性分析:(1)技術(shù)上的可行性。由于選用的開發(fā)平臺(tái)android是一個(gè)開源的平臺(tái),這意味著開發(fā)者可以獲取絕大部分的開源代碼,并且google提供了一套成熟又全面的api,對(duì)于系統(tǒng)的開發(fā),基本
26、上不存在較大技術(shù)難點(diǎn)。(2)數(shù)據(jù)獲取的可行性。由于開發(fā)的系統(tǒng)是一個(gè)校園信息管理系統(tǒng),因?yàn)楸仨毚嬖谝粋€(gè)學(xué)生信息的數(shù)據(jù)庫。目前的情況將導(dǎo)致我們無法直接得到學(xué)校提供的數(shù)據(jù)庫,而我們選用了另外一個(gè)方法。因?yàn)樵撓到y(tǒng)與pc端的數(shù)據(jù)一致,而pc端的使用載體是瀏覽器,這樣我們便可以在android上使用jsoup技術(shù)解析http網(wǎng)頁而獲取所需要的信息數(shù)據(jù)。(3)運(yùn)行可行性。該系統(tǒng)需要搭建android平臺(tái)開發(fā)環(huán)境,使用avd虛擬機(jī),并且能正常連接網(wǎng)絡(luò),就可以正常運(yùn)行。(4)經(jīng)濟(jì)可行性:該平臺(tái)設(shè)計(jì)只是作為本人的畢業(yè)設(shè)計(jì),又因?yàn)楸救说脑O(shè)計(jì)能力有限,其功能還不能完善,所以沒有什么經(jīng)濟(jì)效益可談。(5)法律可行性:該平
27、臺(tái)是作為畢業(yè)設(shè)計(jì)與商業(yè)無關(guān),又因?yàn)槭亲灾鏖_發(fā)設(shè)計(jì),因此不會(huì)構(gòu)成侵權(quán),在法律上是可行的。通過以上的可行性分析,我將在android平臺(tái)開發(fā)環(huán)境下,采用java語言和eclipse編程工具,對(duì)該系統(tǒng)進(jìn)行研究開發(fā)。3.3 系統(tǒng)運(yùn)行環(huán)境需求1、開發(fā)者(pc端):系統(tǒng)開發(fā)工具:eclipse3.7運(yùn)行平臺(tái):windows xp / windows 7 / linux運(yùn)行環(huán)境:java jdk-1.6、android_2.3.3_sdk、 adt 16.01模擬器參數(shù):android 2.3.3 avd (分辨率480*800、推薦內(nèi)存256mb)2、使用者(移動(dòng)設(shè)備端):移動(dòng)終端系統(tǒng)需求:android
28、系統(tǒng)移動(dòng)終端硬件需求:屏幕分辨率480*800、cpu主頻=640mhz、運(yùn)行內(nèi)存ram=256m、可用內(nèi)存rom=64m網(wǎng)絡(luò)需求:wifi / gsm / wcdma / cdma20003.4 用戶需求分析本課題研究的校園信息管理系統(tǒng)mysise系統(tǒng),主要面向的使用對(duì)象是xx大學(xué)xx軟件學(xué)院在校大學(xué)生。每位xx在校學(xué)生都擁有mysise系統(tǒng)帳號(hào)(唯一的學(xué)號(hào)及密碼),系統(tǒng)對(duì)于學(xué)生的學(xué)習(xí)及生活非常重要。大部分學(xué)生擁有android系統(tǒng)智能手機(jī)或者平板電腦,且習(xí)慣使用移動(dòng)設(shè)備來完成可能的日常應(yīng)用,當(dāng)然也渴望mysise系統(tǒng)android客戶端來為其學(xué)習(xí)生活提供便捷。無論在教學(xué)區(qū)還是生活區(qū),較好的
29、網(wǎng)絡(luò)覆蓋為其使用網(wǎng)絡(luò)應(yīng)用提供了保障。3.5 系統(tǒng)的設(shè)計(jì)目標(biāo)本課題的設(shè)計(jì)目標(biāo)是在android平臺(tái)上實(shí)現(xiàn)一個(gè)校園信息管理系統(tǒng)。要求該系統(tǒng)擁有美觀的ui界面,供用戶登錄、查看信息使用,包括:查看個(gè)人信息、查看課程表、查看考試時(shí)間、查看考勤信息等功能。系統(tǒng)擁有快速的操作體驗(yàn),代碼編寫使用了多線程技術(shù),使得界面顯示與網(wǎng)絡(luò)連接、數(shù)據(jù)處理可以同時(shí)進(jìn)行。系統(tǒng)信息數(shù)據(jù)來源取自pc端系統(tǒng)的網(wǎng)絡(luò),保證了準(zhǔn)確與同步。3.6 用例分析與建模3.6.1 用例1 登錄參與者:用戶前置條件:正確學(xué)號(hào)已經(jīng)存在。目的:進(jìn)入系統(tǒng)綜述:1用戶填寫學(xué)號(hào)及密碼2系統(tǒng)驗(yàn)證信息,將用戶填寫的信息傳送到系統(tǒng)驗(yàn)證。3登錄成功,顯示主菜單信息。
30、替代過程:使用該系統(tǒng)的用戶必須先登錄,若登錄失敗,是由于客戶輸入的帳號(hào)或者密碼錯(cuò)誤,系統(tǒng)允許客戶重新輸入。3.1 登錄模塊用例圖登錄入口輸入學(xué)號(hào)和密碼正確?登錄成功進(jìn)入主菜單界面是否將學(xué)號(hào)和密碼送往系統(tǒng)核對(duì)3.2 用戶登錄流程圖3.6.2 用例2 主菜單前置條件:登錄成功。參與者:用戶目的:讓用戶選擇要執(zhí)行的功能綜述:本界面設(shè)置4個(gè)功能按鈕,讓用戶選擇要執(zhí)行的功能,隨后執(zhí)行響應(yīng)的操作。代替過程:如果用戶注銷登錄,則進(jìn)入用例1。3.3 主菜單功能用例圖3.6.3 用例3 查看個(gè)人信息前置條件:于用例2選擇了個(gè)人信息按鈕。參與者:用戶目的:讓用戶查看個(gè)人信息綜述:1查看基本信息:用戶進(jìn)入此功能頁面
31、能看到個(gè)人基本信息。2查看必修課信息:用戶進(jìn)入此功能頁面能看到必修課信息。3查看選修課信息:用戶進(jìn)入此功能頁面能看到選修課信息。代替過程:1. 該界面下方設(shè)置3個(gè)功能按鈕,可選擇查看需要的信息。2. 如果用戶返回,則進(jìn)入用例2。3.4 個(gè)人信息功能用例圖3.6.4 用例4 查看課程表信息前置條件:于用例2選擇了課程表按鈕。參與者:用戶目的:讓用戶查看課程表信息綜述:查看當(dāng)天課程表信息代替過程:1. 該界面下方設(shè)置5個(gè)功能按鈕,可選擇查看星期一到星期五的課程信息。2. 如果用戶返回,則進(jìn)入用例2。3.5 課程信息功能用例圖3.6.5 用例5 查看考試時(shí)間表前置條件:于用例2選擇了考試時(shí)間按鈕。參
32、與者:用戶目的:讓用戶查看考試時(shí)間表綜述:查看目前的考試時(shí)間安排代替過程:如果用戶返回,則進(jìn)入用例2。3.6 考試時(shí)間功能用例圖3.6.6 用例6 查看考勤信息前置條件:于用例2選擇了考勤信息按鈕。參與者:用戶目的:讓用戶查看考勤信息綜述:查看當(dāng)前學(xué)年學(xué)期的考勤信息代替過程:如果用戶返回,則進(jìn)入用例2。3.7 考勤信息功能用例圖4 系統(tǒng)的功能模塊設(shè)計(jì)4.1 mysise系統(tǒng)功能結(jié)構(gòu)圖登錄界面loginactivity主菜單界面mainactivity個(gè)人信息infoactivity課程表curricactivity考試時(shí)間timeactivity考勤信息attendactivity網(wǎng)絡(luò)連接cu
33、stomerhttpclient顯示考試時(shí)間顯示考勤信息獲取當(dāng)天日期顯示當(dāng)天課程顯示基本信息必修課信息按鈕選修課信息按鈕基本信息按鈕星期一按鈕星期二按鈕星期三按鈕星期四按鈕星期五按鈕顯示響應(yīng)信息顯示課程信息注銷登錄退出程序4.1 系統(tǒng)功能結(jié)構(gòu)示意圖4.2 系統(tǒng)的功能分析與要求經(jīng)過前期的思考和研究,總結(jié)出該系統(tǒng)需要完成的一些具體功能,分析如下:1、能完成網(wǎng)絡(luò)連接并實(shí)現(xiàn)真實(shí)帳號(hào)登錄2、能完成對(duì)板塊頁面的解析并獲取需要的信息數(shù)據(jù),通過后臺(tái)邏輯處理,實(shí)現(xiàn)查看信息的顯示。3、使用多線程同步處理前臺(tái)界面的刷新和后臺(tái)網(wǎng)絡(luò)處理。4、可考慮添加的周邊功能,例如xx新聞、xx地圖。4.3 系統(tǒng)功能模塊的設(shè)計(jì)4.3
34、.1 個(gè)人信息模塊進(jìn)入個(gè)人信息模塊刷新ui界面網(wǎng)絡(luò)連接解析網(wǎng)頁獲取基本信息功能按鈕解析網(wǎng)頁獲取必修課信息解析網(wǎng)頁獲取選修課信息主線程子線程4.2 個(gè)人信息模塊流程圖4.3.2 課程信息模塊進(jìn)入課程信息模塊刷新ui界面網(wǎng)絡(luò)連接解析網(wǎng)頁獲取課程表功能按鈕主線程子線程獲取日期周末?無課程取得數(shù)據(jù)判斷星期幾是否4.3 課程信息模塊流程圖4.3.3 考試時(shí)間模塊進(jìn)入考試時(shí)間模塊刷新ui界面網(wǎng)絡(luò)連接解析網(wǎng)頁主線程子線程有考試課程?獲取考試時(shí)間表無考試課程否是4.4 考試時(shí)間模塊流程圖4.3.4 考勤信息模塊進(jìn)入考勤信息模塊刷新ui界面網(wǎng)絡(luò)連接解析網(wǎng)頁主線程子線程有課程?獲取考勤信息無考勤信息否是4.5 考
35、勤信息模塊流程圖4.4 系統(tǒng)用例圖4.6 用戶前臺(tái)系統(tǒng)用例圖4.7 程序后臺(tái)系統(tǒng)用例圖5 系統(tǒng)具體實(shí)現(xiàn)邏輯處理模塊實(shí)現(xiàn)5.1 項(xiàng)目結(jié)構(gòu)示意圖 5.1 項(xiàng)目結(jié)構(gòu)示意圖5.2 多線程技術(shù)在項(xiàng)目上的應(yīng)用在跳轉(zhuǎn)到每一個(gè)功能頁面的時(shí)候,因?yàn)閱尉€程的順序邏輯執(zhí)行,會(huì)出現(xiàn)這樣的情況:只有執(zhí)行完前一句代碼才會(huì)執(zhí)行下一句代碼。而我們的程序表現(xiàn)出來給用戶的頁面信息又是必須先從網(wǎng)絡(luò)獲取數(shù)據(jù)后再表現(xiàn)出來,這樣的網(wǎng)絡(luò)工作相對(duì)來說是比較耗時(shí)的,同時(shí)也就會(huì)使程序跳轉(zhuǎn)后出現(xiàn)黑屏的情況,只有等待網(wǎng)絡(luò)工作處理完后才出現(xiàn)ui界面。有為了讓程序避免處理網(wǎng)絡(luò)工作這樣耗時(shí)比較長(zhǎng)的操作而導(dǎo)致頁面刷新緩慢的尷尬現(xiàn)象,我們使用了多線程來分開處
36、理ui刷新跟網(wǎng)絡(luò)操作。具體代碼如下:/ 創(chuàng)建子線程來處理網(wǎng)絡(luò)工作thread t = new thread() public void run() / 網(wǎng)絡(luò)工作network();/ 啟動(dòng)ui線程handler.post(updateresults); ;t.start();/ 啟動(dòng)子線程 / ui線程 runnable updateresults = new runnable() public void run() updateui(); ; / 更新ui public void updateui() / 網(wǎng)絡(luò)工作具體實(shí)現(xiàn) public void network() 雖然取得數(shù)據(jù)后的ui刷新
37、還是必須等待網(wǎng)絡(luò)工作network()的完成,但那已經(jīng)是子線程的事了,主線程還是可以順利地執(zhí)行下去,先將界面展現(xiàn)給用戶,給用戶一種程序響應(yīng)速度很快的感覺。5.3 主菜單頁面邏輯處理系統(tǒng)通過前面的網(wǎng)絡(luò)連接跟登錄驗(yàn)證之后(網(wǎng)絡(luò)連接模塊為同組成員饒澤華的工作),便來到了主菜單界面。這個(gè)部分的內(nèi)容主要使用了4個(gè)按鈕,分別對(duì)應(yīng)了個(gè)人信息、課程表、考試時(shí)間、考勤信息這4個(gè)功能。代碼的編寫主要是使用之前登錄后的httpclient保持網(wǎng)絡(luò)會(huì)話,然后連接“:7001 /sise/module/student_states/student_select_class/main.jsp ”來獲取 html頁面信息,
38、這部分的重點(diǎn)工作在于通過jsoup解析網(wǎng)頁,獲得以上4個(gè)功能的相應(yīng)http地址,以供后面的操作。例如個(gè)人信息部分,網(wǎng)頁源代碼是:5.2 主菜單頁面源碼(個(gè)人信息部分)圖可以看到,用紅色框選出來的這段代碼,正是一個(gè)jsp頁面的地址,而其實(shí)有用部分則是在href= 到 之間的這一段,可以看出是一個(gè)相對(duì)地址,通過試驗(yàn),在前面加上:7001則可以成為一個(gè)絕對(duì)地址,讓后續(xù)的操作得以實(shí)現(xiàn)。用jsoup解析網(wǎng)頁來獲取href= 到 之間的這一段,首先要定位到帶有onclick屬性的td標(biāo)簽,再得到onclick的屬性值,具體代碼實(shí)現(xiàn)為:/ 抽出td標(biāo)簽中的onclick屬性的值public string g
39、etlink(int i) element link = doc.select(tdonclick).get(i);return link.attr(onclick);為了減少代碼的重復(fù),把這部分的實(shí)現(xiàn)寫成一個(gè)方法,只需要傳入表示順序的i值即可得到相應(yīng)的內(nèi)容。然后還發(fā)現(xiàn),我們只是得到onclick的屬性值,為了得到href= 到 之間的這一段相對(duì)地址,還需要對(duì)每個(gè)結(jié)果做一個(gè)比較精確的截取,代碼實(shí)現(xiàn)如下:string infolinkstr = getlink(0);infourl = baseurl + infolinkstr.substring(54, infolinkstr.length(
40、) - 1);到了這一步,infourl才是真正的絕對(duì)地址,獲取個(gè)人信息模塊的http地址工作才算完成。同理,可以取得其他三個(gè)子功能模塊的http地址,具體如下:1、課程表部分:5.3 主菜單頁面源碼(課程表部分)圖定位代碼及截取代碼,最終取得curriurl:string curriclinkstr = getlink(1);curricurl = baseurl +curriclinkstr.substring(40, curriclinkstr.length()-1);2、考試時(shí)間表部分:5.4 主菜單頁面源碼(考試時(shí)間表部分)圖定位代碼及截取代碼,最終取得timeurl:string
41、timelinkstr = getlink(2);timeurl = baseurl + timelinkstr.substring(49, timelinkstr.length() - 1);3、考勤信息部分:5.5 主菜單頁面源碼(考勤信息部分)圖定位代碼及截取代碼,最終取得attendurl:string attendlinkstr = getlink(3);attendurl = baseurl + attendlinkstr.substring(49,attendlinkstr.length()-1);5.4 個(gè)人信息頁面邏輯處理個(gè)人信息頁面的邏輯處理,主要工作還是使用jsoup技術(shù)
42、解析網(wǎng)頁,先將基本信息的數(shù)據(jù)取得,顯示出來。例如獲取學(xué)號(hào)信息,頁面源代碼如下:5.6 個(gè)人信息頁面源碼(學(xué)號(hào)部分)圖學(xué)號(hào)信息是在div標(biāo)簽中的文本,具體實(shí)現(xiàn)代碼如下:/ 抽出div標(biāo)簽中的文本public string getdiv(int i) element div = doc.select(div).get(i);return div.text() + n;為了減少代碼的重復(fù),把這部分的實(shí)現(xiàn)寫成一個(gè)方法,只需要傳入表示順序的i值即可得到相應(yīng)的內(nèi)容。取得學(xué)號(hào)的代碼:string num = 學(xué)號(hào): + getdiv(2);同理,個(gè)人基本信息的其他信息數(shù)據(jù)也是通過定位,調(diào)用getdiv方法來
43、獲得,具體實(shí)現(xiàn)代碼如下:5.7 個(gè)人信息頁面源碼(姓名部分)圖string name = 姓名: + getdiv(3);string grade = 年級(jí): + getdiv(4);string special = 專業(yè): + getdiv(5);string identity = 身份證: + getdiv(6);string email = 電子郵箱: + getdiv(7);string teacher = 班主任: + getdiv(8);string counselor = 輔導(dǎo)員: + getdiv(9);string required = 必修課已獲得學(xué)分: + getdiv(
44、17);string elective = 選修課已獲得學(xué)分: + getdiv(22);string accumulate = 累計(jì)已獲得學(xué)分: + getdiv(26);string indispensable = 本專業(yè)本年級(jí)畢業(yè)需修滿學(xué)分: + getdiv(34);實(shí)際顯示效果:5.8 基本信息界面圖本子功能模塊還具備了查看必修課信息和選修課信息的功能,我在界面下方設(shè)置了3個(gè)按鈕,分別設(shè)置了對(duì)應(yīng)的操作,會(huì)將必修課信息和選修課信息也顯示出來,響應(yīng)速度非??臁.?dāng)然了,數(shù)據(jù)的取得還是要解析頁面,具體如下:例如取得必修課信息數(shù)據(jù),網(wǎng)頁源代碼是:5.9 個(gè)人信息頁面源碼(必修課信息部分)圖實(shí)際
45、上,必修課信息是存放在頁面第7個(gè)table下的,我通過遍歷第7個(gè)table標(biāo)簽下的tr標(biāo)簽、td標(biāo)簽可以取得所有必修課信息,而在手機(jī)屏幕上顯示,我覺得有一些相對(duì)雞肋的信息可以不顯示出來,因此只選用了課程代碼、課程名稱和成績(jī),這樣3個(gè)信息已經(jīng)足夠代表一門課程,讓界面簡(jiǎn)潔易看,也讓處理速度更快。具體實(shí)現(xiàn)代碼:/ 解析網(wǎng)頁,取得必修課信息public void getrequired() int i = 0;string s = new string10;/ 獲得第7個(gè)table標(biāo)簽element table = doc.select(table).get(6);/ 獲得第7個(gè)table標(biāo)簽下的tr
46、標(biāo)簽elements trs = table.select(tr);if (trs != null) / 遍歷第5個(gè)table標(biāo)簽下的tr標(biāo)簽for (element tr : trs) / 獲得第5個(gè)table標(biāo)簽下的tr標(biāo)簽下的td標(biāo)簽elements tds = tr.select(td);if (tds != null) / 遍歷第5個(gè)table標(biāo)簽下的tr標(biāo)簽下的td標(biāo)簽for (element td : tds) / 將每個(gè)td標(biāo)簽的文本存入字符串?dāng)?shù)組ssi = td.text();i+;if (s1 != null) / 按照格式輸出requiredstr = requireds
47、tr + s1 + : + s2 + 成績(jī): + s8 + n;i = 0;同理,選修課信息的數(shù)據(jù)取得,也跟必修課是一樣的,只不過必修課信息是存放在頁面第10個(gè)table標(biāo)簽下的。具體代碼實(shí)現(xiàn)如下:/ 解析網(wǎng)頁,取得選修課信息public void getelective() int i = 0;string s = new string9;/ 獲得第10個(gè)table標(biāo)簽下element table = doc.select(table).get(9);/ 獲得第10個(gè)table標(biāo)簽下的tr標(biāo)簽elements trs = table.select(tr);if (trs != null) /
48、 遍歷第10個(gè)table標(biāo)簽下的tr標(biāo)簽for (element tr : trs) / 獲得第10個(gè)table標(biāo)簽下的tr標(biāo)簽下的td標(biāo)簽elements tds = tr.select(td);if (tds != null) / 遍歷第10個(gè)table標(biāo)簽下的tr標(biāo)簽下的td標(biāo)簽for (element td : tds) / 將每個(gè)td標(biāo)簽的文本存入字符串?dāng)?shù)組ssi = td.text();i+;if (s1 != null) / 按照格式輸出electivestr = electivestr + s0 + : + s1 + 成績(jī):+ s7 + n;i = 0;實(shí)際顯示效果:5.10
49、必修課信息與選修課信息界面圖5.5 課程表頁面邏輯處理課程表頁面的邏輯處理,主要工作還是使用jsoup技術(shù)解析網(wǎng)頁, 獲取完整的課程表,然后獲取當(dāng)天的日期,將當(dāng)天的課程信息顯示出來。取得系統(tǒng)當(dāng)天日期,網(wǎng)頁源代碼是:5.11 課程表頁面源碼(日期信息部分)圖只需要找到帶有face屬性的font標(biāo)簽即可,實(shí)現(xiàn)代碼:/ 取得font標(biāo)簽中含有face屬性的文本內(nèi)容,即是當(dāng)天日期element font = doc.select(fontface).first();string date = font.text();這樣,字符串data就是我們需要的當(dāng)天日期。取得完整的課程表,網(wǎng)頁源代碼是:5.12
50、課程表頁面源碼(課程表部分)圖先仔細(xì)觀察源代碼,課程表信息是存放在頁面第7個(gè)table中的,解讀存放內(nèi)容的規(guī)則:橫向看,第一行是標(biāo)題,可以得知每行8個(gè)單元格的內(nèi)容是對(duì)應(yīng)一周7天的課程信息,第二行起是每一個(gè)時(shí)間段的課程;縱向看,第一列是時(shí)間段標(biāo)題,然后后面7列則是對(duì)應(yīng)了一周7天。這樣的一個(gè)表格,從解析上來講,應(yīng)該從橫向來解析,因?yàn)槊恳恍惺且粋€(gè)tr標(biāo)簽,而每一行的tr標(biāo)簽包含了8個(gè)td標(biāo)簽,即每一行的每個(gè)單元格。在每取得一行數(shù)據(jù)后,使用5個(gè)字符串?dāng)?shù)組來存放周一到周五的課程數(shù)據(jù),這樣再解析完成后,我們所需要的課程信息就在這5個(gè)字符串?dāng)?shù)組中了,且順序?qū)?yīng)了每一天的每一個(gè)時(shí)間段。具體代碼實(shí)現(xiàn)如下:/ 解
51、析網(wǎng)頁,取得所有課程信息public void getcurrics() int i = 0;int j = 0;string s = new string8;/ 獲得第7個(gè)table標(biāo)簽element table = doc.select(table).get(6);/ 獲得第7個(gè)table標(biāo)簽下的tr標(biāo)簽elements trs = table.select(tr);if (trs != null) / 遍歷第7個(gè)table標(biāo)簽下的tr標(biāo)簽for (element tr : trs) / 獲得第7個(gè)table標(biāo)簽下的tr標(biāo)簽下的td標(biāo)簽elements tds = tr.select(td
52、);if (tds != null) for (element td : tds) / 將每個(gè)td標(biāo)簽的文本存入字符串?dāng)?shù)組ssi = td.text();i+;i = 0;mondayj = s1; / 表格每一行的第2格內(nèi)容存入monday字符串?dāng)?shù)組tuesdayj = s2;/ 表格每一行的第3格內(nèi)容存入tuesday字符串?dāng)?shù)組wednesdayj = s3;/ 表格每一行的第4格內(nèi)容存入wednesday字符串?dāng)?shù)組thursdayj = s4;/ 表格每一行的第5格內(nèi)容存入thursday字符串?dāng)?shù)組fridayj = s5;/ 表格每一行的第6格內(nèi)容存入friday字符串?dāng)?shù)組j+;跳轉(zhuǎn)頁面的最初會(huì)顯示當(dāng)天對(duì)應(yīng)的課程,當(dāng)然了,如果是周末則會(huì)顯示無課程。隨后在界面下方設(shè)置了5個(gè)按鈕,分別對(duì)應(yīng)了星期一到星期五,可供用戶查看一周的課程,點(diǎn)擊則會(huì)顯示相應(yīng)內(nèi)容,響應(yīng)速度非常快。實(shí)際顯示效果:5.13 課程表界面圖5.6 考
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025藝術(shù)品展覽合同
- 室內(nèi)裝修合同書范本
- 收購公司股合同范例
- 怪獸炒飯加盟合同范例
- 居間供電合同范例
- 絲巾購貨合同范例
- 雜志印刷合同范例
- 小區(qū)黃金收購合同范例
- 買賣合同附帶安裝合同范例
- 農(nóng)田蔬菜收購合同范例
- 列車車門故障應(yīng)急處理方案
- 2024年度-Pitstop教程去水印
- 2024年02月天津市口腔醫(yī)院派遣制人員招考聘用40人筆試歷年(2016-2023年)真題薈萃帶答案解析
- 聲明書:個(gè)人婚姻狀況聲明
- 幼兒園年檢整改專項(xiàng)方案
- 新管徑流速流量對(duì)照表
- 20以內(nèi)退位減法口算練習(xí)題100題30套(共3000題)
- 咯血病人做介入手術(shù)后的護(hù)理
- 境外投資環(huán)境分析報(bào)告
- 便攜式氣體檢測(cè)儀使用方法課件
- 《壓力平衡式旋塞閥》課件
評(píng)論
0/150
提交評(píng)論