摘要 1
Abstract II
第一章緒論 1
1.1課題研究的背景與意義 1
1.2國內外研究現狀 2
1.3論文的研究內容和章節安排 3
第二章系統開發技術研究 4
2.1Android系統簡介 4
2.1.1Android系統概述 4
2.1.2Android 平臺架構 6
2.2系統開發環境搭建 8
2.2.1MyEclipse 8
2.2.2Tomcat 服務器 10
2.2.3MySQL 數據庫 11
2.3MVC設計模式 12
2.4本章小結 14
第三章系統需求分析與總體設計 15
3.1系統的需求分析 15
3.2系統的總體設計 15
3.2.1系統的Android端設計 17
3.2.2系統的服務器端設計 18
3.3系統的整體框架 19
3.4系統的模塊分析 19
3.5本章小結 20
第四章系統功能模塊和數據庫設計 21
4.1教學管理端功能模塊的設計 21
4.1.1院校信息管理模塊的設計 22
4.1.2課程信息管理模塊的設計 23
4.1.3新聞信息管理模塊的設計 23
4.2教師客戶端功能模塊的設計 24
4.2.1信息查詢模塊的設計 25
4.2.2成績信息管理模塊的設計 25
4.2.3教學資源管理模塊的設計 26
4.3學生客戶端功能模塊的設計 26
4.4系統數據庫的設計 27
4.4.1數據庫需求分析 27
4.4.2數據庫的結構設計 28
4.5本章小結 32
第五章教學信息管理系統的實現 33
5.1數據庫操作類的實現 33
5.2 Android客戶端與服務器端之間通信實現 34
5.3教學管理端功能模塊的實現 35
5.3.1院系信息管理功能的實現 35
5.3.2教師信息管理功能的實現 37
5.3.3學生信息管理功能的實現 38
5.3.4課程信息管理功能的實現 39
5.3.5新聞信息管理功能的實現 40
5.4教師客戶端功能模塊的實現 41
5.4.1成績信息管理功能的實現 42
5.4.2教學資源管理功能的實現 43
5.5學生客戶端功能模塊的實現 43
5.5.1信息查詢功能的實現 44
5.5.2移動選課功能的實現 45
5.5.3課程學習功能的實現 46
5.5.4課程收藏功能的實現 47
5.6 Web端管理模塊的實現 49
5.7本章小結 50
第六章總結與展望 51
6.1總結 51
6.2展望 51
參考文獻 53
在校期間發表的論文、科研成果等 56
致謝 57
1.1課題研究的背景與竄義
隨著3G通信網絡的發展、4G時代的到來和無線網絡覆蓋范圍的擴展,以智能 手機、平板電腦等設備為載體的移動應用改變了人們獲取信息的途徑和生活方式。 美國市場研究公司IDC發布了 2014年全球智能手機出貨量數據,Android與iOS 系統的智能手機岀貨量占全部智能機出貨量的96.3%,其中Android的出貨量為 10.59億部,比去年增長32%;市場份額為81.5%, 2013年同期占78.7%。iOS出貨 量為1.927億部,市場份額為14.8%, 2013年同期占15.1%叫 由此看來,Android 作為Google移動互聯網戰略的重要組成部分,憑借其擴展性、可移植性特點以及 友好的界面和豐富的第三方軟件的優勢,越來越受到人們的青睞,這些優勢給傳統 的互聯網行業提供了新的發展方向和空間,促進了移動互聯網的可持續發展,同時 匯集了許多不同的行業叫2015年國家總理李克強提出制定“互聯網+”的行動計 劃,推動移動互聯網與現代制造業的結合,隨即“互聯網+”成為關注的焦點,同 時基于移動終端的互聯網應用業務逐漸成為各大移動運營商業戶戰略發展的重點。 隨著智能手機用戶數量的不斷增加,尤其是基于Android系統的智能手機在師生的 生活學習中廣泛應用,在移動網絡應用的主流趨勢下叫如何將高校教學信息服務 移植到智能終端備受高校師生的關注。
PC端的教學信息管理系統和網絡學習受到了時間與空間的限制,已經無法滿 足隨時隨地的信息交流和信息服務的需求,給師生之間的溝通和學生學習效率以及 教學管理帶來了一定的阻礙,影響了正常的教學計劃和質量⑷。從此角度出發,本 文充分的將移動通信技術和教學理念高度融合,結合Android移動開發平臺,以Java 開發語言為基礎,通過My Eclipse平臺,開發Android智能終端教學信息管理系統, 解決目前學校PC端的教學信息管理系統存在的弊端,推動教學移動智能化的發展, 提升教學效率。教學管理員可通過智能終端完成簡單的院系、教師、學生、課程等 信息的管理和教學動態信息的發布,教師可以進行學生成績的錄入、學習資源的發 布,學生可以進行簡單的信息查詢和課程學習。智能設備強大的信息處理能力和高 效的數據傳輸率能夠滿足師生們隨時隨地獲取教育信息、教育資源和教育服務的需 求,在一定程度上可簡化教學工作,實現人性化管理,改善教學質量,同時為師生
提供了協作式的虛擬學習社區,滿足當代學生個性化的需求,推動學習積極性,提 高學習效果,該系統的實現保證和促進了教學數字化的發展。
1.2國內外研究現狀
關于教學系統的現代信息化管理,國外的許多大學從六七十年代就已經開始進 行深入研究和探索,如今比較成熟,已形成了一套規范科學的管理模式。在國外, 由美國麻省理工學院首次在20世紀70年代提出數字化校園的觀念,并經四十多年 的努力,已成功建立了一個較成熟的數字化校園平臺叫目前美國有85%的學院和 大學可以為學生提供在線課程目錄服務,72%的學院和大學可以為學生提供在線課 程注冊服務,歐洲的各個大學也相繼創建了信息化教學管理平臺。
如今國內高校校園網的建成,在學校師生之間的信息傳播中占據非常重要的地 位。校園網的便捷和高效為師生提供了極大的便利。在校園網的建成基礎上,大多 數高校選用的教學信息管理系統是Web端模式,在局域網范圍內借助PC機連接服 務器進行系統的操作。
隨著移動互聯網的發展,數字信息化的教學管理系統廣泛應用于我國高等教育 中,促進了教學的改革,智能終端強大的便攜性和高效的數據傳輸更是為移動教學 信息管理提供了有力的技術支持。北京大學現代教育中心教育實驗室作為國內第一 個移動教育實驗室,參與了教育部一個關于移動教育理論與實踐方向的試點項目, 該項目共持續了 4年,開始于2002年1月至2005年12月,先后開發了 3個版本 的移動學習平臺,有一期是基于GSM網絡和移動設備的移動教育平臺,主要是使用 短信息實現基于SMS的移動網和互聯網的教學信息共享叫上海電視大學通過“移 動校園”計劃的實施即教師在課堂教學外利用智能手機和學生交互,學校的80000 多名學生成為國內首批手機遠程教育的受益者。該計劃主要分為兩大部分:實時通 知和教學輔導。實時通知主要教師借助移動平臺向學生發布各種教學信息的通知, 如考試時間、上課時間等;教學輔導是為了增加教師與學生的課外互動時間巾。
Android作為移動教學信息管理的開發平臺,因其顯著開放性、硬件的豐富性、 開發的便捷性,擁有龐大的用戶群,前景被廣泛看好,是相當理想的開發和學習平 臺C
國內外高校對教育教學水平的重視程度和Android平臺的成熟度表明了移動教 學信息管理系統將會成為國內外教育研究關注的焦點。
本文開發的基于Android的教學信息管理系統,面向高校的廣大師生,用戶角 色包括管理員、教師和學生,其關鍵特點如下:
1、 覆蓋的功能模塊包括:院系、教師、學生、課程、選課成績、教學資源和 新聞等信息的管理和查詢。
2、 教學信息管理的公開性:通過賦予管理員、教師和學生不同的登陸權限, 提高系統的安全性。
3、 系統的現代化管理:借助移動通信技術來學校教學信息進行管理,是管理 系統現代化的最好體現。
4、 Android操作系統:以具備用戶數量最多和應用最廣泛兩大優勢的Android 作為開發平臺,提高系統的適用性。
綜上所述,設計開發一個基于Android的教學管理系統,具有實用性、可擴展 性和伸縮性,對教學管理具有較大的研究意義和價值。
1.3論文的研究內容和章節安排
本文旨在研究基于Android的教學信息管理系統的設計思路和開發技術,結合 MVC的分層設計模式和Android移動終端技術應用,設計出一套適合教務管理員、 教師以及學生的移動教學信息服務應用軟件,實現了高校教學信息管理系統的部分 功能。主要內容如下:
第1章闡述了基于Android的教學管理系統的研究背景與意義,概述了教學信 息管理在國內外的發展現狀并介紹論文的研究內容和具體章節安排。
第2章對系統的開發平臺、運行環境和平臺的搭建進行了分析。
第3章對系統進行需求分析和總體架構設計。首先對移動教學信息管理系統進 行需求分析,得出系統實現的意義,繼而介紹了系統的整體設計和框架,最后對功 能模塊進行了簡單的概括。
第4章介紹了系統的各個功能模塊和數據庫的設計。
第5章研究了客戶端和服務器端之間的通信,接著著重論述了各個功能模塊的 具體實現。
第6章對本論文進行了總結,并對今后的設計任務做出展望。
2.1Android系統簡介
2.1.1Android系統概述
基于Linux內核的Android手機操作系統起源于早期Andy Rubin創建的一家名 為Android的公司。Andy Rubin主要目的是為開發者提供一個免費的移動終端平臺。 后來,谷歌收購了 Android公司,于2007年11月5日正式推出了名為Android的 手機操作系統,還宣布建立由34家手機制造商、軟件開發商、電信運營商和芯片 廠商共同組成的全球全球性聯盟組織,并與84家硬件制造商、軟件開發商、電信 營運商組成的開放手持設備聯盟(Open Handset Alliance, OHA)來共同研發和改良 Android系統訊",并在Android平臺上開發智能移動業務。
Android的出現不僅讓Google在移動互聯網時代成功地邁開了第一步,而且在 移動互聯網界掀起了新一輪熱潮。2008年10月21 0, Android操作系統在Apache Software License (ASL)協議下開放源代碼,同時Google在Apache協議下宣布了 Android系統的全部源代碼。Google選擇Apache Software License 2,0許可證,不僅 確保了系統的開放源代碼,而且還支持開源軟件的商業用途。Google將Android置 于ASL許可證之下,可以保證很多商業性公司會接收這個平臺,并且在該平臺上使 用自己的特有技術開發產品,為用戶提供更多更好的服務冋。六年多的時間讓 Android平臺成為全球極其重要的移動應用終端,通過不斷的升級更新讓Android 系統的功能和用戶體驗都有所提高,其應用十分廣泛,不僅是在智能手機上體現, 還有智能穿戴設備、PDA、機頂盒、智能電視、MP5等等。如今Android app應用 覆蓋各個領域其中包括:網絡購絡購物、團購、美食、生活咨訊、地圖、旅行、天 氣、導航、健康養生、電影等,移動互聯網潛移默化的影響著人們的衣食住行,方 便了人們的工作和生活。
目前市場上主要的操作系統有Android、iOS和Windows Phone等"口,相對iOS、 Windows Phone , Android 具備以下優點:
(1)開放性
由于谷歌一直秉承“開放性”的理念,Android應用商店的不斷擴大。Android
平臺的開放性降低了許多開發商的門檻,不僅為眾多開發者提供了一條更加廣闊的 道路,同時,降低了開發成本,為運營商開發創新型應用提供了更大的空間問。
(2)平等性
Android系統雖有自帶的程序,但開發員仍可以開發應用程序來取代系統默認 的程序,滿足自身個性化的需求。Android平臺是由一系列應用構成的平臺,所有 的應用程序都在一個Dalvik虛擬機上運行,該虛擬機為應用程序之間和硬件資源通 信訪問提供了 API問。
(3)無界限
Android平臺的應用程序之間沒有界限,通過開放的平臺,開發人員可以自由地 將自己的程序和其他相關程序結合擴展。例如將系統自帶的音樂播放功能添加到自 己的程序中或將GPS和網絡進行交互(⑷。
(4)便利性
在Android平臺開發應用非常便利是因為Android平臺為開發員提供了很多庫 和工具,同時集成了 Google Maps和Voice等強大功能,開發員只需調用相關代碼就 可將這些功能添加到自己的應用程序中麗。
(5)豐富性
豐富性是指硬件的豐富,平臺的開放性讓硬件制造商有機會推出各式各樣不同 功能的產品,因為開發語言Java的跨平臺特性,軟件的兼容性并不受功能差異的影 響,例如愛立信手機上的應用程序可移植到三星手機上3。
Android依靠獨特的優勢在眾多平臺中脫穎而出,其自身特性有:
(1)應用程序框架支持組件的重用和替換。開發員可以根據個人需要安裝和刪除 應用程序叭
(2)Dalvik虛擬機為移動設備提供優化的功能。DX工具將在采用Java語言來開 發Android應用程序中編譯的類文件轉換成后綴名為.dex的文件來執行,相比Java 虛擬機,在速度方面,基于寄存器的Dalvik虛擬機更快[18]o
(3)內部采用開放的WebKit引擎瀏覽器。這意味著移動互聯網時代的到來,用 戶可以通過手機在網上任意暢游。
(4)優化的圖形庫包拆二維圖形庫和基于OpenGLES 1.0的三維圖形庫。
(5)SQLite作為輕量級的數據庫,占用資源低,能實現結構化的數據存儲。
(6)多媒體支持包含常見的音頻、視頻以及靜態圖像文件格式,如MP3、MPEG4、
H.264、PNG、JPG 等。
(7)GSM電話由硬件決定。
(8)藍牙、EDGE、3G、4G、WiFi等功能取決于硬件。
⑼攝像頭、GPS全球定位、導航和感應加速度計(accelerometer)同樣需要硬件 的支持。
(10)豐富的開發環境包括設備模擬器、開發調試工具、內存與性能分析圖表和 Eclipse集成的ADT可視化開發插件。
2.1.2Android平臺架構
基于Linux內核的Android開源軟件平臺,由操作系統、中間件、用戶界面以 及應用軟件構成,它使用軟件堆層(Software Stack,又名為軟件疊層)的架構,主 要分為三個部分。以Linux內核工作為基礎的底層由C語言開發,并且只提供基本 的功能;中間層由C++語言開發,包含函數庫Library和虛擬機Virtual Machine兩 個部分。頂層是由各公司自行開發的各類應用,以Java作為編寫程序的一部分,包 括通話,短信等系統軟件。如圖2.1所示,Android系統的架構由底層到應用層主要 由4個層次5個部分組成,分別為Linux內核層、類庫和運行庫層、應用程序框架
層和應用程序層問。下面由底層到應用層各個部分進行簡單的介紹。
圖2.1 Android系統結構圖
(1)Linux 內核層(LinuxKernel)
基于Linux2.6內核的Android平臺提供核心系統服務c,9>呦,例如安全性、進程 管理、內存管理、硬件驅動模型以及網絡堆棧。Linux內核作為硬件與軟件之間的 抽象層,其目的是隱藏具體硬件細節,為上層提供統一的服務,屏蔽掉本層與下層 之間的差異,本層與下層作出更改時不會對上層產生影響
(2)運行庫層(Android Runtime)
由核心庫和Dalvik.虛擬機兩個部分構成Android運行庫。其中核心庫集提供 Java語言編程需要的基本函數和類。Dalvik虛擬機為Android應用程序提供運行環 境。Android系統可運行多個虛擬機,每個Android應用程序對應一個Dalvik虛擬 機,獨立于其他的應用程序。基于Dalvik寄存器的虛擬機執行由SDK中的DX工具 轉化的.dex文件,占用內存資源少,相對于基于棧的JVM,前者性能表現更好呦。
G)類庫(Library)
Android操作系統提供了 C/C卄共享庫,支持各種不同組件的使用,開發人員可 通過Android應用程序框架來調用這些庫進行開發呦。
以下是一些類庫的核心庫:
①系統C庫:從BSD系統導出的庫,主要是為嵌入Linux設備提供支持。
②媒體庫:支持各種格式的音頻、視頻錄放以及多種靜態映像文件的査看。
③Surfece Manager:管理同時執行的各個應用程序之間的顯示和存取,無縫集 成2D和3D元素。
④LibWebCore; Web瀏覽器引擎,為Android瀏覽器和嵌入的Web View提 供支持。
⑤SGL:底層的2D圖形繪制引擎。
⑥OpenGLIES:三維圖像繪制函數庫,以OpenGL ES 1.0 API標準來執行軟 件和硬件加速優化。
⑦Free Type:支持位圖(Bitmap)和矢量(Vector)字體的顯示。
⑧SQLite:作為輕量級的關系型數據庫,供所有應用程序使用。
(4)Application Framework (應用程序框架)
對于開發人員來講,接觸最多的便是應用程序框架層。為了簡化組件的重用, 該應用程序的框架提供了大量的API,其中任何一個應用程序都可以調用其他程序 發布的功能模塊,這樣用戶能夠很方便地更換程序的組件,同時不影響其他模塊的
使用兇。當然,這種更換需遵循框架的安全性制約。應用程序由以下的服務和系統 構成:
①視圖(Views):由如文本框、列表、按鈕等基本組件構成的視圖集,用 于構建應用程序。
②內容管理器(ContentProvider):為應用程序之間的數據共享提供支持。
③資源管理器(Resource Manager):支持如圖形、分層文件等非代碼資源 的訪問。
④通知管理器(Notification Manager):應用程序可通過通知管理器在狀態 欄顯示短信、電量和后臺應用程序等信息。
⑤活動類管理器(Activity Manger):提供導航回退功能,并對應用程序的 生命周期進行管理。
(5)Application (應用程序層)
Android系統搭載了一系列由Java語言開發的核心應用程序,如日歷、地圖、 瀏覽器、郵件客戶端、電話等陶。
2.2系統開發環境搭建
2.2.1 MyEclipse
基于Java語言的Eclipse開發平臺具備開放性和可擴展性,可以安裝不同的插 件,實現各種附加功能叭還附帶了一個標準的插件集,包含Java開發工具和插件 開發環境等切。插件能容許開發人員對Eclipse進行擴展,創建與Eclipse環境無縫 集成的工具。Eclipse不但支持Java語言開發,還為諸如PHP、C/C++等編程語言的 開發提供插件㈤。
MyEclipse是對Eclipse的擴展,通過它,我們能夠在數據庫開發、J2EE的開發 和應用服務器的集成方面大大提高工作效率。該平臺是功能豐富的JavaEE集成開 發環境,具有完整的編碼、調試、測試以及發布功能,全力支持Spring, Struts, Hibernate, HTML, Java Servlet, CSS, SQL 等畫,可以說,MyEclipse 幾乎包括所 有目前主流的開源產品。MyEclipse平臺的安裝可分為以下步驟:
(l)Java環境的搭建
進行Android應用開發需要Java開發環境的工具,首先要下載JDK (Java
Development Kit) 確認計算機無其他版本的JDK后安裝JDK,然后進行JDK環 境變量的配置,分別為:JAVA_HOME、CLASSPATH以及PATH, JAVA_HOME和 CLASSPATH環境變量的配置如圖2.2所示,PATH壞境變量配置圖2.3所示。
進入計算機DOS環境,輸入“JAVAC”或“java.version”,按“Enter”鍵后, 若輸出JAVAC命令的相關信息或JDK版本,表示JDK配置成功,否則需再次檢査 環境變量的配置是否正確。
⑵安裝MyEclipse
MyEclipse是開放源代碼的,可以在Myeclipse官網上進行下載,下載后直接進
行安裝,然后進行破解和JDK的關聯操作,最后就可以使用MyEclipse平臺。
(3)SDK下載
http://developer.android.com/sdk/index.html 為 SDK 官網,下載 SDK 壓縮包后直 接解壓,運行SDK Manager.exe,選擇tools和API版本后進行安裝。之后配置SDK 環境變量,主要是在path中加入SDK下的tools目錄,如圖2. 4所示。
圖2.4 SDK環境配置
(4)安裝ADT
ADT ( Android Developer Tools)是 Android 在 MyEclipse 上開發的工具,為 Android提供開發工具的升級或者變更。安裝ADT主要有兩種方法:一種是通過 MyEclipse平臺在線安裝;另一種是下載ADT插件壓縮包,將其解壓后進行配置。
2.2.2Tomcat 服務器
系統結合JDK開發工具包、MySQL數據庫和Tomcat服務器,實現服務器端與 移動客戶端之間的數據交互。
Tomcat作為Apache軟件基金會的Jakarta項目中的核心工程,由Apache、Sun 和其他一些公司及個人共同開發而成。有了 Sun的參與和支持,最新的Servlet和 JSP規范總是可以體現在Tomcat中,如Tomcat 5支持最新的Servlet 2.4和JSP 2.0 標準⑼。Tomcat憑借其先進的技術、穩定的性能和免費的特點,深受Java愛好者 的喜愛并得到了一些軟件開發商的認可,成為當前比較流行的Web應用服務器図。 Tomcat作為一個輕量級、免費開源的應用服務器,被廣泛應用在中小型系統和并發 訪問用戶不是很多的場合,是JSP程序開發和調試者的最佳選擇泗。
服務器應用程序選用JDBC與后臺數據庫鏈接,JDBC由一組用Java編寫的類 和接口組成,用于執行SQL語句,為開發者提供標準的數據庫訪問類和接口。Tomcat 與Android端的數據交互是通過Http協議的Get和Post方法來實現的。在Http協 議下,Android端發送的請求均需服務器回發響應,請求完后,Android端主動釋放
連接。
MyEclipse平臺有自帶不同版本的Tomcat服務器,或者可自己安裝Tomcat,下 面介紹Tomcat安裝步驟:
(1)在 Tomcat 官網 http://tomcat.apache.org/[M1 下載 Tomcat 壓縮包。
⑵解壓后進行環境變量配置。環境變量包括:TOMCAT_HOME、 CATALINA_HOME 和路徑 path。
(3)啟動Tomcat。首先查看個人PC端的IP地址,然后點擊服務器Tomcat安裝 目錄下的startup.bat文件啟動Tomcat,在瀏覽器中輸入http://IP:端口號(此處的 端口號指Tomcat安裝配置的端口號),若出現如圖2.5所示的Tomcat介紹頁面, 表示服務器已成功安裝。
圖2.5 Tomcat成功安裝頁面
2.23 MySQL數據庫
系統采用MySQL開發Android應用。MySQL在Web應用方面,是最好的關 系數據庫管理系統軟件之一,關聯數據庫用不同的表來存放數據,并不是將所有數 據都放在一個大的倉庫里面,從而提高速度和靈活性閃。MySQL體積小,速度快, 與Oracle、SQL Server這些大型數據庫相比,固然有規模小、功能有限等不足之處, 但絲毫不影響它受歡迎的程度,對于中小企業而言,MySQL作為一個小型的信息
數據庫提供的功能已綽綽有余,尤其是MySQL作為開源軟件可以大大降低開發成 本。MySQL數據庫支持結構化査詢語言(SQL)進行數據庫管理,而且它用于C/S架 構的服務器,多線程的服務器為客戶端提供了不同的程序接口和鏈接庫,如Java、 C、C++、PHP等,在本文中將使用JDBC技術在Java程序中完成對數據庫的連接, 通過執行SQL語句對數據庫進行操作。
由于MySQL軟件免費,可以從MySQL官網直接下載安裝,設置數據庫用戶 名和密碼,需要注意的是在設置編碼格式時應選擇“uft-8”,否則當Web端表單提 交或連接數據庫讀取數據時會有亂碼的現象出現。
2.3 MVC設計模式
隨著Web應用程序的業務邏輯包括繁雜的公式計算和決策支持等,使客戶端不 堪重負,所以將系統的數據處理、輸入輸出控制和數據表示分離開來,形成單獨的 體系,這樣由邏輯上劃分的三層結構產生了,分別為表示層、業務邏輯層和數據持 久層。這樣的一種軟件設計模式稱為MVC。®,模型、視圖和控制器之間的關系如 圖2.6所示。下面分別對模型、視圖、控制器三個部分進行簡單介紹。
圖2.6 MVC關系圖
(1)模型:表示業務數據與業務邏輯,負責應用程序中數據邏輯部分的處理和數 據庫中數據的存取呦。一個邏輯模型可以有多個視圖模型,如一些統計數據可以分 別用直方圖、餅圖來表示,模型可將數據發生的變化通過觀察者模式通知視圖。
(2)視圖:負責顯示從模型中取出的數據和接收用戶的輸入數據,用戶看到并與 之交互的界面即為視圖。視圖并不參與實際的業務處理,所以它可向模型查詢業務 狀態,或者接受模型發出的數據更新事件來同步更新用戶界面,卻不能改變模型[38〕。 模型與視圖實現代碼的分離,這樣可用不同的形式表達同一個程序。
(3)控制器:管理用戶界面數據的顯示部分,從視圖讀取數據,控制用戶輸入, 并發送數據給模型,一旦模型產生變化,控制器能夠保證模型與視圖同步更新〔39]。
在MVC模式中,控制器接管用戶向服務器提交的所有請求。當收到請求之后, 由控制器確定應該調用哪種模型來進行處理;繼而模型依據用戶請求進行相應的業 務邏輯處理,并返回數據;最后控制器調用相應的視圖來格式化模型返回的數據, 并通過視圖展示給用戶[創。對用戶而言,他們可以選擇適合自己瀏覽數據的方式, 如用戶可以選擇HTML網頁或者PDF方式閱讀在線文檔。對開發者而言,MVC將 應用的邏輯層與視圖層分開,一方面有益于功能模塊的修改,支持單元測試;另外 一方面,界面設計與邏輯層設計分工合作,緩解開發人員的壓力。
本文在MyEclipse中開發Android應用,采用了 MVC分層思想,其客戶端程 序包如圖2.7所示:
丄sel ect_ _cou rse-
Anclroicd 2.2
O Android Private Libraries
」® src
com.mobile-client.activity
com.mobile-clie-nt.app
com. mofc>i I ecl in
com.moLkile-clie^nt.hanciler
b- com.mob-iIe-cllent.service-
h 匕陽' com.mobile-client-util
毘多 gen (Generate-ci Java Filers]
t> Antdroicd Dependencies
Apache Tomcat v7.O Rurrtime Libraries
£> JRE System Libmary [jdkl.7.O_51]
色? assess
>§3? E>in
>愛 libs
懇帀res
◎ roid Ma n ifest.xm I
題 prog u a rd - proj e-ct.txt
proje-ct. pro perties
圖2.7客戶端程序包
(1)模型層(Model)
Model層負責對數據庫和網絡的操作,對應的是應用程序的實體類和業務邏輯。 本系統的util中HtttpUtil主要將參數發送給服務器,實現與服務器通信。domain為 實體對象描述層,負責對象的各個屬性的描述與封裝,在各個層次中進行數據流動。 客戶端與服務器端通信后,service作為業務邏輯層實現數據的接收和發送功能。當 服務器返回XML數據集時,需要handler中的類將XML數據集轉換為Java對象數 據鏈表。
⑵視圖層(View)
Android將顯示層抽離,各種界面布局文件和常量值以XML形式放在 "/res/layout"目錄下,如strings.xml、colors.xml等文件,方便調用和資源的管理, 在“res/drawable”目錄下存放程序用到的界面圖片資源文件。本系統的activity支 持交互界面的組件,界面描述在布局文件中。
G)控制層(Controller)
本系統中的com.mobileclient.activity充當控制層。Android的控制層的任務是通 過Activity將業務交給Model模型層處理,不需要Activity實現詳細的業務,這樣 做是因為Android中的Activity響應時間為5s,若在這里增加耗時的操作,程序極 易被回收“5
2.4本章小結
本章首先對系統涉及的開發平臺進行了研究,然后介紹了開發工具和環境的搭 建,包括MyEclipse平臺、服務器Tomcat和數據庫MySQL,最后介紹了 MVC設 計模式在本系統開發中的應用。
第三章系統需求分析與總體設計
3.1系統的需求分析
在設計和開發基于Android的教學信息管理系統之前,學校本身已存在基于 Web的教學管理系統,包括教學計劃子系統、學生信息管理子系統、課程信息管理 子系統等,實現了無紙化操作,為教學管理員和師生提供了信息分享渠道,減輕了 教師的工作壓力和繁雜程度,隨著移動互聯網的發展,以Android為代表的智能手 機已廣泛深入到師生的生活、學習和工作中,而且無線校園網基本建設完成,本文 是在基于Web的教學信息管理系統的基礎上進行擴展,開發基于Android的教學信 息管理系統。
基于Android的教學信息管理系統主要用于數字化、網絡化的高等院校,解決 在移動互聯網時代,學校傳統的B/S結構信息管理軟件遠不能滿足師生隨時隨地獲 取教學信息的需求這一瓶頸。該系統主要實現教學管理智能化、移動化,目的是提 高教職工對院校各類信息的管理效率,方便學生對個人信息、選課信息和成績信息 的查詢以及教學資源的學習瀏覽。該系統面向的對象有教學管理員、教師和學生。
對于整體軟件系統而言,需要實現移動管理端和移動客戶端。在移動管理端, 需要實現對院系、師生、課程、選課成績、校內新聞等信息的管理功能,在移動客 戶端,需要實現與個人相關信息的查詢、教學資源的上傳和瀏覽等相關功能。
該系統為學校中的教學管理者、教師和學生構建了一個充分自由的空間,許多 管理工作將不再受時間和空間的限制,他們可以選擇合適的權限登錄,根據自己的 需求對相關信息進行快速的查詢和管理,同時進行課程的學習,充分提高教學效率 和管理水平。
3.2系統的總體設計
本文研究并設計的是為了實現一款能夠集教學管理工作和教學資源共享為一 體的Android客戶端軟件,管理員通過移動終端進行簡單的教學信息處理,教師可 以借助終端進行成績信息錄入和信息瀏覽,學生可進行基本信息查詢如課程、成績 等,由此看來Android端教學信息管理系統的設計是對Web版教學管理很好的補充 與擴展。
本文將該系統的總體結構開發分為兩大方面設計規劃,分別是開發技術的使用 和數據內容。開發技術的使用是指MyEclipse平臺和ADT插件的結合,并輔以Web 開發模式來開發Android應用。數據內容則是位于服務器上的數據庫MySQLo本文 中基于Android的教學信息管理系統的總體結構設計如圖3.1所示。它由移動客戶 端、網絡通信和服務器組成。服務器包括Web服務器和數據庫服務器。網絡通信主 要是在3G、4G、WiFi以及Internet的基礎上建立。本系統以教學信息數據庫作為 數據層,包含各大院系、師生和課程等相關信息。
客戶端 網絡通信 服務器
A r器
\曲 ((?))
A
圖3.1系統總體架構圖
在本文中用戶通過移動終端訪問教學信息管理系統,PC端主要是通過管理員 登錄瀏覽器訪問該系統進行復雜的信息錄入工作。由于本系統是在院校的Web端教 學管理系統的基礎上進行Android端設計與開發,因此著重設計系統的Android移 動終端功能模塊。
在MVC框架下設計程序具有可擴展性和可維護性,而且方便升級,因此本系 統選擇借用MVC框架的分層思想來進行實現。Android移動終端以JSON作為數據 交互格式訪問系統,在MVC框架下以Activity和XML文件作為MVC的View, 以第二章MVC框架介紹作為參考。管理員可通過PC端和Android端進行后臺的信 息管理,在本文中主要對Android端管理員的后臺管理進行介紹。Android終端與 PC機訪問系統的請求方式不同。Android終端使用HTTP中的Post和Get方法,以 服務器端的地址與請求信息作為請求參數,PC機訪問系統的HTTP請求參數包含 地址、文件類型、瀏覽器類型等。因此對系統的設計分為Android客戶端和服務器 端。
3.2.1系統的Android端設計
Android移動端主要面向用戶群體,現今在進行移動應用開發時,用戶體驗是 開發設計中一個非常重要的環節。因此在移動需要軟件流暢穩定運行、切換時無縫 連接、合適的響應速度以及友好的顯示界面等等相關考慮前提下,對Android移動 端整體的架構需要很好的規劃,并且在開發過程中通過不斷的測試進行優化。本文 的Android移動端以界面層、業務邏輯層和數據層分離的MVC設計思想來開發。 在Android客戶端實現管理者與用戶的交互,友好的用戶界面是程序設計的重要部 分,該系統界面設計采用XML布局文件實現。由圖3.2可看出在管理員通過客戶 端實現教學信息的管理,教師和學生作為用戶可實現信息查詢和課程學習功能。在 課程學習模塊,教師和學生有各自的權限,如教師可上傳教學資源,而學生只可進 行教學資源的瀏覽學習。
客戶端與服務器端之間存在數據交互,服務器端操作數據庫服務器,由數據庫 服務器來完成對數據庫的增刪改查。管理員和用戶通過調用Activity類完成交互, 實現對Android客戶端的操作。實現服務器與客戶端的通訊首先需啟動Tomcat服務 器,調用ServletContextList監聽接口實現對客戶端的監聽,然后服務器端與客戶端 的代理線程開始通信。最后服務器操作后臺數據庫服務器完成對數據的操作[42】。
3.2.2系統的服務器端設計
本系統是在JAVA EE環境下創建Web工程,通過Tomcat服務器運行Web工程。 管理員可在PC端也可在Android端進行信息管理。管理員在PC瀏覽器頁面登陸成 功后,通過服務器建立與數據庫的連接后獲取數據信息,繼而進行信息管理與維護。 而Android客戶端與教學信息管理系統的通信接口是服務器端IP地址與端口號, Android服務器端響應移動終端的請求并返回結果。
在本系統中Android客戶端以http://IP:Port/項目名稱/Action的格式發送請求, Aciton為本系統中的servlet類。服務器與Android客戶端建立通信,此處的服務器 端只有控制層、業務邏輯層、實體對象描述層等,無視圖層。服務器端收到Android 端的請求HTTP請求,選擇控制層對應的方法進行解析請求數拯,然后通過實體對 象描述層和數據庫操作層查詢數據庫,得到結果后通過JSON格式返回Android端, Android端將JSON格式數拯進行解析后通過Activity顯示到界面上顯示。服務器與 Android客戶端數據通信采用XML格式和JSON格式,XML格式主要用于傳輸查 詢的記錄集,JSON是輕量級的數據交互格式,可用于不同的平臺,主要是傳輸單 個的對象信息⑷】。
本文中主要針對Android服務器端進行設計,服務器端采用分層機制進行設計, 有利于各層邏輯的復用以及后期系統的擴展與維護。該端的程序包如圖3.3所示。
/ 涉 JavaWebProject
/ & src
【:• com.mobileserver.dao
|> 田 com.mobileserver.domain
1> 田 com.mobileserver.filter
卜護 com.mobileserver.servlet
!/ com.mobileserver.util 圍 DBConfig.properties
圖3.3服務器端的程序包
Dao作為業務邏輯層,為控制層servlet服務,通過util層連接數據庫后實現各 種增刪改查的操作-domain包對應的是實體對象描述層,屬于MVC模式中的Model 層,負責對象的各個屬性的描述和封裝,在各個層次中進行數據流動。util包對應 的是數據庫操作層,調用數據庫連接實現記錄的查詢和更新等操作,其中使用了數
據庫連接池技術。servlet包對應的是控制層,接收用戶請求后,調用業務邏輯層Dao 層進行處理,最后返回響應結果,實現服務器與客戶端的交互。DBConfig.properties 是與數據庫的連接文件,包括MySQL的JDBC的驅動,數據庫url,數據庫的用戶 名和密碼。
3.3系統的整體框架
根據上述需求分析,系統的登錄采用的是用戶角色和訪問權限相關聯的設計策 略,管理員、教師用戶和學生用戶選擇角色后進入登錄界面,登錄成功后分別進入 教學管理端子系統、教師用戶端子系統和學生用戶端子系統。軟件系統的總體結構 功能如圖3.4所示。
3.4系統的模塊分析
根據系統的結構功能圖具體分為移動管理端和移動客戶端,由角色分配功能權 限。在移動客戶端,教師可進行院系、課程、選課和校園新聞等信息的查詢,錄入 學生選課成績,上傳教學資源等,學生可對基本信息包括院系信息、個人課程信息、 選課成績信息和校園新聞的查詢,還可進行在線課程學習和記錄學習筆記。
在移動管理端即教學管理端子系統,教學管理員可進行院校信息、師生基本信 息、課程信息的管理和校園新聞信息的發布,方便師生快速了解教學新動態,實現 高效性的教學管理。
3.5本章小結
本章首先對高校數字化建設對于教學信息管理系統的需求進行分析得到教學 信息管理系統具有很高的適用性,接著介紹系統的總體設計,Android客戶端的設 計以及采用MVC設計模式的服務器架構,最后對系統的總體框架和模塊功能進行 了介紹。
第四章系統功能模塊和數據庫設計
4.1教學管理端功能模塊的設計
教學信息管理系統需要管理員通過移動終端或PC進入,然后實現相應的功能。 該模塊的工作流程如圖4.1所示。以Android端教學管理為例,管理員選擇角色進 行成功登陸后,Android端顯示主界面,繼而在個人權限范圍內對本系統中的數據 進行添加、修改以及瀏覽。
c 幵始 r
注銷
圖4.1教學管理端的流程圖
從上圖可知教學管理端的總體設計,管理員擁有對院校信息、師生信息、課程 信息、選課信息以及校園新聞信息等的管理功能,考慮到教師信息管理與學生信息 管理功能模塊的設計類似,課程信息管理與選課信息管理功能模塊的設計類似,在 這里對教學管理端部分功能模塊的設計進行介紹。
4.1.1院校信息管理模塊的設計
管理員通過與后臺數據庫管理員信息表admin匹配登錄成功后,進入主界面可 選擇對院校信息進行管理,包括對學院、專業以及班級等信息的增刪改查。
學院信息管理主要是對院系信息的編輯、刪除、添加和查詢。查詢功能是通過 輸入關鍵字即學院編號,通過HTTP協議發送請求到服務器端,服務器端獲取請求 參數然后通過Servlet類進行業務處理,與數據庫中的學院信息進行匹配后返回符合 條件的信息,并且在Android端可進一步的進行學院信息編輯和刪除。下面以學院 信息管理功能設計為例,該模塊中添加學院信息的工作流程如圖4.2所示。
CM3
圖4.2添加學院信息的流程圖
當管理員點擊添加學院按鈕后,按鈕通過添加事件監聽器OnClickListener做出 監聽,發送請求參數給服務器,最后經過邏輯處理后返回響應結果給客戶端,在 Android端顯示學院添加界面。由以上流程圖可知通過添加學院編號、學院名稱、
院長姓名、聯系電話、附加信息和選擇成立日期來實現功能,為后臺數據庫的學院 信息添加資源。學院、專業和班級三種信息管理的功能設計類似,只要發送請求后, Android端顯示界面,然后添加相關信息即可將專業和班級信息存儲到數據庫。
4.1.2課程信息管理模塊的設計
課程信息管理模塊主要是管理員根據各專業的教學計劃和教師信息來添加課 程安排,如上課時間、地點和課程學分,也可以通過課程表中的關鍵字即課程編號 進行已有課程的刪除、查詢或修改。該模塊中添加課程信息的流程如圖4.3所示。
、?
添加課程
圖4.3添加課程信息的流程圖
由圖4.3可知點擊當管理員輸入課程基本信息包括課程編號、名稱、授課教師、 上課時間、地點、課程學分等相關信息,點擊確定按鈕后,在客戶端與服務器端成 功通信后,這些課程信息就會通過請求發送給服務器端,然后請求被dao業務邏輯 層處理,將信息存入數據庫中,最終返回“成功添加課程信息”。
4.1.3新聞信息管理模塊的設計
新聞信息管理主要實現通知、課程安排等公共教學信息和校園新聞的發布。該
模塊中添加新聞信息的流程圖如4.4所示。當管理員點擊添加新聞后,輸入新聞標 題、輸入新聞內容、選擇發布日期和上傳新聞圖片確定后,就可成功將新聞信息存 入數據庫中進行發布,幫助教師和學生方便快捷地查詢新聞信息,實現人性化管理。
圖4.4添加新聞信息的流程圖
4.2教師客戶端功能模塊的設計
教師成功登錄后進入主界面,可對院系、教師、學生和課程等相關信息的查詢 瀏覽,同時可錄入學生選修課程的成績和添加教學課程資源,方便學生査詢相關信 息和進行在線學習。在這里只對教師管理端部分功能模塊的設計進行介紹。教師客 戶端總體的工作流程如圖4.5所示。
圖4.5教師客戶端的流程圖
4.2.1信息查詢模塊的設計
教師成功登錄進入主界面后擁有査詢各類信息的權限,不僅可查看個人基本信 息,還可通過輸入關鍵字實現對院系、專業、班級、課程、學生選課和課程成績的 查詢以及新聞信息的瀏覽。如輸入院系編號發送給服務器端,服務器端作出響應, 與后臺數據庫中院系表中信息進行匹配,最終返回相關信息給Android端進行XML 解析后顯示在界面上。
4.2.2成績信息管理模塊的設計
成績信息管理模塊為教師提供了錄入課程成績的功能,該模塊的流程如圖4.6 所示。教師點擊添加成績信息后輸入學生對象、課程對象、成績得分和評價確定后 發送到服務器端,服務器端通過Servlet中的doPostO方法獲取參數,然后調用dao 層的業務邏輯方法進行處理即可將數據存入數據庫中,方便學生査詢成績信息和教 師對自己的評價。
圖4.6添加成績信息的流程圖
4.23教學資源管理模塊的設計
在教學資源管理中,教師可添加與授課相關的課程教學資源信息,如課程目錄 和課程內容等,方便學生進行課外學習,提高學習效率。在主界面中選擇教學資源, 進入授課課程界面后點擊菜單按鈕,然后輸入資源名稱、課程編號和學習資源內容 點擊確定,將請求參數通過HttpUtil工具類發送給服務器端,在服務器端繼承 HttpServlet的類中獲取參數然后通過調用業務邏輯層將信息存儲在數據庫中。
4.3學主客戶端功能模塊的設計
學生成功登錄進入主界面后可對院系、教師和課程等信息的查詢,同時瀏覽課 程資源,還可進行筆記記錄和課程資源的收藏,由于學生客戶端信息查詢模塊、課 程學習模塊的設計和教師端類似,只是學生沒有對課程進行管理的權限。學生客戶 端總體的工作流程如圖4.8所示。
C 幵紿
1
圖4.8學生客戶端的流程圖
學生成功登錄系統后可以査看所有的課程信息,通過輸入個人信息,選擇相關 的課程后就可將個人選課信息存入數據庫中,也可將個人已選的課程信息給刪除, 退選該門課程。同時可以在課程筆記模塊記錄學習過程和心得,有助于對課程內容 的復習。
4.4系統數據庫的設計
在教學信息管理系統中需要存儲院系、教師、學生、教學資源、課程、成績、 選課、新聞等信息。數據庫是系統的重要組成部分,需要實現信息管理系統的數據 持久化功能。響應Android移動終端的請求是系統的重要部分,Android端本地無 數據,所有的數據都來自于服務器端,然后呈現在Android界面。本文將選用MySQL 進行后臺的數據庫開發,建立各功能的數據庫表。
4.4.1數據庫需求分析
數據庫是教學信息管理系統的基礎,與驅動程序相結合實現對數據庫信息的存 取。由系統的總體架構和各模塊功能設計得到系統需要完成13個表,分別為教學 管理員基本信息表admin、院系信息表collegeinfb、專業信息表specialfiledinfo^班 級信息表classinfo、教師基本信息表teacher、學生基本信息表student、課程信息表 courseinfb>選課信息表selectcourseinfb>成績信息表scoreinfo新聞信息表news、 課程資源表source、資源收藏表collection、筆記記錄表notes。
4.4.2數據庫的結構設計
下面對各個表進行設計:
1•教學管理員基本信息表(admin):存儲管理員基本信息,用于管理員登錄信 息的驗證,如表4.1所示。
表4.1教學管理員基本信息表:admin
字段名 名稱 數據類型 鍵類型 默認值 備注
username 用戶名 varchar 主健 null
password 密碼 varchar null
2.教師基本信息表(teacher):存儲教師基本信息,主要是對教師登錄信息的 驗證以及管理員對教師信息的管理,如表4.2所示。
表4.2教師基本信息表:teacher
字段名 名稱 數據類型 鍵類型 默認值 備注
teachefNumber 教師編號 int 主鍵 null
teachName 教師姓名 varchar null
teacherPassword 登錄密碼 varchar null
teacherSex 性別 varchar null
teacherBirthday 出生日期 datetime null
arriveDate 入職日期 datetime null
cardNumber 身份證號 varchar null
phone 聯系電話 int null
teacherPhoto 教師照片 varchar null
teacherAddress 家庭地址 varchar null
teacherMemo 附加信息 varchar null
3•學生基本信息表(student):主要功能是存儲學生基本信息,用于登錄驗證。 管理員通過學生學號ID管理學生,教師也可進行學生信息的查詢。如表4.3所示是 學生信息的表結構。
表4.3學生基本信息表:student
字段名 名稱 數據類型 鍵類型 默認值 備注
studentNumber 學號 int 主鍵 null
studentName 姓名 varchar null
studentPassword 登錄密碼 varchar null
studentSex 性別 varchar null
studentClassNumber 所在班級 int null
studentBirthday 出生日期 datetime null
studnetState 政治面貌 varchar null
studentPhoto 學生照片 varchar null
studentTelephone 聯系電話 int null
studentEmail 學生郵箱 varchar null
studentQQ 聯系QQ varchar null
studentAddress 家庭地址 varchar null
studentMemo 附加信息 varchar null
4.院系信息表(college):存儲學院基本信息,其中collegeNumber為主鍵,管 理員通過該主鍵進行院系信息的添加和修改。具體表結構如表4.4所示。
表4.4院系信息表:college
字段名 名稱 數據類型 鍵類型 默認值 備注
collegeNumber 學院編號 int 主鍵 null
collegeName 學院名稱 varchar null
birthdayDate 成立日期 datetime null
collegaMan 院長姓名 varchar null
telephone 聯系電話 int null
memo 附加信息 varchar null
5.專業信息表(specialfiledinib):用來存儲專業基本信息,如表4.5所示。
表 4.5 專業信息表:specialfiledinfo
字段名 名稱 數據類型 鍵類型 默認值 備注
filedNumber 專業編號 int 主鍵 null
filedName 專業名稱 varchar null
collegeNumber 所在學院 int null
birthDaie 成立日期 datetime null
man 聯系人 varchar null
telephone 聯系電話 int null
memo 附加信息 varchar null
6•班級信息表(classinfo):存儲班級基本信息包括班級編號,名稱,所屬專業, 成立日期,班主任,聯系電話和附加信息,其中班級編號為主鍵且為學生表的外鍵。 如表4.6所示。
表4.6班級信息表:classinfo
字段名 名稱 數據類型 鍵類型 默認值 備注
classNumber 班級編號 int 主鍵 null
className 班級名稱 varchar null
filedNumber 所屬專業 varchar null
birthDate 成立日期 datetime null
teacherCharge 班主任 varchar null
telephone 聯系電話 int null
Memo 附加信息 varchar null
cardNumber 身份證號 varchar null
phone 聯系電話 int null
teacherPhoto 教師照片 varchar null
teacherAddress 家庭地址 varchar null
teacherMemo 附加信息 varchar null
7•課程信息表(courseinfii):存儲課程信息基本信息包括課程編號,名稱,授 課教師,上課時間,地點,課程學分,附加信息等,如表4.7所示。
表4.7課程信息表:classinfo
字段名 名稱 數據類型 鍵類型 默認值 備注
courseNumber 課程編號 int 主鍵 null
courseName 課程名稱 varchar null
courseTeacher 上課老師 varchar null
courseTime 上課時間 datetime null
coursePlace 上課地點 varchar null
courseScore 課程學分 int null
courseMemo 附加信息 varchar null
coursePhoto 課程封面 varchar null
courselntrouduce 課程簡介 varchar null
&選課信息表(selectcourseinfb):存儲選課信息包括記錄編號,學生學號,課 程編號等,如表4.8所示。
表 4.8 選課信息表:selectcourseinfb
字段名 名稱 數據類型 鍵類型 默認值 備注
selectld 記錄編號 int 主鍵 null
studentNumber 學生對象 varchar null
courseNmuber 課程對象 varchar null
9•成績信息表(scoreinfb):存儲學生課程成績信息包括記錄編號,學生學號, 課程編號,成績得分,學生評價等,如表4.9所示。
表4.9成績信息表:scoreinfb
字段名 名稱 數據類型 鍵類型 默認值 備注
scoretld 記錄編號 int 主鍵 null
studentNumber 學生對象 varchar null
courseNmuber 課程對象 varchar null
scoreValue 成績得分 float null
studentEvaluate 學生評價 varchar null
10.新聞信息表(news):存儲校園新聞信息,包括記錄編號,新聞標題和內容, 發布日期,新聞圖片等,用于管理員發布動態信息。如表4.10所示。
表4.10新聞信息表:news
字段名 名稱 數據類型 鍵類型 默認值 備注
newsld 記錄編號 int 主鍵 null
newsTitle 新聞標題 varchar null
newsContent 新聞內容 varchar null
newsDate 發布日期 datetime null
newsPhoto 新聞圖片 varchar null
11.課程資源表(source):存儲相關課程的課件信息,教師可上傳資源信息到 表中,學生通過資源ID號來獲取課程信息。具體表結構如表4.11所示。
表4.11課程資源表:source
字段名 名稱 數據類型 鍵類型 默認值 備注
sourceld 資源編號 int 主鍵 null
sourceNaine 資源名稱 varchar null
courseNmuber 課程編號 int mill
sourceContent 學習資源 nvarchar (max) null
12•資源收藏表(collection):存儲學生收藏課程的相關信息包括收藏編號,學 生編號,資源編號等,如表4.12所示。
表4.12資源收藏表:collection
字段名 名稱 數據類型 鍵類型 默認值 備注
collectionld 收藏編號 int 主鍵 null
studentNumber 學生編號 int null
sourceld 資源編號 int null
13•筆記記錄表(notes):存儲學生的學習筆記信息包括記錄編號,筆記標題, 筆記內容,記錄日期等,如表4.13所示。
表4*13筆記記錄表:notes
字段名 名稱 數據類型 鍵類型 默認值 備注
notesld 記錄編號 int 主鍵 null
userNumber 用戶編號 int
notesTitle 筆記標題 varchar null
notesContent 筆記內容 nvarchar (max) null
notesDate 記錄日期 datetime null
4.5本章小結
本章節的主要是完成教學信息管理系統具體功能模塊的設計,根據用戶角色和 訪問權限主要分為教學管理端、教師客戶端和學生客戶端的設計,最后完成數據庫 的設計。
第五章教學信息管理系統的實現
本系統在MyEclipse平臺上搭建的Android開發環境下,使用Java編程語言和 MySQL數據庫進行開發,數據庫使用可視化數據庫工具Navicat for MySQL設計, 可以縮短開發時間和簡化開發流程。
5.1數據庫操作類的實現
在教學信息管理系統中,管理員和用戶是通過業務處理和數據庫進行交互,完 成對數據的操作O該系統通過使用JDBC API接口來實現與數據庫的通信,JDBC API 包含在JDK中,被分為兩個包:java.sql包與javax.sql包。前一個包定義了訪問數 據庫所需要的接口與類,如Connection, Statement, ResultSet三個接口。系統實現 數據庫的通信是運用JDBC實現層去完成的,也就不再受具體數據庫產品束縛。若 想通過JDBC來連接某個特定的數據庫系統,只需采用特定為這種數據庫系統開發 的JDBC驅動程序。
Connector/J是針對MySQL開發的JDBC驅動程序包。在MySQL的官網上可 以下載到所需要Connector/J軟件包的對應版本。下載.zip文件解壓后將其中的 mysql-connector-java-5.1.27-bin.jar 復制到 java 安裝目錄的 jre\lib\ext 中,在執行 java 程序時就能夠自動到該目錄下來查找需要的驅動程序。接下來在已經設置過的環境 變量CLASSPATH中增加數據庫驅動程序的環境變量,如C:\Program Files\Java\jre7\lib\ext\mysql-connector-java-5.1.27-bin.jar 即可。數據庫連接信息存儲 在數據庫操作類DBUtil類中,部分代碼段如下:
try {
prop?load(this.getClass()? getClassLoader()? getResourceAsStream( '*DBConfig. properties "));
driver = prop. getProperty( Mdriver,*);
url = prop.getProperty(Uurl°;
username = p rop. getProperty (^username11);
password = prop.getProperty("password");
Class?forName(driver);
return DriverManager•ggtC'onnectWanCLir'lj usernamej password);
} catch (Exception e) {
e.printStackTrace();
}
Driver對應的是MySQL數據庫驅動,URL對應的是數據庫地址,系統采用3306 為數據庫端口,username對應的是MySQL數據庫登錄名稱,password為登錄密碼, 該代碼對應的數據庫的配置如圖5」所示:
name value
:driver com.my5qljdbc.Driver
url jdbamysql://localhost3306/select_course_db?useUnicode=true&characterEncoding=utf-8
username root
passv/ord 123456
圖5.1數據庫配置
數據庫的配置放在DBConfig.properties文件中,方便修改。數據庫中的數據轉 換為JSON格式后返回到服務器端進,服務器端項目要導入json的jar包和json所 依賴的jar包至builtPath路徑下,客戶端接收服務器的響應后將JSON格式的數據 解析顯示。
5.2 Android客戶端與服務器端之間通信實現
在前面介紹的Android客戶端的架構設計中知道,一個完整的系統只有在客戶端與 服務器端成功實現通信的前提下,服務器才能操作數據庫的數據,因而實現各個功 能模塊開發的前提是要實現兩者之間的通信。當以Android作為客戶端,Android 端應用通過網絡訪問服務器端獲取后臺數據庫信息,Android訪問網絡的方式有 HTTP、WebService或者直接通過Web View訪問瀏覽器o Android集成了 Apache的 HttpClient , Http是請求/響應的一種機制,文中Android端定義HttpUtil工具類來 獲取HttpRequest請求和HttpResponse響應兩個對象,以及通過Get和Post請求來 獲取返回Response響應的方法。Http通信的post和get方法請求的方式不同,get 方法主要是將參數置于url后,然后傳給服務器,而post方法是將參數置于請求之 中,主要是用于手機端使用Http協議訪問資源。本文中Android端Http通信中用到 Post方法發送請求。Android端與服務器端通信如下圖5.2所示。
發送請求(http我取請求濁,
get/http 扶石請求
( \ P咧 \ V
Android*戶瑞 嚴務若編 OO^-SItySOL Server r 、
$0•運算;
通過對象
我存響應信息HttpServletResp
onse返回響應
(Response)
圖5.2 Android客戶端與服務器端通信圖
接下來代碼實現的是基于Http方式的客戶端與服務器端通信。主要代碼如下:
public class HttpUtil {
// :荃礎URL
public strat: ic -final St ring BASE_URL = "http : / / 192.168.1.109 : 8080/JavaWebProj ect / " public static final Strir»g FILE_PATH = Environmerrt-ge'tExter'nalStror'ageQTr'ect'ory ()- getAbsolut:ePath( ) + 'Vmobileclien七";
//朕鋼Get清安對象廠equest
public static Ht:tpGe-t getHttpGet(String url) {
HttpGet request = new HttpGet(url);
return reques七;
}
//茯御Post?]壽求對隸.reques七
public static HttpPost getHttpPost(Stiring url) { HttpRost request = new HttpPost(url)j return request;
}
// 根撼語求獲禪響應對娥response
public static H"ttpResponse get:HttpResponse(HI:tpGet request ) throws Clierrt Protocol Except ion, IOExcep-tion {
HttpResponse response = new De-faultHttpClient ( ) . execute ( reques七); ret urn response ; }■
5.3教學管理端功能模塊的實現
5.3.1院系信息管理功能的實現
管理員成功登錄后進入主界面,如圖5.3所示。主界面是通過GridView和其組 件ImageView來展示的。一個ImageView表示一個功能,并給每個ImageView添加 事件監聽器,當點擊某個ImageView時,會跳轉到相應的功能界面。在主菜單點擊 “院系信息”進入院系信息管理界面,如圖5.4所示。
為了完成院系信息的管理功能,首先要創建CollegelnfbAddActivity類、 CollegelnfoDetailActivity 類、CollegelnfoEditActivity 類、CollegelnfoQueryActivity 類和CollegelnfoListActivity類,這些類實現院系信息的添加、詳情顯示、編輯、査 詢,并且都是繼承Acitivity類,此類的作用是實現實例化布局文件,把從服務器獲 取到的信息綁定到ListView組件上。當點擊ListView中某個Item即院系列表中某 個可進行詳細信息的瀏覽。以下為添加院系信息的部分代碼:
/ *竣證萩取學院編號1* /
l-f (ET_collegeNumber. getText( ) .toString<〉. equals〈 ""〉) {
Toas± .maheText(CollegeIn-foAddActivity.this"學院編號輸入不能溝空!",
Toast . LENGTH_LONGy . show();
ET__collegeNumber. setFoeusable(true);
ET_collegeNumber.requestFoeus(); return;
collegeln-fo. setCollegeNumber(ET_collegeNumber . get:Text () .toSl:ring(》 廠的滋取學瞬名稱
If (ET_col lege Name. getText()?七。St: ring ( ) .equals ('* *') ) {
Toast:.mafeerext(CollegeIn-FoAddActivity.this,"學院名稱輸入不能為空! “,
Toast.LENGTH_LONGy.show();
ET_collegeName.setFocusable(true);
ET_collegeName . request:Focus (〉;
re-turn;
}
服務器端主要實現兩個功能,一個是創建collegeServlet響應客戶端請求,另一 個是在dao包中將從客戶端獲取到的信息通過SQL語句存儲到數據庫中。
當長按其中某個院系時,可點擊添加按鈕進行院系信息的添加,添加院系信息 的界面如圖5.5所示:
圖5.5學院信息的添加界面
5.3.2教師信息管理功能的實現
教師信息管理主要是對教師信息的查詢、修改及添加。教師信息的修改功能包 括對已經存在教師用戶的具體信息的編輯和對該用戶進行刪除操作,通過創建 TeacherEditActivity類實現,主要是獲取教師ID號,然后與數擁庫教師表信息進行 匹配,最后對獲取到的信息進行修改。對于教師用戶的添加功能,可按照要求輸入 數據庫需求的信息,就可實現教師用戶的添加,通過創建TeacherAddActivity類來 實現,主要是通過HTTP發送請求到服務器端,服務器端獲取參數后作出響應返回 給Android端,Android端跳到教師信息添加界面。在主界面點擊教師信息ImageView 后進入教師信息管理界面,可以通過點擊教師信息List列表完成教師信息的查詢功 能,長按教師信息列表中某一個,通過編輯和刪除按鈕完成對教師信息表的修改, 教師信息管理與院系信息管理功能實現方法類似。點擊菜單菜單按鈕后選擇“添加 教師信息”,進行添加功能的操作,效果圖如圖5.6,圖5.7所示:
53.3學生信息管理功能的實現
學生信息管理主要實現對學生用戶的查詢、修改及添加。對學生的修改主要包 括對已經存在學生的詳細信息的編輯和對該用戶進行刪除操作,對于添加學生用戶 可以按照要求輸入數據庫需求的信息。點擊主界面中的學生信息ImageView后,進 入學生信息管理的主界面可點擊列表中任意一個進行信息瀏覽。在點擊菜單按鈕選 擇“添加學生信息”,在Android端給此按鈕添加事件監聽器,響應事件內容,通 過Activity跳轉到添加信息界面,以下為添加單擊事件監聽器的代碼:
if (item.getItemld() == 1) {
//濤加學生信息信•亀
Trrterrt in七ent = new Intent:();
intent .setClass(Student_QQ287307421ListActivity. this.,
Student_QQ287307421AddActivity.class);
startActivity(intent);
Student_QQ287307421ListActivity.this?*Finish(
}
服務器端創建servlet類響應Android端的請求,在dao包中創建類執行SQL語 句向學生表中添加信息。主要的SQL語句代碼如下所示:
/*構建如執行插入新學生信息*/
String sqlString = ,finsert into Student_QQ287307421(studentNumber,studentName.,K + "studentpassword,studentSex,M +
'•studentClassNumberjStudentBirthday^studentState,** +
w studentPhoto, studentTelephone, studentEmail,, studentQQ, “ + ustudentAddressstudentMemo) values (n;
點擊主界面的學生信息ImageView后點擊菜單按鈕進行添加功能的操作。效果 圖如圖5.8所示。
圖5.8學生信息的主界面
5.3.4課程信息管理功能的實現
課程信息管理主要實現對授課教師和課程學分信息的查詢、添加和修改。修改 主要包括編輯和刪除課程信息。對于添加課程信息可以按照要求輸入數據庫需求的 信息。進入課程信息管理的主界面后,通過點擊菜單實選擇“添加課程信息”進行 添加操作。在添加界面,上課教師信息從后臺數據庫中獲取,然后填充到 ArrayAdapter適配器,將適配器adapter添加到Spinner下拉列表中來顯示,給Spinner 添加事件監聽器,點擊確定添加按鈕后可以通過監聽器獲取教師信息。當選取教師 后,其他信息在EditText編輯框輸入,Spinner事件監聽器主要代碼如下所示:
//碟加車件Spinner•事件監昕 spinner_courseTeacher.setOnItemSelectedListener(new OnltemSelectedListener{
^Override
public void onItemSelected(AdapterView<?> arge, View argl^lnt arg2, long arg3) { courseInfo_QQ254540457.setCourseTeacher(teacher_QQ2873B7421List.
get(arg2).getTeacherNumber());
}
Override
public void onNothingSelected(AdapterView<?> arg0) {}
});
//設毀認樋 * _ .
spinner_courseTeacher.setVisibility(View.UISr3££);
服務器端創建CourseServlet響應Android端請求,在dao層創建類實現課程信
息的添加,其主要的SQL語句代碼如下所示:
/*構建豆£1 扌丸行插入新課程信恵、*/ •
S-tring sqlString = winsert in-to CourseIn<fo_QQ25454Q457 (courseNumber,M + •'courseName, " +
*'courseTeacher j courseTime, '* +
•'courseplace, courseScore3 caurseMemo) values
點擊主界面的課程信息后的效果圖如圖5.9所示:
圖5.9課程信息的主界面
5.3.5新聞信息管理功能的實現
教務管理員進入新聞信息主界面可添加教學新動態或者校園新聞方便師生對 教學信息的了解。為了實現新聞信息的管理,需要創建NewsAddActivity、 NewsEditActivity、NewsListActivity、NewsQueryActivity 等,這些類可實現對新聞 信息的增刪改查。對于添加課程信息可以按照要求輸入數據庫需求的信息。進入新 聞信息管理的主界面后,通過點擊菜單按鈕實現新聞信息的發布和查詢。在點擊“添 加新聞信息”按鈕后通過在Activity中對此按鈕添加單擊事件監聽器跳轉到添加信 息界面,新聞信息、內容的添加都以EditText來實現,新聞日期選擇日期控件 DatePicker,最后通過調用業務邏輯層Service上傳新聞信息,其主要實現代碼如下 所示:
/ *調用業務邏輯層上傳新聞信患信息審/
NewsAddActivity.this,setTitle(M聞信患信息,稍等…•”力
String 廣esul七 = newsservice?AddNews(news);
Toast ?nraheText(getApp].icationCont:ext:() j result, 3.)?show();
嚴操作憲成后邃回刮新聞信息竇理界面*/
Intent intRrrt = new Intent();
intent?setclass(NewsAddActivity?this, NewsListActivity.class); startActivity(intent);
NewsAddActivity.this* finish();
服務器端創建NewsServlet響應客戶端請求,獲取新聞信息參數,將新聞參數 保存到新聞信息對象中,然后通過dao層中的類來實現信息的存儲。若是點擊“查 詢新聞信息按鈕”,輸入關鍵字進行查詢,服務器端獲取査詢新聞信息的參數,然 后調用業務邏輯層執行新聞信息查詢,將查詢的結果集通過XML格式傳給客戶端, 點擊添加新聞信息ImageView和“添加新聞信息按鈕”后的效果圖如圖5.10所示。
圖5.10新聞信息的主界面
5.4教師客戶端功能模塊的實現
教師登錄成功后即可進入主菜單,主界面主要通過GridView組件以圖形菜單 來展現教師端的功能,在GridView的子組件為ImageView,每個ImageView代表某 個功能,分別為院系信息、學生信息、課程信息、成績信息、教學資源、新聞信息 等,單擊某個ImgeView便可跳轉到相應的功能界面。教師端的院系、教學、學生
等信息的查詢功能的實現和教學管理員端基本一樣,在這里不做重復的分析和說 明。在這里主要對成績信息管理與教學資源管理功能模塊的實現進行介紹。
5.4.1成績信息管理功能的實現
成績信息管理模塊是教師端一個重要的功能模塊,主要完成對學生成績的錄 入,通過網絡及時將學生成績信息傳送到后臺Web服務器中,學生便可登錄該系統 后可快速地獲取個人成績信息。在添加學生成績中,將學生對象和課程對象從后臺 數據庫中獲取,然后填充到ArrayAdapter適配器,將適配器adapter添加到Spinner 下拉列表中來顯示,給Spinner添加事件監聽器,點擊確定添加按鈕后可以通過監 聽器獲取信息。實現給學生對象的Spinner下拉列表添加事件監聽器的主要代碼如 下所示:
//淳初第件0 pi me r♦事伶謹昕
spinner_studentNumber.setOnltemSelectedListen皀OnltemSelec七ener() {
^Override
public void onItemSelected(AdapterView<?> arge, View argl^int arg2, long arg3) { scoreinfo.setStudentNumber(student_QQ287307421List.get(arg2).getStudentNumber());
}
^Override
public void onNothingSelected(AdapterView<?> arg©) {}
});
教^5單擊成績信息后的主界面如圖5.11所示。
圖5.11成績信息的主界面
5.4.2教學資源管理功能的實現
當學生進行課外的學習時,需要教師上傳相關課程信息后傳送到后臺,然后學 生端顯示。教學資源主界面以Listview組件綁定數據來顯示課程信息列表,然后添 加事件監聽器,當點擊某個課程item時,會出現該課程的三大功能模塊作為底部導 航欄,包括課程簡介、課程資源目錄和學習筆記記錄等三個Tab選項卡,底部使用 RadioGroup組件。教師在學習筆記模塊可以記錄下課程的重難點,方便授之于學生。 圖5.12為教學資源管理中點擊某門課程后的效果圖。
圖5.12課程資源的主界面
5.5學生客戶端功能模塊的實現
在學生客戶端結合Fragment和Tab,將主菜單分為滑出的側邊欄和主界面,側 邊欄主要以ListView來添加item的界面形成,提供對個人基本信息、選課信息、 學習筆記和資源收藏的査詢和管理。主界面同樣是采用GridView組件以圖形菜單 來展示功能,主要包括對院系、教師、課程、成績信息和新聞信息的査詢等。側邊 欄為SliddingMenuActivity,以下為功能實現的主要代碼:
public boolean onTouchEvent(MotionEvent ev)
<
xnt action — ev.geCAction();
switch (action)
{
case MotionEvent-XCTZOAl_f/P:
//晦藏徑左邊的寬度 _
int scrollX = getScrollX()i If (scrollx >= mMenuWid-th / 2) {
this.smoothScrollToCmMenuWidth, 0); xsOpen = -False;
} else
<
this.smoothScrollTo(e^ 0); isOpen = true;
} return true;
}
return super-onTouchEvent(ev);
學生登錄成功后的側邊欄效果如圖5.13所示。
~5l51android4.4.2^-<
您好:ywl
個人信息
/';、2 學院俵息
我的課程
24 筆記
0
團收藏
@設置
圖5.13側邊欄的效果圖
5.5.1信息查詢功能的實現
在學生客戶端的側邊欄點擊個人信息后可查看自己的基本信息,我的課程是指 個人選課信息,筆記是指記錄學習心得等,收藏模塊提供查看個人收藏的資源。選 擇個人信息按鈕后,Android客戶端將獲取到的學生ID后傳給服務器端,服務器端 獲取請求參數,通過Servlet響應請求,然后將查詢結果集以XML格式傳給客戶端,
dao包中的類實現信息査詢的主要代碼如下所示:
String sql = "select * from Student_QQ2873e7421 where studentNumber=,H
+ studentNumber +
try {
Resultset rs = db.executeQuery(sql);
if (rs.next()) {
student_QQ287307421 = new Student^QQ287307421(); student_QQ287307421. setStudentNumber( rs. getString(M studentNumber'*)); studQnt_QQ287307421 * setStudentName(rs. getstring( ^studentNarae")); $上11血祇_02287367421.32丈31:11血11愣齡31«>「(1(".£&1$七”昭("51:11€|6祇卩恥$ 押 ord")); student_QQ287307421.setStudentSex(rs? getString("studentSex")); student_QQ287307421.setStudentClassNumber(rs.getString(,,studentClassNumberM)); student_QQ287307421.setStudentBirthday(rs.getTimestamp(wstudentBirthdayH)); s七uderrt_QQ2873e7421 ? SQtStudmntStatG(rs»0毗51:|4昭(\111血毗5廿1:6")); student_QQ287307421.setStudentPhoto(rs.getString(MstudentPhotoH));
s t udQiTt_QQ287 307421. set St uderrtTRlGplw2(rs.getS1:ring(” student Telephone")); student_QQ287307421.setStudentEmail(rs.getString(,,studentEmair,)); student_QQ287307421. setStudentQQ(rs. getString(',studentQQM)); student_QQ287307421.setStudentAddress(rs.getString(,,studentAddressu)); student_QQ287307421. set St udent Memo (rs. getString( ,*studentMemo,*));
} "
在這里以査看個人基本信息為例做出效果展示,如圖5.14所示。
圖5.14查看個人信息的效果圖
5.5.2移動選課功能的實現
學生可以通過Android移動終端進入該系統后就可查看相關課程信息后進行自 由選課或者進行退課。對于添加選課信息可以按照要求輸入選課信息表 selectcourseinfo表中需求的信息。在Android客戶端使用Array Adapter適配器將可 選內容與其連接起來,然后將填充數據后的Adapter添加到Spinner中,添加Spinner 事件監聽來達到顯示個人信息和課程信息的目的,然后確定添加選課信息。輸入個 人信息和課程信息后,點擊確定按鈕后即可實現移動選課的操作。移動選課功能實
現的效果圖如圖5.15所示。給添加選課按鈕添加監聽事件的主要代碼如下所示:
btnAdd. setOnClickLis七©“2廣(11©訶 OnClickListener() { public void onClick(View v) {
try {
/慶調用業務邏輯展上傳選課信患信恵
StudentSelectCourselnfoAddActivity.this.setTitle("正果信,息、信,息,稍等 **); String result = studentSelectCourselnfoService.
Adds 七 u dentSelectCourselnfo(studentSelectCourseln-fo);
Toast.mafeeText(getApplicaticnContext()j result, 1).show();
/ *操作完成后返回到選課信息管理界面
Intent intent = new Intent();
intent ? setclass (StudentSelect Cour selnfoAddActivity .Irhis $ StudentSelectCourseln-FoListActivit y ? class) j startActivity(in七皂nt);
Studen 七 Selec 七亡。口 廣 selrrFoAddActivity. this,finish();
} catch (Exception e) {}
});
圖5.15移動選課的主界面
5.5.3課程學習功能的實現
學生在課程學習功能模塊主要是對某門課程進行在線瀏覽學習,當進入課程資 源的主界面以ListView顯示一系列課程,點擊某一課程后可看到三個選項卡模塊, 選項卡通過Intent跳轉到各自的Activity,以下為tabhost選項卡分別實現各自功能 的主要代碼:
Intent intent;
intent=new Intent ( ) . setClass(^hls, In^troduceActivity. class>; intent. putExtzras(bundle);
spec=tabHost. newTabSpec ('*introduce**) . set:Indicst:or( ^Introduce**) .se-tContent( intent:) 5
tabHost.addTab(spec>;
intent^now Intent().setclass(this,ChapActivity.class); intent.putExtras(bundle);
spec=七3乃円08七-|1€“丁越匕3卩€€:("^斤31卩七已廣"〉.工門dicator£"Chapter"》
-setcontent(in七ent);
tabHos-t. addTab(spec);
intent=new Intent().setclass(this,NotesActivity.class); intent.putExtras(bundle);
spec=tabHost.newTabSpec (Mnot:es'•) . setIndicator(,rNotes**)
.setContent(intent);
-tabHost. addTab(spec); tabHost.setCurrentTabC©);
在服務器端創建SourceServlet響應Android客戶端請求,獲取請求參數即 sourceld后,通過dao包中的類來與后臺數據庫資源表中的關鍵字sourceld進行匹 配獲取信息內容。圖5.16為點擊某門課程的章節后的效果圖。圖5.17位點擊具體 某個章節后的效果圖。
5.5.4課程收藏功能的實現
學生在課程收藏功能模塊主要是對某門課程的課程資源進行收藏和課程的重 點復習,當進入課程資源的主界面時,點擊某一單元目錄后岀現課程某一章節的詳 細介紹,在該頁面出有一收藏Button與章節名并排,如圖5.18所示,給該按鈕添 加監聽事件后,通過Servlet將該章節名發送到后臺數據庫服務器然后存儲在數據庫 表中,當下次學生用戶點擊側邊欄的收藏后,收藏的章節名以Listview列表顯示, 點擊某章節名后即可再次瀏覽課程資源。在Android客戶端將資源ID號傳給服務器, 服務器創建CollectServlet獲取請求參數,然后執行業務處理,進行JSON格式轉換 返回給Android端。以下為CollectServle中實現獲取數據庫資源表信息的主要代碼:
ResultSet rs = db.execut:eQuery($ourc:Q_sqJ.〉;
List<Source2> list = new Arraytist<Source2>(); while (rs.next()) {
St:ring sourceld=rs .getString( 1);
String sourceName^rs.getString(2);
String sourceContentss rs. ge 七 St ring (3);
Source2 s^new Source2();
s.setSourceld(sourceld);
s.setSourceName(sourceName)
llst.add(s);
System.out.println(sourceld);
}
□SONArray json=JSONArray./romObject(list);
response. setConterrt*Type("宅點乂七/亍冷。“;charset-UTF- 8W ) ; //text/jso/i
response.getOutputStream( ) .write( json*toString( ) .getBytes( '*UTF-8U));
Android客戶端CollectActivity中將獲取到的JSON格式數據進行轉換后填充到
SimpleAdapter適配器,最終顯示到界面上。以下為通過HTTP發送請求返回響應結
果的主要代碼:
•try<
String url = HttpUti 1. BAS£_Uf^L
+ '* Col 1 ect: I n-Fo Servlet ?username=,'
+ URLEncoder.encode( URLEncoder .encode (username -七00七Ld.ng(》》 "UTF-S*1) , **UTF-S**);
String result = HttpUti 1. queryStri.ngForGet(,url.); Log. i('*resul'• t result);
try {
JSONArray array - new JSONArray(result);
for ( ±nt i=0; i<array. leng-th<);i++)
{
□ SONObject obj - array .get3SONObject:(i) 5 map=new HashMap<St:ring^ Object:>() map. ,*sourceld,*> obj .get:St:ring( •'sourceld " ) ) j
map. put( ,,sourceName,'> obj .&©七3七廣:1.11£("50口「4:©訊801©"〉); list.add<map);
}
點擊收藏后通過Intent跳轉到收藏界面,效果圖如圖5.18所示:
圖5.18收藏資源界面
5.6 Web端管理模塊的實現
Web端采用MVC框架進行設計,采用JSP語言進行頁面的開發,以Servle類 作為控制器,獲取JSP傳送的請求參數。Get()方法用于接收get請求,使用“Post。 方法執行操作。系統Web端的流程圖如圖5.19所示:
(開始)
JSP顯示操作界面
, 1 ,'
jsp獲取信息和動祚要求并傳送給控
制器Servlet
~~ i
Servlet獲取參數并執行動作
I
DBUtil. java連接MySql數據庫并執行
數據庫操作 I 9 數據庫
(結束)
圖5.19 Web端流程圖
Web端管理員成功登錄后進入主界面,進行管理操作,通過JSP獲取用戶輸入 的信息和動作要求發送給服務器端的Servlet, Servlet獲取參數后執行動作,Web端 主界面如圖5.20所示:
伊巾閘犬字位于九宙運96的網化娥洪眼東,崖落狂淡揺筒潞之洛的柱子山上,占堆養枳2蜩矽謝,臬G晦襌部ssaws點席合童絳范大字,08彖農"工 裡瘡建浚的大字,SKBT5W給PT985優垮學科烈詼平網諼鬲棧.媳3B3總S粋中,潛薄字錢勵商o荻飽祁WOA巧血費肆坨.
字校整榔:&805更?楚經忘為0?«鋼如的文絡利拽大審移{越子冬明辦的交iMW斂 224卅名杠中丈字>、煖$舞建他的中華大學、2“
年色初創中療大亨較■豹如番題上' 歸門年心公立華中天寧• 2壬舛汐仞為半中耐郃如枝,2$詐定名為爐中他釣襖• 7985^亨篠址■氯為華
中聞大芋?珂S?中人之 卜年彌芋親宅4第18$.,99琳江玉民9書ia為K九十砂&疾耐;衣冊砸教II灌民51丈:
代15鷄•字按在百拿第€<玻爲中RU承了彌3錢餃文化如華?文沒HP并來立化如牙,更刃攝7慕綴直的矗蛻,彫底了專波MRt、簽共血’
豹命橇袍.為13揮}8梅了近20巧優弄人刀?
:.'• s £•
圖5.20 Web端管理主界面
5.7本章小結
本章首先確定在MyEclipse平臺成功搭建系統開發環境后使用JDBC技術連接 數據庫MySQL和服務器,然后確定服務器端與Android客戶端之間的通信方式。 最后借用Android虛擬器對系統的教學管理端、教師和學生用戶端進行相應的功能 測試以及在Web端的功能測試,并展示了測試的效果圖。
e
碩士學位論文
MASTER'S THESIS
第六章總結與展望
6.1總結
隨著4G的快速發展,人們獲取信息的方式更為快捷,智能化移動終端尤其是 基于Android操作系統的移動設備的普及,借助移動互聯網獲取信息的方便高效性 和智能終端數據處理的強大功能,人們可隨時隨地獲取自己感興趣的信息,進行移 動學習和辦公。隨著教學方式的改變和教學資源的豐富,如何利用當前的移動無線 網絡,在課程教學中簡化教學工作和方便學生獲取教學資源,變得更有現實意義。
本系統針對高校教學信息管理系統展開設計,致力于開發一款基于Android的 移動版Web教學信息管理系統包括教學管理員的部分辦公工作如對院系信息、師生 信息、課程信息和新聞信息的管理,實現了教師信息查詢和錄入學生選課成績的功 能,同時學生可以査看課程相關信息,與教師進行課外互動等。論文主要完成以下 工作:
(1)系統研究了 Android開發平臺的優勢,同時分析了 Andeid平臺架構的基 本知識。搭建了系統開發和分析了系統的開發工具,并對基于Android的教學信息 管理系統進行了需求分析和總體架構設計。
(2)在系統中,Android客戶端采用了基于MVC設計模式的C/S系統,結合 需求分析,按照角色分別設計了移動管理端和移動客戶端,管理端主要實現部分教 學工作,移動客戶端分為教師端和學生端,教師端主要實現成績的錄入和課程資源 的添加,學生端主要實現信息查詢和課程學習功能。
(3)設計并實現了系統的數據庫MySQL,依照系統的功能需求設計了數據庫 中各個數據表,實現數據的調用,達到共享數搖的目的。
(4)在模擬器進行系統各個功能模塊的測試。
6.2展望
本文設計完成了管理員、教師和學生各自在移動終端的基本功能,但是還是有 許多不足的地方,大致歸納如下:
1、 在教學管理端只實現了部分的教學管理工作,如學生學籍管理、檔案管理、 教材管理、教學質量監控、教學調度管理如排考等這些功能模塊未實現,未能將所 有的web端教學工作移植到移動端,使該系統功能顯得不完善。
2、 在教師客戶端添加教學資源時,未實現教學視頻上傳,在學生客戶端無法 實現資源下載功能和課程提醒功能,由此看來學生無法完全把握教學資源。
3、 在教師客戶端未實現考試授課和習題測驗功能模塊,教師無法通過終端來 了解學生學習情況,影響教學效果。
4、 本系統沒有測試在多用戶接入的情況下同步處理問題,在實際應用中,該 問題影響到系統的穩定性和可靠性。
5、 本系統的界面設計較為簡單,人機交互體驗仍需后期測試與改進。
參考文獻
[1]王毅婷.2014年智能手機Android份額81.5% iOS份額14.8%[EB/OL].浙江新聞, [2015-02-25].http://news.zj.com/detail/2015/02/25/1567289.htm.
[2]落紅衛.移動互聯網助推多媒體視訊發展[J].中國多媒體通信,2014,⑸:48-49.
[3]解攀科.基于Android的移動學習系統[D].華中師范大學,2011.
[4]王小強.高校移動教學系統設計研究[D].大連海事大學,2012.
[5]龐鉉平.國內外高校教務管理系統的研究現狀[JJ.青年文學家,2013,(36):16-18.
[6]聶黎生.3G通信技術支持下的移動學習系統研究[J].軟件導刊,2013, (11):103-105.
[7]孫耀庭,陳信.開放大學"移動校園"構建的探索[JJ.中國教育信息化(高教職教), 2007, (10):7-9.
[8]李芙蓉.當前智能手機操作系統及其比較分析[JJ.信息技術,2008,(5):18-19.
[9]Android[EB/OL].維基百科 http://baike.baidu.eom/view/l241829.htm, 2014.2.
[10]谷歌打造的開源系統Android前世今生[EB/OL],騰訊數碼, [2010-08-17] .http://digi.tech.qq.eom/a/20100817/000681.html.
[11]葉才衛•移動互聯網浪潮下的智能手機發展淺析[JJ.移動通信,2012, 36(15):12-16.
[12]劉振宇,周榮慧.Google服務在Android上的運用與分析[JJ.軟件導刊,2010, 09(11):147-149.
[13]周毅敏,陳榕.Dalvik虛擬機進程模型分析[J].計算機技術與發展,2010, 20 ⑵:83-86.
[14]曾健平,邵艷潔.Android系統架構及應用程序開發研究[JJ.微計算機信息,2011, (9):13
[15]黨李成.基于Google Android智能手機平臺的研究與應用[D].安徽大學,2010.
[16]董正W.Java跨平臺特性的實現原理[JJ.科技資訊,2014,12(18):20-21.
[17]Hornsby, A. XMPP message-based MVC architecture for event-driven real-time interactive applications [J]. Consumer Electronics IEEE International Conference on, 2011,10(11):617-61 &
[18]張鵬.基于Dalvik虛擬機的java指令調試設計與實現[D].電子科技大學,2013.
[19]Lauren Darcey,Shane Conder.Android移動開發一本就夠[MJ.北京人民郵電出版 社,2011.
[20]楊旭超.基于Android終端應用的研究與實現[D].西安電子科技大學,2013.
[21]程群峰.分析和比較開放和封閉的移動平臺[EB/OL].CIO時代網, [2014-05-29]±ttp://wwwxiotimesxom/infrastracture/ky/92981.html.
[22]周毅敏,陳榕.Dalvik虛擬機進程模型分析[J].計算機技術與發展,2010, 20(2):83-86.
[23]曾立鵑,唐泉彬,牛斗.Android系統應用程序組件安全性分析[J].軟件,2014, (3):147-151.
[24]韓立峰.基于ASP.NET Web API框架的校園一卡通手機客戶端研究[J].計算機 與現代化,2014, (9):128-131.
[25]吳亞峰,索依娜等.《Android核心技術與實例詳解》北京電子工業出版 社,2010.10.
[26]米天勝.基于開放式插件體系結構的Eclipse平臺及其應用[J].中國管理信息化, 2007, (12):29-33.
[27]郭慎平.基于Eclipse的嵌入式開發工具的研究與實現[D].武漢理工大學,2009.
[28]雒娜.基于ECLIPSE平臺的OPS插件開發[D].上海交通大學,2012.
[29]林星錦•基于Android平臺的無線訂餐系統的設計與實現[D].北京交通大學, 2013.
[30]陳翔.基于Android平臺的CAD標準圖形交換文件瀏覽系統[D].蘇州大學,2013.
[31]楊樟.王征.Tomcat 7的安裝和管理[J].辦公自動化(綜合版),2014, (7):61-62.
[32]凌耀如•基于Android的學生信息管理系統設計與實現[D]•成都電子科技大 學,2012.
[33]秦圓圓.關于Tomcat的一些問題探討[J].山西科技,2011,⑷.
[34]賈禧,鎮明敏,杜磊等.《JavaWeb整合開發實戰》[M].北京清華大學出版社, 2013.7.
[35]董紀英,燕志偉,梁正玉.SQLite、MySQL> PostgreSQL關系型數據庫管理系統 比較[J].電腦編程技巧與維護,2014, (14):55-5&
[36]楊志剛.MVC模式在辦公自動化信息系統中的研究與應用[D].太原理工大學,
2011.
[37]孫鵬飛•軟件數據層與業務邏輯層分層方法研究[D].西安理工大學,2013.
[38]ZHONG W. Service model-oriented software running platform and running method thereof: WO, W02013007141 A1[P]. 2012.
[39]張恩慧.MVC模式在信息管理平臺中的研究與應用[D].沈陽理工大學,2009.
[40]王全彬.MVC架構模式在Java開發中的應用[J].四川理工學院學報(自然科學 版),2009, (1):38-40.
[41]段琳.深入剖析AndroidActivity[J].中國新技術新產品,2011,(16):33-34.
[42]吳亞峰,蘇亞光.Android應用案例開發大全[M]•北京人民郵電出版社,2011:1-2.
[43]邢四為•基于JSON的信息交互系統的研究與實現[D].安徽大學,2013.