基于Android的移動(dòng)選課系統(tǒng)是設(shè)計(jì)_第1頁
基于Android的移動(dòng)選課系統(tǒng)是設(shè)計(jì)_第2頁
基于Android的移動(dòng)選課系統(tǒng)是設(shè)計(jì)_第3頁
基于Android的移動(dòng)選課系統(tǒng)是設(shè)計(jì)_第4頁
基于Android的移動(dòng)選課系統(tǒng)是設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

摘要洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文)PAGEIVPAGE1基于Android的移動(dòng)選課系統(tǒng)的設(shè)計(jì)摘要隨著互聯(lián)網(wǎng)的不斷發(fā)展以及高等教育與教學(xué)的改革,高校的選課方式已經(jīng)從傳統(tǒng)的紙質(zhì)方式轉(zhuǎn)向了網(wǎng)上選課方式。近年來,隨著智能手機(jī)等移動(dòng)設(shè)備的不斷普及,移動(dòng)選課將是繼互聯(lián)網(wǎng)選課之后的又一種選課模式。網(wǎng)上選課系統(tǒng)的軟件較多,但具體的移動(dòng)選課軟件相對較少。針對這個(gè)情況,本文討論在廣泛應(yīng)用的Android平臺上設(shè)計(jì)與開發(fā)移動(dòng)選課系統(tǒng)。本設(shè)計(jì)作為現(xiàn)有基于Web的網(wǎng)上選課系統(tǒng)的輔助手段和重要補(bǔ)充,旨在為廣大學(xué)生提供隨時(shí)隨地方便快捷的選課方式。通過初步對Android軟件開發(fā)技術(shù)和JavaServlet編程技術(shù)的學(xué)習(xí)以及對現(xiàn)有選課系統(tǒng)的分析和研究,結(jié)合移動(dòng)互聯(lián)網(wǎng)的特點(diǎn),總結(jié)出移動(dòng)選課系統(tǒng)所應(yīng)具備的主要功能。運(yùn)用信息系統(tǒng)開發(fā)方法等技術(shù)手段對該系統(tǒng)進(jìn)行了整體的規(guī)劃、設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)具有用戶登錄、選課、退選、查看選課信息等基本的功能。該系統(tǒng)分為系統(tǒng)登錄、選課信息、選課、退選、已選課查詢等模塊。在移動(dòng)選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程中,采用了C/S架構(gòu)、Http通信協(xié)議;服務(wù)器通過JDBC與數(shù)據(jù)庫進(jìn)行交互,手機(jī)通過流的形式接收從Web服務(wù)器傳來的數(shù)據(jù)。關(guān)鍵詞:移動(dòng)選課,Android,JavaServlet,C/S架構(gòu)

DesignOfMobileElectiveCourseSystemBasedOnAndroidABSTRACTWiththedevelopmentoftheinternetandthecollegeeducation’srevolution,universities’courseelectingformhaschangedtointernetcourseelectingformfromtraditionalonewhichusespapermaterials.Nowadays,PDAphoneandothermobileinstrumentshaveexploredaverybroadwayinthissociety.Mobilelectivecoursesystemisoneanothersystemwhichusestheinternettochoosecourse.Thereareafewofsoftwaresappearingontheinternetaboutcourseelecting.However,therearelittlesoftwareshavethefunctionsaboutMobilelectivecoursesystem.Underthissituation,thissystemwrotethisessaymainlytalkingabouthowtobroadlyusetheAndroidsystemtodesignandexploreMobilelectivecoursesystem.Thisessayasthesupplementarywaysbasedonsomeexistinginternetcourseelectingsystemsismainlytoprovideconvenientandefficientwaysforstudents’courseelectingneeds.AfterthebasicstudyabouttheAndroidsystemexplorationandtheJavaServletprogrammingtechnology,thissystemcombinedtheMobilinternet’scharacterstogetasummarywhichisaboutMobilelectivecoursesystemmainfunctions.Throughsomesystemexploitationthissystemmadeaprojectaboutit.Thissystemhassomepartssuchas:systemregister,courseelectiveinformation,courseelecting,coursecanceling,checkingaboutthechosencourses,etc.Duringthisdesigningprocess,thissystemusedC/SandHttp.TheserverusesJDBCdateresourcetocommunicate.ThephoneuseflowasthewaytoreceivedatefromWebserver.KEYWORDS:MobileElectiveCourse,Android,JavaServlet,C/S前言前言近年來,隨著我國高等教育與教學(xué)的改革,數(shù)字信息化的教學(xué)管理系統(tǒng)在高校日趨廣泛,伴隨著學(xué)年制管理體制向?qū)W分制管理體制的發(fā)展,使得網(wǎng)上選課系統(tǒng)在高校中得到廣泛的應(yīng)用。傳統(tǒng)的選課系統(tǒng)是以固定的形式訪問互聯(lián)網(wǎng)。這樣,雖然能夠滿足大部分學(xué)生的選課需要。但是在選課高峰時(shí)期,學(xué)校的Web服務(wù)器因訪問量過大而暫時(shí)癱瘓,學(xué)校機(jī)房的電腦數(shù)量有限難滿足學(xué)生們的選課需求。有時(shí)為了選擇到自己喜歡的課程,往往要提前半小時(shí)到一個(gè)小時(shí)在計(jì)算機(jī)上登錄選課系統(tǒng),守候在計(jì)算機(jī)旁邊,而不能做到隨時(shí)隨地的選課。同時(shí),隨著科技的發(fā)展,搭載Android操作系統(tǒng)的智能手機(jī)依靠其龐大的應(yīng)用程序和越來越低廉的價(jià)格吸引了廣大的用戶。在如此龐大的用戶基數(shù)影響下,移動(dòng)互聯(lián)網(wǎng)技術(shù)得到了飛速的發(fā)展,我國的網(wǎng)民也正在從傳統(tǒng)的互聯(lián)網(wǎng)向移動(dòng)互聯(lián)網(wǎng)轉(zhuǎn)移。在大學(xué)生中,智能手機(jī)用戶也占有相當(dāng)大的比例。因此,學(xué)生需要另一種的選課系統(tǒng)來解決當(dāng)前選課系統(tǒng)存在的問題,來分流由于傳統(tǒng)網(wǎng)絡(luò)訪問給服務(wù)器帶來的壓力。基于Android的移動(dòng)選課系統(tǒng)應(yīng)運(yùn)而生。如今,高校的網(wǎng)上選課系統(tǒng)都是比較成熟完善的。移動(dòng)選課系統(tǒng)只是現(xiàn)有網(wǎng)上選課系統(tǒng)的補(bǔ)充?;谏鲜隹紤],客戶端與服務(wù)器之間的通信采用Http通信協(xié)議。用C/S模式來建立移動(dòng)選課系統(tǒng)比較合適。服務(wù)器端采用SQL數(shù)據(jù)庫服務(wù)器,TomcatWeb服務(wù)器以及JavaServlet的Web服務(wù)器編程技術(shù)構(gòu)建移動(dòng)選課的應(yīng)用服務(wù)系統(tǒng);客戶端采用Android平臺的客戶端軟件用來登錄服務(wù)器。開發(fā)基于Android的移動(dòng)選課系統(tǒng)的意義在于:對當(dāng)今流行的Android軟件有深入的了解,發(fā)現(xiàn)在開發(fā)過程中所面臨的問題,簡化選課程序,方便同學(xué)們的選課。同時(shí),為今后開發(fā)出適合我校情況的移動(dòng)選課系統(tǒng)打下基礎(chǔ)。REF_Ref168484390\r\h錯(cuò)誤!未找到引用源。REF_Ref168484424\h錯(cuò)誤!未找到引用源。第1章緒論1.1選課系統(tǒng)的現(xiàn)狀現(xiàn)在大多數(shù)的高校的選課系統(tǒng)都是采用的瀏覽器/服務(wù)器(B/S)模式,這種模式相對最初的人工課程管理方便了許多,不在需要大量的人力,學(xué)生選課也不在排隊(duì)擁擠,更不會因?yàn)檫x課而耽誤正常的教學(xué)任務(wù)。B/S模式的選課系統(tǒng)只需要一臺能訪問網(wǎng)絡(luò)的瀏覽器即可。只要選課服務(wù)器端提供選課、學(xué)籍管理、考試成績、畢業(yè)設(shè)計(jì)等業(yè)務(wù)模塊,在客戶端的瀏覽器視窗中就能進(jìn)行相應(yīng)模塊的功能管理。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展這種B/S模式的選課系統(tǒng)也存在很多不足,比如要進(jìn)行選課操作時(shí),就必須坐在接入網(wǎng)絡(luò)的電腦前:而且課程開設(shè)的通知等等也是要通過上網(wǎng)才知道,對于一些不常上網(wǎng)的同學(xué)可能就會錯(cuò)過很多有用的消息,比如說課程調(diào)整通知、考試安排等等。而這些缺陷都可以通過移動(dòng)終端來解決。1.2Android系統(tǒng)特點(diǎn)近幾年,3G的全球覆蓋使世界快速步入移動(dòng)互聯(lián)網(wǎng)時(shí)代,網(wǎng)絡(luò)的應(yīng)用范圍變得更加廣泛,移動(dòng)智能終端在市場上迅速滲透,成為移動(dòng)互聯(lián)網(wǎng)發(fā)展的強(qiáng)大動(dòng)力。根據(jù)市場調(diào)研機(jī)構(gòu)Gartner發(fā)布的最新統(tǒng)計(jì)報(bào)告顯示,2011年一季度全球手機(jī)銷售量共4.278億部,其中智能手機(jī)銷量超過1億部,現(xiàn)在高校師生的智能移動(dòng)通訊設(shè)備擁有率已經(jīng)和PC擁有率相近。而智能手機(jī)操作系統(tǒng)中,Android系統(tǒng)的市場份額又遠(yuǎn)遠(yuǎn)大于其他的手機(jī)操作系統(tǒng)。Android是Google于2007年11月5日發(fā)布的基于Linux內(nèi)核的移動(dòng)平臺,該平臺由操作系統(tǒng)、中間件、用戶界面、應(yīng)用軟件組成;從軟件分層的角度來說,Android平臺由應(yīng)用程序、應(yīng)用程序框架、Android運(yùn)行時(shí)庫層以及Linux內(nèi)核共4部分構(gòu)成,是一個(gè)真正開放的移動(dòng)平臺。1.3基于Android的移動(dòng)選課系統(tǒng)概述1.3.1基于Android的移動(dòng)選課系統(tǒng)描述基于Android的移動(dòng)選課系統(tǒng)是學(xué)校網(wǎng)上選課系統(tǒng)的補(bǔ)充,該系統(tǒng)的客戶端運(yùn)行于當(dāng)下最流行的智能手機(jī)操作系統(tǒng)——Android智能手機(jī)操作系統(tǒng)之上。通過GPRS(通用無線分組業(yè)務(wù))或WLAN(無線局域網(wǎng))等無線數(shù)據(jù)傳輸平臺,在我校集中的選課時(shí)間為我校的在校學(xué)生建立使用移動(dòng)終端隨時(shí)隨地訪問我校的選課系統(tǒng)的平臺,了解選課信息,查詢選課結(jié)果,及時(shí)、快速、準(zhǔn)確的選擇喜歡的課程。1.3.2基于Android的移動(dòng)選課系統(tǒng)意義基于Android的移動(dòng)選課系統(tǒng)的用戶無論是在公交車,在商場,還是在沒用電腦的宿舍。只要通過搭載有該客戶端的Android手機(jī)就能隨時(shí)隨地的登陸系統(tǒng)進(jìn)行選課。從而使用戶遠(yuǎn)離的電腦的束縛,在學(xué)校集中選課的時(shí)間可以不用去機(jī)房排隊(duì)等候選課,大大地提高了學(xué)生選課的效率。REF_Ref168484390\r\h錯(cuò)誤!未找到引用源。REF_Ref168484424\h錯(cuò)誤!未找到引用源。PAGE6PAGE8第2章環(huán)境配置2.1軟件環(huán)境2.1.1Android開發(fā)環(huán)境的搭建1.安裝JDKSun公司為所有的java程序員提供了一套免費(fèi)的java開發(fā)和運(yùn)行環(huán)境??梢酝ㄟ^訪問Http:///j2se,根據(jù)提示下載支持Windows操作系統(tǒng)的JDK到本地硬盤。安裝的時(shí)候可以選擇安裝到任意的硬盤驅(qū)動(dòng)器上。正確安裝之后,在JDK目錄下有bin、demo、lib、jre等子目錄。然后是設(shè)置JDK的環(huán)境變量,其設(shè)置方法如下:在Windows操作系統(tǒng)下,用鼠標(biāo)右鍵單擊【我的電腦】,彈出菜單選擇【屬性】,彈出【系統(tǒng)特性】對話框,再單擊該對話框中的【高級選項(xiàng)】,然后單擊【環(huán)境變量】按鈕,添加如下的系統(tǒng)環(huán)境變量。變量名:PATH變量值:D:\java\bin;%PATH%(其內(nèi)容根據(jù)JDK安裝的目錄變化)設(shè)置完成點(diǎn)擊【確定】即可。2.Eclipse的安裝訪問/downloads/,下載EclipseIDEforJavaDevelopers(92M)的win32bit版,解壓后即可使用。3.AndroidSDK安裝在AndroidDevelopers下載android-sdk_r05-windows.zip,下載完成后解壓到任意路徑。運(yùn)行SDKSetup.exe,點(diǎn)擊AvailablePackages。如果沒有出現(xiàn)可安裝的包,請點(diǎn)擊Settings,選中Misc中的"Forcehttps://..."這項(xiàng),再點(diǎn)擊AvailablePackages。選擇希望安裝的SDK及其文檔或者其它包,點(diǎn)擊InstallationSelected、AcceptAll、InstallAccepted,開始下載安裝所選包下載完成后,添加如下環(huán)境變量:變量名:PATH變量值:D:\Android_SDK\android-sdk\tools(其內(nèi)容根據(jù)JDK安裝的目錄變化)然后單擊確定即可。4.ADT的安裝打開Eclipse,進(jìn)入菜單中的"Help"->"InstallNewSoftware"在Workwith中輸入網(wǎng)址/android/eclipse/,如圖2-1所示。圖2-1ADT的安裝然后選中DevrloperTools單擊“下一步”完成即可。完成之后選擇Window>Preferences...,在左邊的面板選擇Android,然后在右側(cè)點(diǎn)擊Browse...并選中SDK路徑,點(diǎn)擊Apply、OK,配置完成。5.創(chuàng)建AVD為使Android應(yīng)用程序可以在模擬器上運(yùn)行,必須創(chuàng)建AVD。(1)在Eclipse中。選擇Windows>AVDManager(2)點(diǎn)擊左側(cè)面板的VirtualDevices,再右側(cè)點(diǎn)擊New(3)填入Name,選擇Target的API,SDCard:512MB(保證模擬器運(yùn)行流暢),Skin隨便選,Hardware目前保持默認(rèn)值。2.1.2SQLServer數(shù)據(jù)庫配置在連接數(shù)據(jù)庫之前必須保證SQLServer2005是采用SQLServer身份驗(yàn)證方式而不是windows身份驗(yàn)證方式。如果在安裝時(shí)選用了后者,則重新設(shè)置如下:1.打開SQLServer2005,右擊最上面的服務(wù)器,選擇屬性——>安全性,在右邊框中選擇SQLServer和Windows身份驗(yàn)證模式,如圖2-2所示,最后點(diǎn)確定。圖2-2服務(wù)器屬性選擇“安全性”中的登錄名中的sa,右擊選擇“屬性”,選擇常規(guī),在右邊輸入登錄名sa,輸入密碼與確認(rèn)密碼123456(登錄名和密碼可以根據(jù)需要自行設(shè)置),再在左邊選擇狀態(tài),在登錄中設(shè)“啟用”。2.安裝好SQLServer2005后,運(yùn)行開始→所有程序→MicrosoftSQLServer2005→配置工具→SQLServerConfigurationManager,在打開的窗口的左邊找到MSSQLSERVER的協(xié)議,在右邊右單擊TCP/IP,選擇已啟用。如果NamedPipes未啟用也設(shè)為啟用。雙擊右邊的TCP/IP,在彈出的窗口中選擇IP地址標(biāo)簽,把IpAll中的TCP端口設(shè)成1433,并將上方所有的“已啟用”選項(xiàng)設(shè)置成“是”。如圖2-3所示。圖2-3TCP/IP屬性3.運(yùn)行開始→所有程序→MicrosoftSQLServer2005→配置工具→SQLServer外圍應(yīng)用配置器,在打開的窗口中選擇服務(wù)和連接的外圍應(yīng)用配置器,在打開的窗口左邊選擇遠(yuǎn)程連接,在右邊選擇同時(shí)使用TCP/IP和namedpipes(B),然后點(diǎn)擊“應(yīng)用”。如圖2-4所示。圖2-4服務(wù)和連接的外圍應(yīng)用配置器2.2硬件環(huán)境開發(fā)Android應(yīng)用程序要同時(shí)運(yùn)行Java虛擬機(jī)、Android虛擬機(jī)以及Android模擬器,對計(jì)算機(jī)硬件的要求比較高。其硬件的最低配置如下:CPU:主頻要在2.0GHZ以上。內(nèi)存:要在2G以上。屏幕最佳分辨率:1024×768像素。對硬盤的大小不做要求只要有足夠的空間能夠保證程序正常運(yùn)行就可以。第3章REF_Ref168484495\h錯(cuò)誤!未找到引用源。洛陽理工學(xué)院畢業(yè)設(shè)計(jì)(論文)PAGE10第3章系統(tǒng)分析3.1系統(tǒng)設(shè)計(jì)的原則和目的移動(dòng)選課系統(tǒng)基于我校現(xiàn)有的網(wǎng)上選課系統(tǒng)的數(shù)據(jù)庫,設(shè)計(jì)目的就是作為現(xiàn)有的基于Web的網(wǎng)上選課系統(tǒng)的輔助手段和重要的補(bǔ)充,為廣大的學(xué)生提供隨時(shí)隨地方便快捷的選課、退課和課程查詢等功能。以原有的選課系統(tǒng)為基礎(chǔ),在不影響原有系統(tǒng)正常運(yùn)行和使用的情況下增加通過手機(jī)選課的功能以擴(kuò)充原有的選課系統(tǒng),使選課的方式更加的靈活方便,且選課不受地域場所的限制,在學(xué)校集中選課的時(shí)間使用手機(jī)隨時(shí)隨地就可以選課。同時(shí)也分流了B/S模式下服務(wù)器超負(fù)荷的壓力。根據(jù)我校選課的實(shí)際情況采用C/S模式開發(fā)適合手持設(shè)備使用的客戶端軟件以及在WEB服務(wù)器上部署的服務(wù)器軟件。該系統(tǒng)充分按照簡單使用性原則設(shè)計(jì),客戶端軟件簡單易用,同時(shí)充分考慮到無線網(wǎng)絡(luò)和手持設(shè)備的特殊性,最大化的利用網(wǎng)絡(luò)資源。在設(shè)計(jì)功能的同時(shí),考慮到系統(tǒng)的可伸縮性;在設(shè)計(jì)和代碼的實(shí)現(xiàn)上,給程序預(yù)留了可擴(kuò)展的接口,以便需要時(shí)可以快速的增加上相應(yīng)的功能。3.2需求分析3.2.1系統(tǒng)模塊移動(dòng)選課系統(tǒng)總共包含五個(gè)功能模塊:系統(tǒng)登錄、選課信息、選課、退選和已選課程查詢系統(tǒng)登錄:通過輸入用戶名和密碼驗(yàn)證合法的學(xué)生身份,避免了惡意登錄系統(tǒng)的情況。同時(shí)根據(jù)用戶名提取滿足其要求的信息選課信息:顯示登錄的學(xué)生可以選擇的所有課程的信息和教師信息以供學(xué)生選擇。選課:學(xué)生輸入相應(yīng)的課程號選擇課程。退選:當(dāng)用戶點(diǎn)擊了退選按鈕后,退選已經(jīng)選擇的課程。已選課程查詢:列出該學(xué)生已選的課程信息,以供參考。3.2.2客戶端與服務(wù)器的連接方式手機(jī)客戶端使用Http方式同Web服務(wù)器通信,服務(wù)器端通過JDBC與數(shù)據(jù)庫交互。手機(jī)通過Http以流的形式接收從Web服務(wù)器傳來的數(shù)據(jù)流。手機(jī)終端與Web服務(wù)器之間通信的數(shù)據(jù)格式采用一個(gè)特殊的標(biāo)記,從而使客戶端和服務(wù)器完成特定的功能。3.2.3系統(tǒng)結(jié)構(gòu)客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),將任務(wù)合理分配到客戶端和服務(wù)器端。其中,服務(wù)器端主要提供數(shù)據(jù)管理、數(shù)據(jù)共享、數(shù)據(jù)及系統(tǒng)維護(hù)和并發(fā)控制等,客戶端程序主要完成用戶的具體的業(yè)務(wù),省去了中間的其他環(huán)節(jié)。從而,提高了系統(tǒng)的響應(yīng)速度,降低了系統(tǒng)的通訊開銷,但是需要安裝客戶端才可進(jìn)行相應(yīng)的管理操作。同時(shí),在C/S架構(gòu)中客戶端與服務(wù)器之間相互分離,可以對客戶端進(jìn)行單獨(dú)的設(shè)計(jì)。使客戶端的操作界面漂亮、形式多樣,可以充分滿足客戶自身的個(gè)性要求。且此結(jié)構(gòu)還具有較強(qiáng)的事務(wù)處理能力,能實(shí)現(xiàn)負(fù)載的業(yè)務(wù)流程等優(yōu)點(diǎn)。因此,鑒于C/S架構(gòu)的優(yōu)點(diǎn)、手機(jī)操作系統(tǒng)、網(wǎng)絡(luò)速度以及當(dāng)前大多數(shù)Android手機(jī)應(yīng)用都采用C/S架構(gòu)的考慮?;贏ndroid的移動(dòng)選課系統(tǒng)采用客戶端/服務(wù)器(C/S)結(jié)構(gòu)。REF_Ref168484640\r\h錯(cuò)誤!未找到引用源。REF_Ref168484646\h錯(cuò)誤!未找到引用源。PAGE8PAGE16第4章系統(tǒng)設(shè)計(jì)4.1該系統(tǒng)的整體結(jié)構(gòu)系統(tǒng)的整體結(jié)構(gòu):Android客戶端手機(jī)通過無線網(wǎng)絡(luò)訪問后臺服務(wù)器,如果需要數(shù)據(jù)訪問,則訪問后臺數(shù)據(jù)庫。如圖4-1所示。手機(jī)客戶端手機(jī)客戶端Web服務(wù)器數(shù)據(jù)庫服務(wù)器圖4-1系統(tǒng)結(jié)構(gòu)4.2數(shù)據(jù)庫設(shè)計(jì)4.2.1數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)(1)用戶表,包含的字段有:登錄名、密碼。(2)學(xué)生表,包含的字段有:學(xué)號、姓名、性別、出生日期、政治面貌、入學(xué)日期、聯(lián)系電話、班級。(3)選課表,包含的字段有:學(xué)號、課程號。(4)課程表,包含的字段有:課程號、課程名、學(xué)時(shí)、學(xué)分、課程性質(zhì)、考核方式、上課學(xué)期。(5)教師信息表,包含的字段有:姓名、課程號、所屬系部、聯(lián)系方式、上課地點(diǎn)。其E-R模型如圖4-2所示。學(xué)生學(xué)生選課mnmn課程開設(shè)教師圖4-2系統(tǒng)E-R圖4.2.2數(shù)據(jù)庫各表的設(shè)計(jì)根據(jù)上述設(shè)計(jì)的數(shù)據(jù)庫的結(jié)構(gòu),設(shè)計(jì)了名稱為“移動(dòng)選課系統(tǒng)”的數(shù)據(jù)庫?!耙苿?dòng)選課系統(tǒng)”數(shù)據(jù)庫有下面多個(gè)表組成,各表的命名及字段命名都是以漢字的形式來命名,各表的設(shè)計(jì)結(jié)果如下:表4-1用戶表列名數(shù)據(jù)類型是否為空約束學(xué)號Char(9)Notnull主鍵密碼Char(6)Notnull表4-2學(xué)生表列名數(shù)據(jù)類型是否為空約束學(xué)號Char(9)Notnull主鍵姓名Nchar(5)Notnull性別Nchar(1)Null值為‘男’或‘女’出生日期DatetimeNull政治面貌Varchar(50)Null默認(rèn)為‘共青團(tuán)員’入學(xué)日期DatetimeNull聯(lián)系電話Char(15)Null班級Char(7)Null表4-3選課表列名數(shù)據(jù)類型是否為空約束學(xué)號Nchar(9)Notnull主鍵、外鍵課程號Nchar(6)Notnull主鍵、外鍵表4-4課程表列名數(shù)據(jù)類型允許空約束課程號Nchar(5)Notnull主鍵課程名Varchar(20)Notnull唯一學(xué)時(shí)TinyintNull學(xué)分TinyintNull課程性質(zhì)Nchar(2)Null默認(rèn)為‘選修’考核方式Nchar(2)Null默認(rèn)為‘考查’學(xué)期Char(1)Null表4-5教師信息表列名數(shù)據(jù)類型允許空約束工號Char(7)Notnull教師姓名Nchar(5)Notnull課程號Char(6)Notnull外鍵所屬系部Varchar(20)Null上課地點(diǎn)Varchar(10)Notnull聯(lián)系方式Char(11)Null4.3服務(wù)器設(shè)計(jì)該移動(dòng)選課系統(tǒng)的手機(jī)客戶端采用了Http方式同Web服務(wù)器通信。基于這個(gè)要求,在服務(wù)器端編寫了JavaServlet程序放置在名稱為“servlet”包中用以實(shí)現(xiàn)手機(jī)客戶端采用Http的方式同服務(wù)器進(jìn)行通信。同時(shí)還編寫了一個(gè)通過JDBC與數(shù)據(jù)庫交互的程序放在名稱為“shujuku”的包中以實(shí)現(xiàn)Servlet程序與數(shù)據(jù)庫之間的數(shù)據(jù)交換。4.3.1JavaServlet程序Servlet是一種采用Java來實(shí)現(xiàn)CGI功能的技術(shù)。Servlet本身與協(xié)議無關(guān),與平臺與無關(guān)。對應(yīng)的軟件包有兩個(gè)javax.servlet.http和javax.servlet.jsp,通常所說的Servlet編程主要就是指針對HTTP的Servlet編程。Servlet運(yùn)行于Servlet引擎管理的Java虛擬機(jī)中,被來自客戶端的請求所喚醒,在虛擬機(jī)中只要裝載一個(gè)Servlet及能夠處理新的請求。Tomcat服務(wù)器是運(yùn)行Servlet程序的載體,在運(yùn)行Servlet程序之前要在機(jī)器上安裝好tomcat服務(wù)器。這是Servlet運(yùn)行時(shí)所需要的環(huán)境。移動(dòng)選課系統(tǒng)的Servlet程序包含LoginServlet、CX、SC、XS和XK五個(gè)類,這五個(gè)類同時(shí)繼承HttpServlet類。這五個(gè)類的功能描述如下:LoginServlet類:接收和返回用戶的登陸信息。CX類:接收用戶對已選課程查詢的請求,給用戶返回相應(yīng)的數(shù)據(jù)信息。SC類:接收用戶對刪除已選課程的請求,給用戶返回是否刪除成功的相應(yīng)信息。XS類:接收用戶對顯示所有可選課程的請求,并給用戶返回相應(yīng)的信息。XK類:接收用戶的選課請求,給用戶返回是否選課成功的相關(guān)信息。4.3.2與數(shù)據(jù)庫交互的程序與數(shù)據(jù)庫的交互程序是服務(wù)器的核心程序,共包含lianjie、LogIn、ChaXun、XianShi、XuanKe和shanchu六個(gè)方法。功能描述如下:Lianjie方法:通過JDBC與數(shù)據(jù)庫進(jìn)行連接連接。LogIn方法:通過與數(shù)據(jù)庫的交互驗(yàn)證登陸者的身份是否合法。ChaXun方法:通過與數(shù)據(jù)可的交互查詢出登陸的用戶已經(jīng)選擇的課程。XianShi方法:通過與數(shù)據(jù)庫的交互給登陸的用戶提供可以選擇的所有課程信息。XuanKe方法:通過與數(shù)據(jù)庫的交互為登陸的用戶保存他的選課信息。Shanchu方法:通過與數(shù)據(jù)庫的交互刪除登陸的用戶已經(jīng)選擇的課程信息。4.4Android客戶端設(shè)計(jì)4.4.1Android客戶端的頁面設(shè)計(jì)Android客戶端主要包括四個(gè)頁面,登錄頁面、主頁面、已選課程頁面以及可選課程頁面。每個(gè)頁面的主要功能描述如下:登錄頁面:供用戶登錄系統(tǒng)只用。同時(shí),檢測用戶輸入的用戶名和密碼是否為空,是否合法。主頁面:該頁面上列出了若干項(xiàng)菜單。以供用戶選擇自己要完成的事項(xiàng)。已選課程頁面:該頁面上顯示用戶已經(jīng)選擇在的課程??蛇x課程頁面:該頁面羅列出所有可以選擇的課程,以供用戶選擇自己喜歡的課程。其中,“課程退選”功能在已選課程頁面添加一個(gè)“退選”按鈕實(shí)現(xiàn)?!斑x課”功能在可選課程頁面中添加一個(gè)“選課”按鈕實(shí)現(xiàn)。4.4.2Android客戶端各頁面之間的關(guān)系A(chǔ)ndroid客戶端個(gè)頁面之間的關(guān)系即客戶端的結(jié)構(gòu)如下圖4-3所示:系統(tǒng)登錄用戶主菜單系統(tǒng)登錄用戶主菜單已選課程可選課程圖4-3客戶端結(jié)構(gòu)REF_Ref168484640\r\h錯(cuò)誤!未找到引用源。REF_Ref168484646\h錯(cuò)誤!未找到引用源。PAGE31第5章系統(tǒng)的實(shí)現(xiàn)5.1客戶端的實(shí)現(xiàn)5.1.1系統(tǒng)主界面的實(shí)現(xiàn)系統(tǒng)主界面很簡介,只包含一個(gè)菜單選項(xiàng),通過這個(gè)菜單導(dǎo)航到各個(gè)功能模塊,主界面如圖5-1所示:圖5-1系統(tǒng)主界面主界面對應(yīng)的類是MainActivity,繼承了ListActivity類實(shí)現(xiàn)一個(gè)ListView,對應(yīng)的就是界面上的菜單。在MainActivity中的onCreate方法中初始化數(shù)據(jù)。5.1.2系統(tǒng)登錄模塊的實(shí)現(xiàn)系統(tǒng)登錄模塊的流程圖如圖5-2所示:登錄頁面登錄頁面點(diǎn)擊登錄,以URL形式訪問服務(wù)器成功?提示信息失敗成功服務(wù)器解析URL,調(diào)用系統(tǒng)登錄服務(wù),返回登錄結(jié)果解析返回的結(jié)果成功?主界面圖5-2登錄模塊流程圖當(dāng)用戶點(diǎn)擊登錄,若登錄成功則進(jìn)入如圖5-1所示的系統(tǒng)主界面。若用戶名或密碼為空則在頁面上彈出相應(yīng)的提示,如圖5-3所示;若密碼錯(cuò)誤同樣出現(xiàn)相應(yīng)的提示。如圖5-4所示。圖5-3密碼為空圖5-4密碼密碼不正確其中判斷用戶名和密碼是否為空的代碼如下:privatebooleanvalidate(){ Stringusername=userEditText.getText().toString(); if(username.equals("")){ showDialog("用戶名稱是必填項(xiàng)!"); returnfalse; } Stringpwd=pwdEditText.getText().toString(); if(pwd.equals("")){ showDialog("用戶密碼是必填項(xiàng)!"); returnfalse; } returntrue; }判斷密碼是否錯(cuò)誤的代碼如下:try{ Connectioncon=DriverManager.getConnection(dbURL,userName, userPwd); Statementlogin=con.createStatement(); ResultSetyhb=login.executeQuery("select學(xué)號,密碼from用戶表"); while(yhb.next()){ if(username.equals(yhb.getString("學(xué)號")) &&userpwdmima.equals(yhb.getString("密碼"))){ ifdenglu=true; ifdenglu1="t"; break; } }else{ System.out.println("用戶名或密碼錯(cuò)誤,請重試??!"); ifdenglu1="f"; }5.1.3已選課程查詢模塊的實(shí)現(xiàn)已選課程查詢模塊的流程圖如圖5-5所示:系統(tǒng)系統(tǒng)主界面點(diǎn)擊菜單,以URL形式訪問服務(wù)器成功?提示信息失敗成功服務(wù)器解析URL,調(diào)用已選課程查詢服務(wù),返回登錄結(jié)果解析返回的結(jié)果是否選課?已選課程圖5-5已選課程流程圖當(dāng)用戶點(diǎn)擊如5-1的選課信息查詢菜單后,用戶進(jìn)入已選課程頁面如圖5-6所示。圖5-6已選課程當(dāng)該用戶沒有選課是頁面會出現(xiàn)您還沒有選課的提示,如圖5-7所示:圖5-7未選課提示5.1.4退選模塊的實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊圖5-6的退選按鈕時(shí)頁面會給用戶以響應(yīng)的提示,提示用戶是否退選成功。如圖5-8所示:圖5-8退選說明:退選模塊的流程去前兩個(gè)模塊的相似,故在這里就不給出詳細(xì)的流程圖和核心代碼,流程圖可參考圖5-2。5.1.5可選課程信息模塊的實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊圖5-1的可選課程查詢菜單后,用戶進(jìn)入可選課程頁面,如圖5-9所示,在這里用戶可以瀏覽所有可以選擇的課程信息。圖5-9可選課程說明:退選模塊的流程去前兩個(gè)模塊的相似,故在這里就不給出詳細(xì)的流程圖和核心代碼。流程圖可參考圖5-2。5.1.6選課模塊的實(shí)現(xiàn)在如圖5-9所示的用戶頁面中,輸入要選擇的課程號,點(diǎn)擊選課按鈕之后。頁面上會給出選課是否成功的相應(yīng)提示,以便用戶有相應(yīng)的了解。如圖5-10和圖5-11所示。圖5-10提示選課成功圖5-11提示已經(jīng)選課說明:退選模塊的流程去前兩個(gè)模塊的相似,故在這里就不給出詳細(xì)的流程圖和核心代碼。流程圖可參考圖5-2。5.2服務(wù)器端的實(shí)現(xiàn)在服務(wù)器的Servlet編程中使用LogIn、ChaXun、ShanChu、XianShi和XuanKe五個(gè)類,與數(shù)據(jù)庫進(jìn)行交互,對數(shù)據(jù)庫接收到的數(shù)據(jù)進(jìn)行處理。將處理后的結(jié)果返回給客戶端,并在服務(wù)器端打印出用戶所請求的相關(guān)信息。如圖5-12所示。圖5-12服務(wù)器端顯示相關(guān)信息其中ChaXun(顯示選課信息)類的相關(guān)代碼如下:try{ Connectioncon=DriverManager.getConnection(dbURL,userName, userPwd); Statements=con.createStatement(); ResultSetifyixuanke=s.executeQuery(sql); while(ifyixuanke.next()){ ifhas=ifyixuanke.getString("是否選課"); } s.close(); if(ifhas.equals("t")){ PreparedStatementchaxun=con .prepareStatement("select課程名,學(xué)時(shí),學(xué)分,課程性質(zhì),考核方式,學(xué)期from課程表where課程號=(select課程號from選課表where學(xué)號=?)"); chaxun.setString(1,username); ResultSetkch=chaxun.executeQuery(); while(kch.next()){ re="t"+""+kch.getString("課程名")+""+kch.getString("學(xué)時(shí)")+""+kch.getString("學(xué)分") +""+kch.getString("課程性質(zhì)")+"" +kch.getString("考核方式")+""+kch.getString("學(xué)期"); } ifkx="f"; chaxun.close(); }else{ System.out.println("您還沒有選課!!"); ifkx="t"; re="f"; } con.close(); }catch(Exceptione){ System.out.println("連接數(shù)據(jù)庫失?。?+e+"false"); re="f"; } returnre; }其他幾個(gè)類的相關(guān)代碼與CX類的類似,只是相關(guān)的Select語句有所不同,下面只給出與類相關(guān)的Select語句。LogIn類相關(guān)的Select語句如下:ResultSetyhb=login.executeQuery("select學(xué)號,密碼from用戶表");ShanChu類相關(guān)的Select語句如下:PreparedStatementsc=con.prepareStatement("deletefrom選課表where學(xué)號=?");XianShi類相關(guān)的Select語句如下:ResultSetrs=xs.executeQuery("select課程表.課程號,課程名,學(xué)時(shí),學(xué)分,課程性質(zhì),考核方式,學(xué)期,教師姓名,所屬系部from課程表,教師信息表where課程表.課程號=教師信息表.課程號");Xuanke類相關(guān)的Select語句如下:PreparedStatementtianjia=con .prepareStatement("insertinto選課表values(?,?)");5.3客戶端與服務(wù)器端的通訊Android集成了ApacheHTTP客戶端,在服務(wù)器Servlet編程中使用HttpServletRequest和HttpServletResponse來表示請求和響應(yīng)。ApacheHTTP客戶端也已經(jīng)對請求和響應(yīng)進(jìn)行封裝,只需根據(jù)請求方法的不同,用到HttpGet和HttpPost兩個(gè)對象。其中,響應(yīng)對象是HttpResponse,使用DefaultHttpClient執(zhí)行請求獲得響應(yīng)。實(shí)現(xiàn)該模塊的核心代碼如下:publicclassHttpUtil{ //生命BaseURL常量 publicstaticfinalStringBASE_URL="11:8080/xiaoge/"; //通過URL獲得HttpGet對象 publicstaticHttpGetgetHttpGet(Stringurl){ HttpGetrequest=newHttpGet(url); returnrequest; }publicstaticStringqueryStringForGet(Stringurl){ HttpGetrequest=HttpUtil.getHttpGet(url); Stringresult=null; try{ HttpResponseresponse=HttpUtil.getHttpResponse(request); if(response.getStatusLine().getStatusCode()==200){ result=EntityUtils.toString(response.getEntity()); byte[]b=result.getBytes("8859-1"); Stringa=newString(b,"UTF-8"); returnresult; } }catch(ClientProtocolExceptione){ e.printStackTrace(); result="網(wǎng)絡(luò)異常!"; returnresult; }catch(IOExceptione){ e.printStackTrace(); result="網(wǎng)絡(luò)異常!"; returnresult; }returnnull;}publicstaticHttpResponsegetHttpResponse(HttpGetrequest)throwsClientProtocolException,IOException{ HttpResponseresponse=newDefaultHttpClient().execute(request); returnresponse; }} 第6章測試本章內(nèi)容主要是針對于整個(gè)系統(tǒng)功能的檢測,分析系統(tǒng)的可行性以及弊端,以及運(yùn)行的結(jié)果及發(fā)現(xiàn)的問題。6.1測試的作用和意義系統(tǒng)測試是系統(tǒng)的開發(fā)周期中的一個(gè)十分重要的環(huán)節(jié)。盡管在系統(tǒng)開發(fā)周期的各個(gè)階段均采取了嚴(yán)格的技術(shù)審查,但依然難免會留下錯(cuò)誤,如果沒有在投入運(yùn)行前的系統(tǒng)測試階段被發(fā)現(xiàn)并糾正,問題遲早會在運(yùn)行中暴露出來,到那時(shí)要糾正錯(cuò)誤將會付出更大的代價(jià)。系統(tǒng)測試占用的時(shí)間、花費(fèi)的人力和成本占軟件開發(fā)的很大比例。統(tǒng)計(jì)表明,開發(fā)較大規(guī)模的系統(tǒng),系統(tǒng)測試的工作量大約占整個(gè)軟件開發(fā)工作量的40%-50%。而對于一些特別重要的大系統(tǒng),測試的工作量和成本更大,甚至超過系統(tǒng)開發(fā)其他各階段的總和的若干倍。6.2測試方法對軟件進(jìn)行測試的主要方法有人工測試與機(jī)器測試。一般源程序通過編譯后,要先經(jīng)過人工測試,然后再進(jìn)行機(jī)器測試。人工測試是采用人工方式進(jìn)行,目的在于檢查程序的靜態(tài)結(jié)構(gòu),找出編譯不能發(fā)現(xiàn)的錯(cuò)誤。機(jī)器測試是運(yùn)用事先設(shè)計(jì)好的測試用例,執(zhí)行被測程序,對比運(yùn)行結(jié)果與預(yù)期結(jié)果的差別以發(fā)現(xiàn)錯(cuò)誤。另外人工測試又分為個(gè)人復(fù)查、走查與會審。機(jī)器測試又可分為黑盒測試與白盒測試,黑盒測試也稱功能測試,將軟件看作黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。根據(jù)軟件的需求規(guī)格說明書設(shè)計(jì)測試用例,從程序的輸入和輸出特性上測試是否滿足設(shè)定的功能。白盒測試也稱結(jié)構(gòu)測試,將軟件看作一個(gè)透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來選定測試用例,對軟件的邏輯路徑及過程進(jìn)行測試,檢查它與設(shè)計(jì)是否相符。對于這個(gè)基于Android的移動(dòng)選課系統(tǒng)來說,我在每寫完一個(gè)功能模塊時(shí)就要對這個(gè)模塊進(jìn)行測試,或者每寫好一段相對獨(dú)立的程序時(shí)也對它進(jìn)行相應(yīng)的功能測試或模塊測試。而當(dāng)我完成整個(gè)系統(tǒng)時(shí)我采用上面所說的人工測試方法,把整個(gè)軟件的邏輯關(guān)系理一下,避免發(fā)生邏輯錯(cuò)誤,然后是檢查軟件的功能是否實(shí)現(xiàn),與需求里面的功能要求作對比,檢查功能實(shí)現(xiàn)是否完善,合理等。6.3測試內(nèi)容(1)登錄模塊測試表6-1登錄模塊測試輸入/操作期望的輸出/響應(yīng)實(shí)際情況登錄檢測輸入正確的用戶名和密碼正常登陸輸入錯(cuò)誤的用戶名和密碼提示密碼錯(cuò)誤用戶名或密碼為空提示用戶名或密碼為空(2)已選課程模塊測試表6-2已選課程模塊測試輸入/操作期望的輸出/響應(yīng)實(shí)際情況已選課程檢測在屏幕上輸出已選擇的課程在屏幕上輸出正常(3)退選模塊測試表6-3退選模塊測試輸入/操作期望的輸出/響應(yīng)實(shí)際情況退選模塊檢測點(diǎn)擊退選按鈕時(shí),退選成功提示推選成功(4)可選課程信息模塊表6-4可選課程信息模塊測試輸入/操作期望的輸出/響應(yīng)實(shí)際情況可選信息檢測進(jìn)入可選信息頁面時(shí),顯示所有可選課信息進(jìn)入頁面時(shí)顯示所有的可選課程信息(5)選課模塊測試表6-5選課模塊測試輸入/操作期望的輸出/響應(yīng)實(shí)際情況選課檢測輸入正確的課程號提示選課成功輸入錯(cuò)誤的課程號提示沒有該課程6.4測試結(jié)果(1)服務(wù)器正常啟動(dòng)后,用戶能夠成功的登錄到選課系統(tǒng),當(dāng)用戶名、密碼出錯(cuò)或?yàn)榭諘r(shí)能夠給出相應(yīng)的提示。當(dāng)服務(wù)器沒有啟動(dòng)時(shí)會給出“網(wǎng)絡(luò)異?!钡奶崾?。(2)用戶在選課時(shí),系統(tǒng)會給用戶相應(yīng)的提示。當(dāng)用戶選擇了兩個(gè)以上的課程時(shí),不能夠完全顯示用戶所選擇的課程。(3)系統(tǒng)在顯示所有可以選擇的課程時(shí),顯示良好,可以拖動(dòng)屏幕顯示出所有的課程。(4)系統(tǒng)在刪除課程時(shí),沒有給出相關(guān)的提示就直接刪除,會給用戶的誤操作帶來不便。(5)系統(tǒng)界面良好,在可操作性方面良好。6.5測試結(jié)論系統(tǒng)經(jīng)過反復(fù)測試,發(fā)現(xiàn)存在上述測試結(jié)果中的一些問題,但是經(jīng)過后來反復(fù)的修改和測試,本系統(tǒng)最終完成,測試結(jié)果中的大部分問題都得到完美解決。但是,由于本人能力有限,此系統(tǒng)仍存在一些潛在的問題沒有解決。經(jīng)過后期對軟件的測試,懂得了測試的重要性,以及給本系統(tǒng)帶來的巨大改善,讓系統(tǒng)變的更強(qiáng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論