版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于Android的移動選課系統(tǒng)的設計</p><p><b> 摘 要</b></p><p> 隨著互聯(lián)網(wǎng)的不斷發(fā)展以及高等教育與教學的改革,高校的選課方式已經(jīng)從傳統(tǒng)的紙質(zhì)方式轉(zhuǎn)向了網(wǎng)上選課方式。近年來,隨著智能手機等移動設備的不斷普及,移動選課將是繼互聯(lián)網(wǎng)選課之后的又一種選課模式。網(wǎng)上選課系統(tǒng)的軟件較多,但具體的移動選課軟件相對較少。針
2、對這個情況,本文討論在廣泛應用的Android平臺上設計與開發(fā)移動選課系統(tǒng)。</p><p> 本設計作為現(xiàn)有基于Web的網(wǎng)上選課系統(tǒng)的輔助手段和重要補充,旨在為廣大學生提供隨時隨地方便快捷的選課方式。通過初步對Android軟件開發(fā)技術(shù)和Java Servlet編程技術(shù)的學習以及對現(xiàn)有選課系統(tǒng)的分析和研究,結(jié)合移動互聯(lián)網(wǎng)的特點,總結(jié)出移動選課系統(tǒng)所應具備的主要功能。運用信息系統(tǒng)開發(fā)方法等技術(shù)手段對該系統(tǒng)進行了
3、整體的規(guī)劃、設計與實現(xiàn)。該系統(tǒng)具有用戶登錄、選課、退選、查看選課信息等基本的功能。該系統(tǒng)分為系統(tǒng)登錄、選課信息、選課、退選、已選課查詢等模塊。在移動選課系統(tǒng)的設計與實現(xiàn)過程中,采用了C/S架構(gòu)、Http通信協(xié)議;服務器通過JDBC與數(shù)據(jù)庫進行交互,手機通過流的形式接收從Web服務器傳來的數(shù)據(jù)。</p><p> 關(guān)鍵詞:移動選課,Android,Java Servlet,C/S架構(gòu)</p><
4、;p> Design Of Mobile Elective Course System Based On Android</p><p><b> ABSTRACT</b></p><p> With the development of the internet and the college education’s revolution, univer
5、sities’ course electing form has changed to internet course electing form from traditional one which uses paper materials. Nowadays, PDA phone and other mobile instruments have explored a very broad way in this society.
6、Mobil elective course system is one another system which uses the internet to choose course. There are a few of soft wares appearing on the internet about course electing. However, there are little</p><p>
7、This essay as the supplementary ways based on some existing internet course electing systems is mainly to provide convenient and efficient ways for students’ course electing needs. After the basic study about the Android
8、 system exploration and the Java Servlet programming technology, this system combined the Mobil internet’s characters to get a summary which is about Mobil elective course system main functions. Through some system explo
9、itation this system made a project about it. This system has</p><p> KEY WORDS: Mobile Elective Course,Android,Java Servlet,C/S</p><p><b> 目 錄</b></p><p><b> 前
10、言1</b></p><p><b> 第1章 緒論2</b></p><p> 1.1選課系統(tǒng)的現(xiàn)狀2</p><p> 1.2 Android系統(tǒng)特點2</p><p> 1.3基于Android的移動選課系統(tǒng)概述3</p><p> 1.3.1 基于Andro
11、id的移動選課系統(tǒng)描述3</p><p> 1.3.2 基于Android的移動選課系統(tǒng)意義3</p><p> 第2章 環(huán)境配置4</p><p> 2.1 軟件環(huán)境4</p><p> 2.1.1 Android開發(fā)環(huán)境的搭建4</p><p> 2.1.2 SQL Server數(shù)據(jù)庫配置6&
12、lt;/p><p> 2.2 硬件環(huán)境7</p><p> 第3章 系統(tǒng)分析9</p><p> 3.1系統(tǒng)設計的原則和目的9</p><p> 3.2 需求分析9</p><p> 3.2.1 系統(tǒng)模塊9</p><p> 3.2.2 客戶端與服務器的連接方式10</
13、p><p> 3.2.3 系統(tǒng)結(jié)構(gòu)10</p><p> 第4章 系統(tǒng)設計11</p><p> 4.1 該系統(tǒng)的整體結(jié)構(gòu)11</p><p> 4.2 數(shù)據(jù)庫設計11</p><p> 4.2.1 數(shù)據(jù)庫結(jié)構(gòu)設計11</p><p> 4.2.2 數(shù)據(jù)庫各表的設計12<
14、;/p><p> 4.3 服務器設計14</p><p> 4.3.1 Java Servlet程序14</p><p> 4.3.2與數(shù)據(jù)庫交互的程序15</p><p> 4.4 Android客戶端設計15</p><p> 4.4.1 Android客戶端的頁面設計15</p>&
15、lt;p> 4.4.2 Android客戶端各頁面之間的關(guān)系16</p><p> 第5章 系統(tǒng)的實現(xiàn)17</p><p> 5.1 客戶端的實現(xiàn)17</p><p> 5.1.1 系統(tǒng)主界面的實現(xiàn)17</p><p> 5.1.2 系統(tǒng)登錄模塊的實現(xiàn)17</p><p> 5.1.3 已選
16、課程查詢模塊的實現(xiàn)20</p><p> 5.1.4 退選模塊的實現(xiàn)21</p><p> 5.1.5 可選課程信息模塊的實現(xiàn)21</p><p> 5.1.6 選課模塊的實現(xiàn)22</p><p> 5.2 服務器端的實現(xiàn)23</p><p> 5.3 客戶端與服務器端的通訊25</p>
17、;<p><b> 第6章 測試27</b></p><p> 6.1 測試的作用和意義27</p><p> 6.2 測試方法27</p><p> 6.3 測試內(nèi)容28</p><p> 6.4 測試結(jié)果29</p><p> 6.5 測試結(jié)論29<
18、/p><p><b> 結(jié) 論31</b></p><p><b> 謝 辭32</b></p><p><b> 參考文獻33</b></p><p><b> 前 言</b></p><p> 近年來,隨著我國高等教
19、育與教學的改革,數(shù)字信息化的教學管理系統(tǒng)在高校日趨廣泛,伴隨著學年制管理體制向?qū)W分制管理體制的發(fā)展,使得網(wǎng)上選課系統(tǒng)在高校中得到廣泛的應用。傳統(tǒng)的選課系統(tǒng)是以固定的形式訪問互聯(lián)網(wǎng)。這樣,雖然能夠滿足大部分學生的選課需要。但是在選課高峰時期,學校的Web服務器因訪問量過大而暫時癱瘓,學校機房的電腦數(shù)量有限難滿足學生們的選課需求。有時為了選擇到自己喜歡的課程,往往要提前半小時到一個小時在計算機上登錄選課系統(tǒng),守候在計算機旁邊,而不能做到隨時
20、隨地的選課。</p><p> 同時,隨著科技的發(fā)展,搭載Android操作系統(tǒng)的智能手機依靠其龐大的應用程序和越來越低廉的價格吸引了廣大的用戶。在如此龐大的用戶基數(shù)影響下,移動互聯(lián)網(wǎng)技術(shù)得到了飛速的發(fā)展,我國的網(wǎng)民也正在從傳統(tǒng)的互聯(lián)網(wǎng)向移動互聯(lián)網(wǎng)轉(zhuǎn)移。在大學生中,智能手機用戶也占有相當大的比例。因此,學生需要另一種的選課系統(tǒng)來解決當前選課系統(tǒng)存在的問題,來分流由于傳統(tǒng)網(wǎng)絡訪問給服務器帶來的壓力?;贏ndro
21、id的移動選課系統(tǒng)應運而生。</p><p> 如今,高校的網(wǎng)上選課系統(tǒng)都是比較成熟完善的。移動選課系統(tǒng)只是現(xiàn)有網(wǎng)上選課系統(tǒng)的補充?;谏鲜隹紤],客戶端與服務器之間的通信采用Http通信協(xié)議。用C/S模式來建立移動選課系統(tǒng)比較合適。服務器端采用SQL 數(shù)據(jù)庫服務器,Tomcat Web服務器以及Java Servlet的Web服務器編程技術(shù)構(gòu)建移動選課的應用服務系統(tǒng);客戶端采用Android平臺的客戶端軟件用來
22、登錄服務器。</p><p> 開發(fā)基于Android的移動選課系統(tǒng)的意義在于:對當今流行的Android軟件有深入的了解,發(fā)現(xiàn)在開發(fā)過程中所面臨的問題,簡化選課程序,方便同學們的選課。同時,為今后開發(fā)出適合我校情況的移動選課系統(tǒng)打下基礎。</p><p><b> 第1章 緒論</b></p><p> 1.1選課系統(tǒng)的現(xiàn)狀</p
23、><p> 現(xiàn)在大多數(shù)的高校的選課系統(tǒng)都是采用的瀏覽器/服務器(B/S)模式,這種模式相對最初的人工課程管理方便了許多,不在需要大量的人力,學生選課也不在排隊擁擠,更不會因為選課而耽誤正常的教學任務。B/S模式的選課系統(tǒng)只需要一臺能訪問網(wǎng)絡的瀏覽器即可。只要選課服務器端提供選課、學籍管理、考試成績、畢業(yè)設計等業(yè)務模塊,在客戶端的瀏覽器視窗中就能進行相應模塊的功能管理。隨著移動互聯(lián)網(wǎng)的發(fā)展這種B/S模式的選課系統(tǒng)也存
24、在很多不足,比如要進行選課操作時,就必須坐在接入網(wǎng)絡的電腦前:而且課程開設的通知等等也是要通過上網(wǎng)才知道,對于一些不常上網(wǎng)的同學可能就會錯過很多有用的消息,比如說課程調(diào)整通知、考試安排等等。而這些缺陷都可以通過移動終端來解決。</p><p> 1.2 Android系統(tǒng)特點</p><p> 近幾年,3G的全球覆蓋使世界快速步入移動互聯(lián)網(wǎng)時代,網(wǎng)絡的應用范圍變得更加廣泛,移動智能終端
25、在市場上迅速滲透,成為移動互聯(lián)網(wǎng)發(fā)展的強大動力。根據(jù)市場調(diào)研機構(gòu)Gartner發(fā)布的最新統(tǒng)計報告顯示,2011年一季度全球手機銷售量共4.278億部,其中智能手機銷量超過1億部,現(xiàn)在高校師生的智能移動通訊設備擁有率已經(jīng)和PC擁有率相近。而智能手機操作系統(tǒng)中,Android系統(tǒng)的市場份額又遠遠大于其他的手機操作系統(tǒng)。Android是Google于2007年11月5日發(fā)布的基于Linux內(nèi)核的移動平臺,該平臺由操作系統(tǒng)、中間件、用戶界面、應
26、用軟件組成;從軟件分層的角度來說,Android平臺由應用程序、應用程序框架、Android運行時庫層以及Linux內(nèi)核共4部分構(gòu)成,是一個真正開放的移動平臺。</p><p> 1.3基于Android的移動選課系統(tǒng)概述</p><p> 1.3.1 基于Android的移動選課系統(tǒng)描述</p><p> 基于Android的移動選課系統(tǒng)是學校網(wǎng)上選課系統(tǒng)的
27、補充,該系統(tǒng)的客戶端運行于當下最流行的智能手機操作系統(tǒng)——Android智能手機操作系統(tǒng)之上。通過GPRS(通用無線分組業(yè)務)或WLAN(無線局域網(wǎng))等無線數(shù)據(jù)傳輸平臺,在我校集中的選課時間為我校的在校學生建立使用移動終端隨時隨地訪問我校的選課系統(tǒng)的平臺,了解選課信息,查詢選課結(jié)果,及時、快速、準確的選擇喜歡的課程。</p><p> 1.3.2 基于Android的移動選課系統(tǒng)意義</p>&l
28、t;p> 基于Android的移動選課系統(tǒng)的用戶無論是在公交車,在商場,還是在沒用電腦的宿舍。只要通過搭載有該客戶端的Android手機就能隨時隨地的登陸系統(tǒng)進行選課。從而使用戶遠離的電腦的束縛,在學校集中選課的時間可以不用去機房排隊等候選課,大大地提高了學生選課的效率。</p><p><b> 第2章 環(huán)境配置</b></p><p><b>
29、 2.1 軟件環(huán)境</b></p><p> 2.1.1 Android開發(fā)環(huán)境的搭建</p><p><b> 1. 安裝JDK</b></p><p> Sun公司為所有的java程序員提供了一套免費的java開發(fā)和運行環(huán)境??梢酝ㄟ^訪問Http://java.sun.com/j2se,根據(jù)提示下載支持Windows操作
30、系統(tǒng)的JDK到本地硬盤。</p><p> 安裝的時候可以選擇安裝到任意的硬盤驅(qū)動器上。正確安裝之后,在JDK目錄下有bin、demo、lib、jre等子目錄。然后是設置JDK的環(huán)境變量,其設置方法如下:</p><p> 在Windows操作系統(tǒng)下,用鼠標右鍵單擊【我的電腦】,彈出菜單選擇【屬性】,彈出【系統(tǒng)特性】對話框,再單擊該對話框中的【高級選項】,然后單擊【環(huán)境變量】按鈕,添加
31、如下的系統(tǒng)環(huán)境變量。</p><p><b> 變量名:PATH</b></p><p> 變量值:D:\java\bin;%PATH%(其內(nèi)容根據(jù)JDK安裝的目錄變化)設置完成點擊【確定】即可。</p><p> 2. Eclipse的安裝</p><p> 訪問http://www.eclipse.org/d
32、ownloads/,下載Eclipse IDE for Java Developers(92M)的win 32bit版,解壓后即可使用。</p><p> 3. Android SDK安裝</p><p> 在Android Developers下載android-sdk_r05-windows.zip,下載完成后解壓到任意路徑。</p><p> 運行SDK
33、 Setup.exe,點擊Available Packages。如果沒有出現(xiàn)可安裝的包,請點擊Settings,選中Misc中的"Force https://..."這項,再點擊Available Packages 。</p><p> 選擇希望安裝的SDK及其文檔或者其它包,點擊Installation Selected、Accept All、Install Accepted,開始下載安裝
34、所選包</p><p> 下載完成后,添加如下環(huán)境變量:</p><p><b> 變量名:PATH</b></p><p> 變量值:D:\Android_SDK\android-sdk\tools(其內(nèi)容根據(jù)JDK安裝的目錄變化)然后單擊確定即可。</p><p><b> 4. ADT的安裝<
35、;/b></p><p> 打開 Eclipse,進入菜單中的 "Help" -> "Install New Software"</p><p> 在Work with中輸入網(wǎng)址http://dl-ssl.google.com/android/eclipse/,如圖2-1所示。</p><p> 圖2-1 A
36、DT的安裝</p><p> 然后選中Devrloper Tools單擊“下一步”完成即可。完成之后選擇Window > Preferences...,在左邊的面板選擇Android,然后在右側(cè)點擊Browse...并選中SDK路徑,點擊Apply、OK,配置完成。</p><p><b> 5. 創(chuàng)建AVD</b></p><p>
37、 為使Android應用程序可以在模擬器上運行,必須創(chuàng)建AVD。</p><p> ?。?)在Eclipse中。選擇Windows > AVD Manager</p><p> (2)點擊左側(cè)面板的Virtual Devices,再右側(cè)點擊New</p><p> (3)填入Name,選擇Target的API,SD Card:512MB(保證模擬器運行流
38、暢),Skin隨便選,Hardware目前保持默認值。</p><p> 2.1.2 SQL Server數(shù)據(jù)庫配置</p><p> 在連接數(shù)據(jù)庫之前必須保證SQL Server 2005是采用SQL Server身份驗證方式而不是windows身份驗證方式。如果在安裝時選用了后者,則重新設置如下:</p><p> 1. 打開SQL Server 2005
39、,右擊最上面的服務器,選擇屬性——>安全性,在右邊框中選擇SQL Server和Windows身份驗證模式,如圖2-2所示,最后點確定。</p><p> 圖2-2 服務器屬性</p><p> 選擇“安全性”中的登錄名中的sa,右擊選擇“屬性”, 選擇常規(guī),在右邊輸入登錄名sa,輸入密碼與確認密碼123456(登錄名和密碼可以根據(jù)需要自行設置),再在左邊選擇狀態(tài),在登錄中設“啟
40、用”。</p><p> 2. 安裝好SQL Server 2005后,運行 開始 → 所有程序 → Microsoft SQL Server 2005 → 配置工具 → SQL Server Configuration Manager,在打開的窗口的左邊找到 MSSQLSERVER的協(xié)議,在右邊右單擊 TCP/IP,選擇 已啟用。如果Named Pipes 未啟用也設為啟用。雙擊右邊的 TCP/IP,在彈出的
41、窗口中選擇 IP地址 標簽,把 IpAll 中的 TCP端口 設成 1433,并將上方所有的“已啟用”選項設置成“是”。如圖2-3所示。</p><p> 圖2-3 TCP/IP屬性</p><p> 3. 運行 開始 → 所有程序 → Microsoft SQL Server 2005 → 配置工具 → SQL Server 外圍應用配置器,在打開的窗口中選擇 服務和連接的外圍應用配
42、置器,在打開的窗口左邊選擇 遠程連接,在右邊選擇 同時使用TCP/IP和named pipes(B),然后點擊“應用”。如圖2-4所示。</p><p> 圖2-4 服務和連接的外圍應用配置器</p><p><b> 2.2 硬件環(huán)境</b></p><p> 開發(fā)Android應用程序要同時運行Java虛擬機、Android虛擬機以及
43、Android模擬器,對計算機硬件的要求比較高。其硬件的最低配置如下:</p><p> CPU:主頻要在2.0GHZ以上。</p><p> 內(nèi)存:要在2G以上。</p><p> 屏幕最佳分辨率:1024×768像素。</p><p> 對硬盤的大小不做要求只要有足夠的空間能夠保證程序正常運行就可以。</p>
44、<p><b> 第3章 系統(tǒng)分析</b></p><p> 3.1系統(tǒng)設計的原則和目的</p><p> 移動選課系統(tǒng)基于我校現(xiàn)有的網(wǎng)上選課系統(tǒng)的數(shù)據(jù)庫,設計目的就是作為現(xiàn)有的基于Web的網(wǎng)上選課系統(tǒng)的輔助手段和重要的補充,為廣大的學生提供隨時隨地方便快捷的選課、退課和課程查詢等功能。以原有的選課系統(tǒng)為基礎,在不影響原有系統(tǒng)正常運行和使用的情況下
45、增加通過手機選課的功能以擴充原有的選課系統(tǒng),使選課的方式更加的靈活方便,且選課不受地域場所的限制,在學校集中選課的時間使用手機隨時隨地就可以選課。同時也分流了B/S模式下服務器超負荷的壓力。</p><p> 根據(jù)我校選課的實際情況采用C/S模式開發(fā)適合手持設備使用的客戶端軟件以及在WEB服務器上部署的服務器軟件。</p><p> 該系統(tǒng)充分按照簡單使用性原則設計,客戶端軟件簡單易用
46、,同時充分考慮到無線網(wǎng)絡和手持設備的特殊性,最大化的利用網(wǎng)絡資源。在設計功能的同時,考慮到系統(tǒng)的可伸縮性;在設計和代碼的實現(xiàn)上,給程序預留了可擴展的接口,以便需要時可以快速的增加上相應的功能。</p><p><b> 3.2 需求分析</b></p><p> 3.2.1 系統(tǒng)模塊</p><p> 移動選課系統(tǒng)總共包含五個功能模塊:系
47、統(tǒng)登錄、選課信息、選課、退選和已選課程查詢</p><p> 系統(tǒng)登錄:通過輸入用戶名和密碼驗證合法的學生身份,避免了惡意登錄系統(tǒng)的情況。同時根據(jù)用戶名提取滿足其要求的信息</p><p> 選課信息:顯示登錄的學生可以選擇的所有課程的信息和教師信息以供學生選擇。</p><p> 選課:學生輸入相應的課程號選擇課程。</p><p>
48、 退選:當用戶點擊了退選按鈕后,退選已經(jīng)選擇的課程。</p><p> 已選課程查詢:列出該學生已選的課程信息,以供參考。</p><p> 3.2.2 客戶端與服務器的連接方式</p><p> 手機客戶端使用Http方式同Web服務器通信,服務器端通過JDBC與數(shù)據(jù)庫交互。手機通過Http以流的形式接收從Web服務器傳來的數(shù)據(jù)流。手機終端與Web服務器之
49、間通信的數(shù)據(jù)格式采用一個特殊的標記,從而使客戶端和服務器完成特定的功能。</p><p> 3.2.3 系統(tǒng)結(jié)構(gòu)</p><p> 客戶機/服務器 (C/S)結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),將任務合理分配到客戶端和服務器端。其中,服務器端主要提供數(shù)據(jù)管理、數(shù)據(jù)共享、數(shù)據(jù)及系統(tǒng)維護和并發(fā)控制等,客戶端程序主要完成用戶的具體的業(yè)務,省去了中間的其他環(huán)節(jié)。從而,提高了系統(tǒng)的響應速度,降低
50、了系統(tǒng)的通訊開銷,但是需要安裝客戶端才可進行相應的管理操作。 </p><p> 同時,在C/S架構(gòu)中客戶端與服務器之間相互分離,可以對客戶端進行單獨的設計。使客戶端的操作界面漂亮、形式多樣,可以充分滿足客戶自身的個性要求。且此結(jié)構(gòu)還具有較強的事務處理能力,能實現(xiàn)負載的業(yè)務流程等優(yōu)點。</p><p> 因此,鑒于C/S架構(gòu)的優(yōu)點、手機操作系統(tǒng)、網(wǎng)絡速度以及當前大多數(shù)Android手機
51、應用都采用C/S架構(gòu)的考慮?;贏ndroid的移動選課系統(tǒng)采用客戶端/服務器(C/S)結(jié)構(gòu)。</p><p><b> 第4章 系統(tǒng)設計</b></p><p> 4.1 該系統(tǒng)的整體結(jié)構(gòu)</p><p> 系統(tǒng)的整體結(jié)構(gòu):Android客戶端手機通過無線網(wǎng)絡訪問后臺服務器,如果需要數(shù)據(jù)訪問,則訪問后臺數(shù)據(jù)庫。如圖4-1所示。</
52、p><p><b> 圖4-1 系統(tǒng)結(jié)構(gòu)</b></p><p><b> 4.2 數(shù)據(jù)庫設計</b></p><p> 4.2.1 數(shù)據(jù)庫結(jié)構(gòu)設計</p><p> (1) 用戶表,包含的字段有:登錄名、密碼。</p><p> (2) 學生表,包含的字段有:學號、姓
53、名、性別、出生日期、政治面貌、入學日期、聯(lián)系電話、班級。</p><p> (3) 選課表,包含的字段有:學號、課程號。</p><p> (4) 課程表,包含的字段有:課程號、課程名、學時、學分、課程性質(zhì)、考核方式、上課學期。</p><p> (5) 教師信息表,包含的字段有:姓名、課程號、所屬系部、聯(lián)系方式、上課地點。</p><p&
54、gt; 其E-R模型如圖4-2所示。</p><p> 圖4-2 系統(tǒng)E-R圖</p><p> 4.2.2 數(shù)據(jù)庫各表的設計</p><p> 根據(jù)上述設計的數(shù)據(jù)庫的結(jié)構(gòu),設計了名稱為“移動選課系統(tǒng)”的數(shù)據(jù)庫。</p><p> “移動選課系統(tǒng)”數(shù)據(jù)庫有下面多個表組成,各表的命名及字段命名都是以漢字的形式來命名,各表的設計結(jié)果如下
55、:</p><p><b> 表4-1 用戶表</b></p><p><b> 表4-2 學生表</b></p><p><b> 表4-3 選課表</b></p><p><b> 表4-4 課程表</b></p><p&g
56、t; 表4-5 教師信息表</p><p><b> 4.3 服務器設計</b></p><p> 該移動選課系統(tǒng)的手機客戶端采用了Http方式同Web服務器通信?;谶@個要求,在服務器端編寫了Java Servlet程序放置在名稱為“servlet”包中用以實現(xiàn)手機客戶端采用Http的方式同服務器進行通信。同時還編寫了一個通過 JDBC與數(shù)據(jù)庫交互的程序放在名
57、稱為“shujuku”的包中以實現(xiàn)Servlet程序與數(shù)據(jù)庫之間的數(shù)據(jù)交換。</p><p> 4.3.1 Java Servlet程序</p><p> Servlet是一種采用Java來實現(xiàn)CGI功能的技術(shù)。Servlet本身與協(xié)議無關(guān),與平臺與無關(guān)。對應的軟件包有兩個javax.servlet.http和javax.servlet.jsp,通常所說的Servlet編程主要就是指針
58、對HTTP的Servlet編程。</p><p> Servlet運行于Servlet引擎管理的Java虛擬機中,被來自客戶端的請求所喚醒,在虛擬機中只要裝載一個Servlet及能夠處理新的請求。</p><p> Tomcat服務器是運行Servlet程序的載體,在運行Servlet程序之前要在機器上安裝好tomcat服務器。這是Servlet運行時所需要的環(huán)境。</p>
59、<p> 移動選課系統(tǒng)的Servlet程序包含LoginServlet、CX、SC、XS和XK五個類,這五個類同時繼承HttpServlet類。這五個類的功能描述如下:</p><p> LoginServlet類:接收和返回用戶的登陸信息。</p><p> CX類:接收用戶對已選課程查詢的請求,給用戶返回相應的數(shù)據(jù)信息。</p><p>
60、SC類:接收用戶對刪除已選課程的請求,給用戶返回是否刪除成功的相應信息。</p><p> XS類:接收用戶對顯示所有可選課程的請求,并給用戶返回相應的信息。</p><p> XK類:接收用戶的選課請求,給用戶返回是否選課成功的相關(guān)信息。</p><p> 4.3.2與數(shù)據(jù)庫交互的程序</p><p> 與數(shù)據(jù)庫的交互程序是服務器的
61、核心程序,共包含lianjie、LogIn、ChaXun、XianShi、XuanKe和shanchu六個方法。功能描述如下:</p><p> Lianjie方法:通過JDBC與數(shù)據(jù)庫進行連接連接。</p><p> LogIn方法:通過與數(shù)據(jù)庫的交互驗證登陸者的身份是否合法。</p><p> ChaXun方法:通過與數(shù)據(jù)可的交互查詢出登陸的用戶已經(jīng)選擇的
62、課程。</p><p> XianShi方法:通過與數(shù)據(jù)庫的交互給登陸的用戶提供可以選擇的所有課程信息。</p><p> XuanKe方法:通過與數(shù)據(jù)庫的交互為登陸的用戶保存他的選課信息。</p><p> Shanchu方法:通過與數(shù)據(jù)庫的交互刪除登陸的用戶已經(jīng)選擇的課程信息。</p><p> 4.4 Android客戶端設計&
63、lt;/p><p> 4.4.1 Android客戶端的頁面設計</p><p> Android客戶端主要包括四個頁面,登錄頁面、主頁面、已選課程頁面以及可選課程頁面。每個頁面的主要功能描述如下:</p><p> 登錄頁面:供用戶登錄系統(tǒng)只用。同時,檢測用戶輸入的用戶名和密碼是否為空,是否合法。</p><p> 主頁面:該頁面上列出
64、了若干項菜單。以供用戶選擇自己要完成的事項。</p><p> 已選課程頁面:該頁面上顯示用戶已經(jīng)選擇在的課程。</p><p> 可選課程頁面:該頁面羅列出所有可以選擇的課程,以供用戶選擇自己喜歡的課程。</p><p> 其中,“課程退選”功能在已選課程頁面添加一個“退選”按鈕實現(xiàn)?!斑x課”功能在可選課程頁面中添加一個“選課”按鈕實現(xiàn)。</p>
65、<p> 4.4.2 Android客戶端各頁面之間的關(guān)系</p><p> Android客戶端個頁面之間的關(guān)系即客戶端的結(jié)構(gòu)如下圖4-3所示:</p><p><b> 圖4-3客戶端結(jié)構(gòu)</b></p><p><b> 第5章 系統(tǒng)的實現(xiàn)</b></p><p> 5
66、.1 客戶端的實現(xiàn) </p><p> 5.1.1 系統(tǒng)主界面的實現(xiàn)</p><p> 系統(tǒng)主界面很簡介,只包含一個菜單選項,通過這個菜單導航到各個功能模塊,主界面如圖5-1所示:</p><p><b> 圖5-1系統(tǒng)主界面</b></p><p> 主界面對應的類是MainActivity,繼承了ListAc
67、tivity類實現(xiàn)一個ListView,對應的就是界面上的菜單。在MainActivity中的onCreate方法中初始化數(shù)據(jù)。</p><p> 5.1.2 系統(tǒng)登錄模塊的實現(xiàn)</p><p> 系統(tǒng)登錄模塊的流程圖如圖5-2所示:</p><p> 圖5-2登錄模塊流程圖</p><p> 當用戶點擊登錄,若登錄成功則進入如圖5-
68、1所示的系統(tǒng)主界面。若用戶名或密碼為空則在頁面上彈出相應的提示,如圖5-3所示;若密碼錯誤同樣出現(xiàn)相應的提示。如圖5-4所示。</p><p><b> 圖5-3密碼為空</b></p><p> 圖5-4密碼密碼不正確</p><p> 其中判斷用戶名和密碼是否為空的代碼如下:</p><p> private
69、 boolean validate(){</p><p> String username = userEditText.getText().toString();</p><p> if(username.equals("")){</p><p> showDialog("用戶名稱是必填項!");</p>
70、<p> return false;</p><p><b> }</b></p><p> String pwd = pwdEditText.getText().toString();</p><p> if(pwd.equals("")){</p><p> showDial
71、og("用戶密碼是必填項!");</p><p> return false;</p><p><b> }</b></p><p> return true;</p><p><b> }</b></p><p> 判斷密碼是否錯誤的代碼如下:
72、</p><p><b> try {</b></p><p> Connection con = DriverManager.getConnection(dbURL, userName,</p><p><b> userPwd);</b></p><p> Statement login
73、 = con.createStatement();</p><p> ResultSet yhb = login.executeQuery("select 學號,密碼 from 用戶表 ");</p><p> while (yhb.next()) {</p><p> if (username.equals(yhb.getString(&
74、quot;學號"))</p><p> && userpwdmima.equals(yhb.getString("密碼"))) {</p><p> ifdenglu = true;</p><p> ifdenglu1 = "t";</p><p><b>
75、 break;</b></p><p><b> }</b></p><p><b> } else {</b></p><p> System.out.println("用戶名或密碼錯誤,請重試!!");</p><p> ifdenglu1 = "
76、;f";</p><p><b> }</b></p><p> 5.1.3 已選課程查詢模塊的實現(xiàn)</p><p> 已選課程查詢模塊的流程圖如圖5-5所示:</p><p> 圖5-5已選課程流程圖</p><p> 當用戶點擊如5-1的選課信息查詢菜單后,用戶進入已選課程
77、頁面如圖5-6所示。</p><p><b> 圖5-6已選課程</b></p><p> 當該用戶沒有選課是頁面會出現(xiàn)您還沒有選課的提示,如圖5-7所示:</p><p> 圖5-7 未選課提示</p><p> 5.1.4 退選模塊的實現(xiàn)</p><p> 當用戶點擊圖5-6的退選按
78、鈕時頁面會給用戶以響應的提示,提示用戶是否退選成功。如圖5-8所示:</p><p><b> 圖5-8退選</b></p><p> 說明:退選模塊的流程去前兩個模塊的相似,故在這里就不給出詳細的流程圖和核心代碼,流程圖可參考圖5-2 。</p><p> 5.1.5 可選課程信息模塊的實現(xiàn)</p><p>
79、當用戶點擊圖5-1的可選課程查詢菜單后,用戶進入可選課程頁面,如圖5-9所示,在這里用戶可以瀏覽所有可以選擇的課程信息。</p><p><b> 圖5-9可選課程</b></p><p> 說明:退選模塊的流程去前兩個模塊的相似,故在這里就不給出詳細的流程圖和核心代碼。流程圖可參考圖5-2 。</p><p> 5.1.6 選課模塊的實
80、現(xiàn)</p><p> 在如圖5-9所示的用戶頁面中,輸入要選擇的課程號,點擊選課按鈕之后。頁面上會給出選課是否成功的相應提示,以便用戶有相應的了解。如圖5-10和圖5-11所示。</p><p> 圖5-10提示選課成功</p><p> 圖5-11 提示已經(jīng)選課</p><p> 說明:退選模塊的流程去前兩個模塊的相似,故在這里就不
81、給出詳細的流程圖和核心代碼。流程圖可參考圖5-2 。</p><p> 5.2 服務器端的實現(xiàn)</p><p> 在服務器的Servlet編程中使用LogIn、ChaXun、ShanChu、XianShi和XuanKe五個類,與數(shù)據(jù)庫進行交互,對數(shù)據(jù)庫接收到的數(shù)據(jù)進行處理。將處理后的結(jié)果返回給客戶端,并在服務器端打印出用戶所請求的相關(guān)信息。如圖5-12所示。</p>&l
82、t;p> 圖5-12 服務器端顯示相關(guān)信息</p><p> 其中ChaXun(顯示選課信息)類的相關(guān)代碼如下:</p><p><b> try {</b></p><p> Connection con = DriverManager.getConnection(dbURL, userName,</p><
83、p><b> userPwd);</b></p><p> Statement s = con.createStatement();</p><p> ResultSet ifyixuanke = s.executeQuery(sql);</p><p> while (ifyixuanke.next()) {</p>
84、<p> ifhas = ifyixuanke.getString("是否選課");</p><p><b> }</b></p><p> s.close();</p><p> if (ifhas.equals("t")) {</p><p> Prep
85、aredStatement chaxun = con</p><p> .prepareStatement("select 課程名,學時,學分,課程性質(zhì),考核方式,學期 from 課程表 where 課程號=(select 課程號 from 選課表 where 學號= ? ) ");</p><p> chaxun.setString(1, username);&l
86、t;/p><p> ResultSet kch = chaxun.executeQuery();</p><p> while (kch.next()) {</p><p> re = "t" + " " + kch.getString("課程名") + " "+ kch.getStr
87、ing("學時") + " " + kch.getString("學分")</p><p> + " " + kch.getString("課程性質(zhì)") + " "</p><p> + kch.getString("考核方式") + "
88、 " + </p><p> kch.getString("學期");</p><p><b> }</b></p><p> ifkx = "f";</p><p> chaxun.close();</p><p><b>
89、} else {</b></p><p> System.out.println("您還沒有選課?。?quot;);</p><p> ifkx = "t";</p><p><b> re = "f";</b></p><p><b> }
90、</b></p><p> con.close();</p><p> } catch (Exception e) {</p><p> System.out.println("連接數(shù)據(jù)庫失??!" + e + "false");</p><p><b> re = &quo
91、t;f";</b></p><p><b> }</b></p><p> return re;</p><p><b> }</b></p><p> 其他幾個類的相關(guān)代碼與CX類的類似,只是相關(guān)的Select語句有所不同,下面只給出與類相關(guān)的Select語句。<
92、;/p><p> LogIn類相關(guān)的Select語句如下:</p><p> ResultSet yhb = login.executeQuery("select 學號,密碼 from 用戶表 ");</p><p> ShanChu類相關(guān)的Select語句如下:</p><p> PreparedStatement
93、sc = con.prepareStatement("delete from 選課表 where 學號= ? ");</p><p> XianShi類相關(guān)的Select語句如下:</p><p> ResultSet rs = xs</p><p> .executeQuery("select 課程表.課程號,課程名,學時,學分
94、,課程性質(zhì),考核方式,學期,教師姓名,所屬系部 from 課程表,教師信息表 where 課程表.課程號=教師信息表.課程號 ");</p><p> Xuanke類相關(guān)的Select語句如下:</p><p> PreparedStatement tianjia = con</p><p> .prepareStatement("inse
95、rt into 選課表 values(?,?)");</p><p> 5.3 客戶端與服務器端的通訊</p><p> Android集成了Apache HTTP客戶端,在服務器Servlet編程中使用HttpServletRequest和HttpServletResponse來表示請求和響應。Apache HTTP客戶端也已經(jīng)對請求和響應進行封裝,只需根據(jù)請求方法的不同,
96、用到HttpGet和HttpPost兩個對象。其中,響應對象是HttpResponse,使用DefaultHttpClient執(zhí)行請求獲得響應。</p><p> 實現(xiàn)該模塊的核心代碼如下:</p><p> public class HttpUtil {</p><p> //生命Base URL常量</p><p> public
97、 static final String BASE_URL="http://192.168.1.111:8080/xiaoge/";</p><p> //通過URL獲得HttpGet對象</p><p> public static HttpGet getHttpGet(String url){</p><p> HttpGet requ
98、est = new HttpGet(url);</p><p> return request;</p><p><b> }</b></p><p> public static String queryStringForGet(String url){</p><p> HttpGet request =
99、HttpUtil.getHttpGet(url);</p><p> String result = null;</p><p><b> try {</b></p><p> HttpResponse response = HttpUtil.getHttpResponse(request);</p><p>
100、if(response.getStatusLine().getStatusCode()==200){</p><p> result = EntityUtils.toString(response.getEntity());</p><p> byte[] b=result.getBytes("8859-1");</p><p> Stri
101、ng a=new String(b,"UTF-8");</p><p> return result;</p><p><b> }</b></p><p> } catch (ClientProtocolException e) {</p><p> e.printStackTrace();
102、</p><p> result = "網(wǎng)絡異常!";</p><p> return result;</p><p> } catch (IOException e) {</p><p> e.printStackTrace();</p><p> result = "網(wǎng)絡異常
103、!";</p><p> return result;</p><p><b> }</b></p><p> return null;</p><p><b> }</b></p><p> public static HttpResponse getH
104、ttpResponse(HttpGet request) throws ClientProtocolException, IOException{</p><p> HttpResponse response = new DefaultHttpClient().execute(request);</p><p> return response;</p><p>
105、;<b> }}</b></p><p><b> 第6章 測試</b></p><p> 本章內(nèi)容主要是針對于整個系統(tǒng)功能的檢測,分析系統(tǒng)的可行性以及弊端,以及運行的結(jié)果及發(fā)現(xiàn)的問題。</p><p> 6.1 測試的作用和意義</p><p> 系統(tǒng)測試是系統(tǒng)的開發(fā)周期中的一個十分重要
106、的環(huán)節(jié)。盡管在系統(tǒng)開發(fā)周期的各個階段均采取了嚴格的技術(shù)審查,但依然難免會留下錯誤,如果沒有在投入運行前的系統(tǒng)測試階段被發(fā)現(xiàn)并糾正,問題遲早會在運行中暴露出來,到那時要糾正錯誤將會付出更大的代價。系統(tǒng)測試占用的時間、花費的人力和成本占軟件開發(fā)的很大比例。統(tǒng)計表明,開發(fā)較大規(guī)模的系統(tǒng),系統(tǒng)測試的工作量大約占整個軟件開發(fā)工作量的40%-50%。而對于一些特別重要的大系統(tǒng),測試的工作量和成本更大,甚至超過系統(tǒng)開發(fā)其他各階段的總和的若干倍。<
107、;/p><p><b> 6.2 測試方法</b></p><p> 對軟件進行測試的主要方法有人工測試與機器測試。一般源程序通過編譯后,要先經(jīng)過人工測試,然后再進行機器測試。人工測試是采用人工方式進行,目的在于檢查程序的靜態(tài)結(jié)構(gòu),找出編譯不能發(fā)現(xiàn)的錯誤。機器測試是運用事先設計好的測試用例,執(zhí)行被測程序,對比運行結(jié)果與預期結(jié)果的差別以發(fā)現(xiàn)錯誤。</p>
108、<p> 另外人工測試又分為個人復查、走查與會審。</p><p> 機器測試又可分為黑盒測試與白盒測試,黑盒測試也稱功能測試,將軟件看作黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。根據(jù)軟件的需求規(guī)格說明書設計測試用例,從程序的輸入和輸出特性上測試是否滿足設定的功能。白盒測試也稱結(jié)構(gòu)測試,將軟件看作一個透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來選定測試用例,對軟件的邏輯路
109、徑及過程進行測試,檢查它與設計是否相符。</p><p> 對于這個基于Android的移動選課系統(tǒng)來說,我在每寫完一個功能模塊時就要對這個模塊進行測試,或者每寫好一段相對獨立的程序時也對它進行相應的功能測試或模塊測試。而當我完成整個系統(tǒng)時我采用上面所說的人工測試方法,把整個軟件的邏輯關(guān)系理一下,避免發(fā)生邏輯錯誤,然后是檢查軟件的功能是否實現(xiàn),與需求里面的功能要求作對比,檢查功能實現(xiàn)是否完善,合理等。</
110、p><p><b> 6.3 測試內(nèi)容</b></p><p><b> (1)登錄模塊測試</b></p><p> 表6-1 登錄模塊測試</p><p> ?。?)已選課程模塊測試</p><p> 表6-2 已選課程模塊測試</p><p>
111、;<b> ?。?)退選模塊測試</b></p><p> 表6-3 退選模塊測試</p><p> (4)可選課程信息模塊</p><p> 表6-4 可選課程信息模塊測試</p><p><b> ?。?)選課模塊測試</b></p><p> 表6-5 選課模塊
112、測試</p><p><b> 6.4 測試結(jié)果</b></p><p> (1) 服務器正常啟動后,用戶能夠成功的登錄到選課系統(tǒng),當用戶名、密碼出錯或為空時能夠給出相應的提示。當服務器沒有啟動時會給出“網(wǎng)絡異?!钡奶崾尽?lt;/p><p> (2) 用戶在選課時,系統(tǒng)會給用戶相應的提示。當用戶選擇了兩個以上的課程時,不能夠完全顯示用戶所選
113、擇的課程。</p><p> (3) 系統(tǒng)在顯示所有可以選擇的課程時,顯示良好,可以拖動屏幕顯示出所有的課程。</p><p> (4) 系統(tǒng)在刪除課程時,沒有給出相關(guān)的提示就直接刪除,會給用戶的誤操作帶來不便。</p><p> (5) 系統(tǒng)界面良好,在可操作性方面良好。</p><p><b> 6.5 測試結(jié)論<
114、/b></p><p> 系統(tǒng)經(jīng)過反復測試,發(fā)現(xiàn)存在上述測試結(jié)果中的一些問題,但是經(jīng)過后來反復的修改和測試,本系統(tǒng)最終完成,測試結(jié)果中的大部分問題都得到完美解決。但是,由于本人能力有限,此系統(tǒng)仍存在一些潛在的問題沒有解決。經(jīng)過后期對軟件的測試,懂得了測試的重要性,以及給本系統(tǒng)帶來的巨大改善,讓系統(tǒng)變的更強壯。</p><p><b> 結(jié) 論</b><
115、/p><p> 在老師、同學的知道幫助下,在繁忙的工作之余經(jīng)過兩個月的時間,畢業(yè)設計基本完成。本課題主要工作包括:</p><p> (1) 學習研究了無線通信技術(shù)、Android移動平臺、以及Java Servlet相關(guān)技術(shù),并對Android移動平臺和Java Servlet進行了歸納總結(jié)。</p><p> (2) 采用面向?qū)ο蟮姆治黾夹g(shù)來設計系統(tǒng),考慮到選
116、課系統(tǒng)的分布性和差異性,系統(tǒng)采用了分層的的架構(gòu)設計。這樣也使系統(tǒng)有了更好的可擴容性。</p><p> (3) 在充分的掌握了上述知識后,順利完成了系統(tǒng)后臺和客戶端的設計和實現(xiàn)。</p><p> 因時間倉促再加上本人知識水平有限,使得本系統(tǒng)還有很多不足的地方,比如:界面不夠人性化,只進行了粗略設計。沒有對客戶端的界面進行美化;沒有對權(quán)限做過多的設置,對數(shù)據(jù)的安全性也沒有做過多的要求;
117、一個學生一個學期只能選擇一門課(我校選課時一學期只選擇一門選修課),沒有考慮到多門同時選擇的情況。</p><p> 隨著無線通信設備的不斷完善,移動選課系統(tǒng)也將是高校未來信息化的重要主城部分。同時Android目前是相當成熟的一門技術(shù),因此開發(fā)基于Android的移動選課系統(tǒng),有著極大的創(chuàng)新型,也給廣大的學生實際使用提供了方便。</p><p><b> 謝 辭</b
118、></p><p> 經(jīng)過幾個月的忙碌和工作,本次畢業(yè)設計已經(jīng)接近尾聲,多虧導師的督促指導,以及一起工作的同學們的支持,這個畢業(yè)設計才得以順利完成。</p><p> 本課題在選題及研究過程中得到盧老師的悉心指導。盧老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。盧老師一絲不茍的作風,嚴謹求實的態(tài)度,踏踏實實的精神,一直是我學習中的榜樣。更可貴的是盧
119、老師不僅授我于魚,而且授我于漁。對盧老師的感激之情是無法用言語表達的。</p><p> 同時,論文的順利完成,離不開其它各位老師、同學和朋友的關(guān)心和幫助。在整個程序設計和論文寫作過程中,各位老師、同學和朋友積極的幫助我查資料和提供有利于程序論文的建議和意見,在他們的幫助下,程序設計和論文得以不斷的完善,最終幫助我完整的做完了整個程序設計和畢業(yè)論文。</p><p> 在論文的寫作過程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android的移動選課系統(tǒng)的設計
- 基于jsp的學生選課系統(tǒng)畢業(yè)設計
- 畢業(yè)設計基于web的選課系統(tǒng)設計與實現(xiàn)
- 基于jsp的學生選課排課系統(tǒng)畢業(yè)設計
- 基于java的學生選課系統(tǒng)設計與實現(xiàn)畢業(yè)設計
- 基于ajax的學生選課系統(tǒng)的設計與實現(xiàn)畢業(yè)設計
- 畢業(yè)設計---基于android的日程管理系統(tǒng)
- 畢業(yè)設計---基于bs模式選課系統(tǒng)的設計與實現(xiàn)
- 基于android的日歷系統(tǒng)的設計與實現(xiàn)-畢業(yè)設計
- 學生選課系統(tǒng)畢業(yè)設計
- 畢業(yè)設計---在線選課系統(tǒng)的設計與實現(xiàn)
- 畢業(yè)設計(論文)-基于android的高考寶典系統(tǒng)
- 畢業(yè)設計----網(wǎng)上選課系統(tǒng)設計
- 畢業(yè)設計----學生選課管理系統(tǒng)設計
- 畢業(yè)設計--學生選課系統(tǒng)的設計和開發(fā)
- 畢業(yè)設計(論文)-學生選課系統(tǒng)設計
- 基于Android的移動學習系統(tǒng)設計.pdf
- 基于android的esl管理系統(tǒng)的設計與開發(fā)【畢業(yè)設計】
- 教務畢業(yè)設計選題與選課系統(tǒng)畢業(yè)設計
- android畢業(yè)設計--基于android的音樂播放的設計與實現(xiàn)
評論
0/150
提交評論