版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于Android的移動選課系統(tǒng)的設(shè)計</p><p><b> 摘 要</b></p><p> 隨著互聯(lián)網(wǎng)的不斷發(fā)展以及高等教育與教學(xué)的改革,高校的選課方式已經(jīng)從傳統(tǒng)的紙質(zhì)方式轉(zhuǎn)向了網(wǎng)上選課方式。近年來,隨著智能手機(jī)等移動設(shè)備的不斷普及,移動選課將是繼互聯(lián)網(wǎng)選課之后的又一種選課模式。網(wǎng)上選課系統(tǒng)的軟件較多,但具體的移動選課軟件相對較少。針
2、對這個情況,本文討論在廣泛應(yīng)用的Android平臺上設(shè)計與開發(fā)移動選課系統(tǒng)。</p><p> 本設(shè)計作為現(xiàn)有基于Web的網(wǎng)上選課系統(tǒng)的輔助手段和重要補(bǔ)充,旨在為廣大學(xué)生提供隨時隨地方便快捷的選課方式。通過初步對Android軟件開發(fā)技術(shù)和Java Servlet編程技術(shù)的學(xué)習(xí)以及對現(xiàn)有選課系統(tǒng)的分析和研究,結(jié)合移動互聯(lián)網(wǎng)的特點(diǎn),總結(jié)出移動選課系統(tǒng)所應(yīng)具備的主要功能。運(yùn)用信息系統(tǒng)開發(fā)方法等技術(shù)手段對該系統(tǒng)進(jìn)行了
3、整體的規(guī)劃、設(shè)計與實(shí)現(xiàn)。該系統(tǒng)具有用戶登錄、選課、退選、查看選課信息等基本的功能。該系統(tǒng)分為系統(tǒng)登錄、選課信息、選課、退選、已選課查詢等模塊。在移動選課系統(tǒng)的設(shè)計與實(shí)現(xiàn)過程中,采用了C/S架構(gòu)、Http通信協(xié)議;服務(wù)器通過JDBC與數(shù)據(jù)庫進(jìn)行交互,手機(jī)通過流的形式接收從Web服務(wù)器傳來的數(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)特點(diǎn)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)設(shè)計的原則和目的9</p><p> 3.2 需求分析9</p><p> 3.2.1 系統(tǒng)模塊9</p><p> 3.2.2 客戶端與服務(wù)器的連接方式10</
13、p><p> 3.2.3 系統(tǒng)結(jié)構(gòu)10</p><p> 第4章 系統(tǒng)設(shè)計11</p><p> 4.1 該系統(tǒng)的整體結(jié)構(gòu)11</p><p> 4.2 數(shù)據(jù)庫設(shè)計11</p><p> 4.2.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計11</p><p> 4.2.2 數(shù)據(jù)庫各表的設(shè)計12<
14、;/p><p> 4.3 服務(wù)器設(shè)計14</p><p> 4.3.1 Java Servlet程序14</p><p> 4.3.2與數(shù)據(jù)庫交互的程序15</p><p> 4.4 Android客戶端設(shè)計15</p><p> 4.4.1 Android客戶端的頁面設(shè)計15</p>&
15、lt;p> 4.4.2 Android客戶端各頁面之間的關(guān)系16</p><p> 第5章 系統(tǒng)的實(shí)現(xiàn)17</p><p> 5.1 客戶端的實(shí)現(xiàn)17</p><p> 5.1.1 系統(tǒng)主界面的實(shí)現(xiàn)17</p><p> 5.1.2 系統(tǒng)登錄模塊的實(shí)現(xiàn)17</p><p> 5.1.3 已選
16、課程查詢模塊的實(shí)現(xiàn)20</p><p> 5.1.4 退選模塊的實(shí)現(xiàn)21</p><p> 5.1.5 可選課程信息模塊的實(shí)現(xiàn)21</p><p> 5.1.6 選課模塊的實(shí)現(xiàn)22</p><p> 5.2 服務(wù)器端的實(shí)現(xiàn)23</p><p> 5.3 客戶端與服務(wù)器端的通訊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> 參考文獻(xiàn)33</b></p><p><b> 前 言</b></p><p> 近年來,隨著我國高等教
19、育與教學(xué)的改革,數(shù)字信息化的教學(xué)管理系統(tǒng)在高校日趨廣泛,伴隨著學(xué)年制管理體制向?qū)W分制管理體制的發(fā)展,使得網(wǎng)上選課系統(tǒng)在高校中得到廣泛的應(yīng)用。傳統(tǒng)的選課系統(tǒng)是以固定的形式訪問互聯(lián)網(wǎng)。這樣,雖然能夠滿足大部分學(xué)生的選課需要。但是在選課高峰時期,學(xué)校的Web服務(wù)器因訪問量過大而暫時癱瘓,學(xué)校機(jī)房的電腦數(shù)量有限難滿足學(xué)生們的選課需求。有時為了選擇到自己喜歡的課程,往往要提前半小時到一個小時在計算機(jī)上登錄選課系統(tǒng),守候在計算機(jī)旁邊,而不能做到隨時
20、隨地的選課。</p><p> 同時,隨著科技的發(fā)展,搭載Android操作系統(tǒng)的智能手機(jī)依靠其龐大的應(yīng)用程序和越來越低廉的價格吸引了廣大的用戶。在如此龐大的用戶基數(shù)影響下,移動互聯(lián)網(wǎng)技術(shù)得到了飛速的發(fā)展,我國的網(wǎng)民也正在從傳統(tǒng)的互聯(lián)網(wǎng)向移動互聯(lián)網(wǎng)轉(zhuǎn)移。在大學(xué)生中,智能手機(jī)用戶也占有相當(dāng)大的比例。因此,學(xué)生需要另一種的選課系統(tǒng)來解決當(dāng)前選課系統(tǒng)存在的問題,來分流由于傳統(tǒng)網(wǎng)絡(luò)訪問給服務(wù)器帶來的壓力?;贏ndro
21、id的移動選課系統(tǒng)應(yīng)運(yùn)而生。</p><p> 如今,高校的網(wǎng)上選課系統(tǒng)都是比較成熟完善的。移動選課系統(tǒng)只是現(xiàn)有網(wǎng)上選課系統(tǒng)的補(bǔ)充?;谏鲜隹紤],客戶端與服務(wù)器之間的通信采用Http通信協(xié)議。用C/S模式來建立移動選課系統(tǒng)比較合適。服務(wù)器端采用SQL 數(shù)據(jù)庫服務(wù)器,Tomcat Web服務(wù)器以及Java Servlet的Web服務(wù)器編程技術(shù)構(gòu)建移動選課的應(yīng)用服務(wù)系統(tǒng);客戶端采用Android平臺的客戶端軟件用來
22、登錄服務(wù)器。</p><p> 開發(fā)基于Android的移動選課系統(tǒng)的意義在于:對當(dāng)今流行的Android軟件有深入的了解,發(fā)現(xiàn)在開發(fā)過程中所面臨的問題,簡化選課程序,方便同學(xué)們的選課。同時,為今后開發(fā)出適合我校情況的移動選課系統(tǒng)打下基礎(chǔ)。</p><p><b> 第1章 緒論</b></p><p> 1.1選課系統(tǒng)的現(xiàn)狀</p
23、><p> 現(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è)計等業(yè)務(wù)模塊,在客戶端的瀏覽器視窗中就能進(jìn)行相應(yīng)模塊的功能管理。隨著移動互聯(lián)網(wǎng)的發(fā)展這種B/S模式的選課系統(tǒng)也存
24、在很多不足,比如要進(jìn)行選課操作時,就必須坐在接入網(wǎng)絡(luò)的電腦前:而且課程開設(shè)的通知等等也是要通過上網(wǎng)才知道,對于一些不常上網(wǎng)的同學(xué)可能就會錯過很多有用的消息,比如說課程調(diào)整通知、考試安排等等。而這些缺陷都可以通過移動終端來解決。</p><p> 1.2 Android系統(tǒng)特點(diǎn)</p><p> 近幾年,3G的全球覆蓋使世界快速步入移動互聯(lián)網(wǎng)時代,網(wǎng)絡(luò)的應(yīng)用范圍變得更加廣泛,移動智能終端
25、在市場上迅速滲透,成為移動互聯(lián)網(wǎng)發(fā)展的強(qiáng)大動力。根據(jù)市場調(diào)研機(jī)構(gòu)Gartner發(fā)布的最新統(tǒng)計報告顯示,2011年一季度全球手機(jī)銷售量共4.278億部,其中智能手機(jī)銷量超過1億部,現(xiàn)在高校師生的智能移動通訊設(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)核的移動平臺,該平臺由操作系統(tǒng)、中間件、用戶界面、應(yīng)
26、用軟件組成;從軟件分層的角度來說,Android平臺由應(yīng)用程序、應(yīng)用程序框架、Android運(yùn)行時庫層以及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)是學(xué)校網(wǎng)上選課系統(tǒng)的
27、補(bǔ)充,該系統(tǒng)的客戶端運(yùn)行于當(dāng)下最流行的智能手機(jī)操作系統(tǒng)——Android智能手機(jī)操作系統(tǒng)之上。通過GPRS(通用無線分組業(yè)務(wù))或WLAN(無線局域網(wǎng))等無線數(shù)據(jù)傳輸平臺,在我校集中的選課時間為我校的在校學(xué)生建立使用移動終端隨時隨地訪問我校的選課系統(tǒng)的平臺,了解選課信息,查詢選課結(jié)果,及時、快速、準(zhǔn)確的選擇喜歡的課程。</p><p> 1.3.2 基于Android的移動選課系統(tǒng)意義</p>&l
28、t;p> 基于Android的移動選課系統(tǒng)的用戶無論是在公交車,在商場,還是在沒用電腦的宿舍。只要通過搭載有該客戶端的Android手機(jī)就能隨時隨地的登陸系統(tǒng)進(jìn)行選課。從而使用戶遠(yuǎn)離的電腦的束縛,在學(xué)校集中選課的時間可以不用去機(jī)房排隊(duì)等候選課,大大地提高了學(xué)生選課的效率。</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程序員提供了一套免費(fèi)的java開發(fā)和運(yùn)行環(huán)境??梢酝ㄟ^訪問Http://java.sun.com/j2se,根據(jù)提示下載支持Windows操作
30、系統(tǒng)的JDK到本地硬盤。</p><p> 安裝的時候可以選擇安裝到任意的硬盤驅(qū)動器上。正確安裝之后,在JDK目錄下有bin、demo、lib、jre等子目錄。然后是設(shè)置JDK的環(huán)境變量,其設(shè)置方法如下:</p><p> 在Windows操作系統(tǒng)下,用鼠標(biāo)右鍵單擊【我的電腦】,彈出菜單選擇【屬性】,彈出【系統(tǒng)特性】對話框,再單擊該對話框中的【高級選項(xiàng)】,然后單擊【環(huán)境變量】按鈕,添加
31、如下的系統(tǒng)環(huán)境變量。</p><p><b> 變量名:PATH</b></p><p> 變量值:D:\java\bin;%PATH%(其內(nèi)容根據(jù)JDK安裝的目錄變化)設(shè)置完成點(diǎn)擊【確定】即可。</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> 運(yùn)行SDK
33、 Setup.exe,點(diǎn)擊Available Packages。如果沒有出現(xiàn)可安裝的包,請點(diǎn)擊Settings,選中Misc中的"Force https://..."這項(xiàng),再點(diǎn)擊Available Packages 。</p><p> 選擇希望安裝的SDK及其文檔或者其它包,點(diǎn)擊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,進(jìn)入菜單中的 "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è)點(diǎn)擊Browse...并選中SDK路徑,點(diǎn)擊Apply、OK,配置完成。</p><p><b> 5. 創(chuàng)建AVD</b></p><p>
37、 為使Android應(yīng)用程序可以在模擬器上運(yùn)行,必須創(chuàng)建AVD。</p><p> ?。?)在Eclipse中。選擇Windows > AVD Manager</p><p> ?。?)點(diǎn)擊左側(cè)面板的Virtual Devices,再右側(cè)點(diǎn)擊New</p><p> ?。?)填入Name,選擇Target的API,SD Card:512MB(保證模擬器運(yùn)行流
38、暢),Skin隨便選,Hardware目前保持默認(rèn)值。</p><p> 2.1.2 SQL Server數(shù)據(jù)庫配置</p><p> 在連接數(shù)據(jù)庫之前必須保證SQL Server 2005是采用SQL Server身份驗(yàn)證方式而不是windows身份驗(yàn)證方式。如果在安裝時選用了后者,則重新設(shè)置如下:</p><p> 1. 打開SQL Server 2005
39、,右擊最上面的服務(wù)器,選擇屬性——>安全性,在右邊框中選擇SQL Server和Windows身份驗(yàn)證模式,如圖2-2所示,最后點(diǎn)確定。</p><p> 圖2-2 服務(wù)器屬性</p><p> 選擇“安全性”中的登錄名中的sa,右擊選擇“屬性”, 選擇常規(guī),在右邊輸入登錄名sa,輸入密碼與確認(rèn)密碼123456(登錄名和密碼可以根據(jù)需要自行設(shè)置),再在左邊選擇狀態(tài),在登錄中設(shè)“啟
40、用”。</p><p> 2. 安裝好SQL Server 2005后,運(yùn)行 開始 → 所有程序 → Microsoft SQL Server 2005 → 配置工具 → SQL Server Configuration Manager,在打開的窗口的左邊找到 MSSQLSERVER的協(xié)議,在右邊右單擊 TCP/IP,選擇 已啟用。如果Named Pipes 未啟用也設(shè)為啟用。雙擊右邊的 TCP/IP,在彈出的
41、窗口中選擇 IP地址 標(biāo)簽,把 IpAll 中的 TCP端口 設(shè)成 1433,并將上方所有的“已啟用”選項(xiàng)設(shè)置成“是”。如圖2-3所示。</p><p> 圖2-3 TCP/IP屬性</p><p> 3. 運(yùn)行 開始 → 所有程序 → Microsoft SQL Server 2005 → 配置工具 → SQL Server 外圍應(yīng)用配置器,在打開的窗口中選擇 服務(wù)和連接的外圍應(yīng)用配
42、置器,在打開的窗口左邊選擇 遠(yuǎn)程連接,在右邊選擇 同時使用TCP/IP和named pipes(B),然后點(diǎn)擊“應(yīng)用”。如圖2-4所示。</p><p> 圖2-4 服務(wù)和連接的外圍應(yīng)用配置器</p><p><b> 2.2 硬件環(huán)境</b></p><p> 開發(fā)Android應(yīng)用程序要同時運(yùn)行Java虛擬機(jī)、Android虛擬機(jī)以及
43、Android模擬器,對計算機(jī)硬件的要求比較高。其硬件的最低配置如下:</p><p> CPU:主頻要在2.0GHZ以上。</p><p> 內(nèi)存:要在2G以上。</p><p> 屏幕最佳分辨率:1024×768像素。</p><p> 對硬盤的大小不做要求只要有足夠的空間能夠保證程序正常運(yùn)行就可以。</p>
44、<p><b> 第3章 系統(tǒng)分析</b></p><p> 3.1系統(tǒng)設(shè)計的原則和目的</p><p> 移動選課系統(tǒng)基于我校現(xiàn)有的網(wǎng)上選課系統(tǒng)的數(shù)據(jù)庫,設(shè)計目的就是作為現(xiàn)有的基于Web的網(wǎng)上選課系統(tǒng)的輔助手段和重要的補(bǔ)充,為廣大的學(xué)生提供隨時隨地方便快捷的選課、退課和課程查詢等功能。以原有的選課系統(tǒng)為基礎(chǔ),在不影響原有系統(tǒng)正常運(yùn)行和使用的情況下
45、增加通過手機(jī)選課的功能以擴(kuò)充原有的選課系統(tǒng),使選課的方式更加的靈活方便,且選課不受地域場所的限制,在學(xué)校集中選課的時間使用手機(jī)隨時隨地就可以選課。同時也分流了B/S模式下服務(wù)器超負(fù)荷的壓力。</p><p> 根據(jù)我校選課的實(shí)際情況采用C/S模式開發(fā)適合手持設(shè)備使用的客戶端軟件以及在WEB服務(wù)器上部署的服務(wù)器軟件。</p><p> 該系統(tǒng)充分按照簡單使用性原則設(shè)計,客戶端軟件簡單易用
46、,同時充分考慮到無線網(wǎng)絡(luò)和手持設(shè)備的特殊性,最大化的利用網(wǎng)絡(luò)資源。在設(shè)計功能的同時,考慮到系統(tǒng)的可伸縮性;在設(shè)計和代碼的實(shí)現(xiàn)上,給程序預(yù)留了可擴(kuò)展的接口,以便需要時可以快速的增加上相應(yīng)的功能。</p><p><b> 3.2 需求分析</b></p><p> 3.2.1 系統(tǒng)模塊</p><p> 移動選課系統(tǒng)總共包含五個功能模塊:系
47、統(tǒng)登錄、選課信息、選課、退選和已選課程查詢</p><p> 系統(tǒng)登錄:通過輸入用戶名和密碼驗(yàn)證合法的學(xué)生身份,避免了惡意登錄系統(tǒng)的情況。同時根據(jù)用戶名提取滿足其要求的信息</p><p> 選課信息:顯示登錄的學(xué)生可以選擇的所有課程的信息和教師信息以供學(xué)生選擇。</p><p> 選課:學(xué)生輸入相應(yīng)的課程號選擇課程。</p><p>
48、 退選:當(dāng)用戶點(diǎn)擊了退選按鈕后,退選已經(jīng)選擇的課程。</p><p> 已選課程查詢:列出該學(xué)生已選的課程信息,以供參考。</p><p> 3.2.2 客戶端與服務(wù)器的連接方式</p><p> 手機(jī)客戶端使用Http方式同Web服務(wù)器通信,服務(wù)器端通過JDBC與數(shù)據(jù)庫交互。手機(jī)通過Http以流的形式接收從Web服務(wù)器傳來的數(shù)據(jù)流。手機(jī)終端與Web服務(wù)器之
49、間通信的數(shù)據(jù)格式采用一個特殊的標(biāo)記,從而使客戶端和服務(wù)器完成特定的功能。</p><p> 3.2.3 系統(tǒng)結(jié)構(gòu)</p><p> 客戶機(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)速度,降低
50、了系統(tǒng)的通訊開銷,但是需要安裝客戶端才可進(jìn)行相應(yīng)的管理操作。 </p><p> 同時,在C/S架構(gòu)中客戶端與服務(wù)器之間相互分離,可以對客戶端進(jìn)行單獨(dú)的設(shè)計。使客戶端的操作界面漂亮、形式多樣,可以充分滿足客戶自身的個性要求。且此結(jié)構(gòu)還具有較強(qiáng)的事務(wù)處理能力,能實(shí)現(xiàn)負(fù)載的業(yè)務(wù)流程等優(yōu)點(diǎn)。</p><p> 因此,鑒于C/S架構(gòu)的優(yōu)點(diǎn)、手機(jī)操作系統(tǒng)、網(wǎng)絡(luò)速度以及當(dāng)前大多數(shù)Android手機(jī)
51、應(yīng)用都采用C/S架構(gòu)的考慮?;贏ndroid的移動選課系統(tǒng)采用客戶端/服務(wù)器(C/S)結(jié)構(gòu)。</p><p><b> 第4章 系統(tǒng)設(shè)計</b></p><p> 4.1 該系統(tǒng)的整體結(jié)構(gòu)</p><p> 系統(tǒng)的整體結(jié)構(gòu):Android客戶端手機(jī)通過無線網(wǎng)絡(luò)訪問后臺服務(wù)器,如果需要數(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ù)庫設(shè)計</b></p><p> 4.2.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</p><p> (1) 用戶表,包含的字段有:登錄名、密碼。</p><p> (2) 學(xué)生表,包含的字段有:學(xué)號、姓
53、名、性別、出生日期、政治面貌、入學(xué)日期、聯(lián)系電話、班級。</p><p> (3) 選課表,包含的字段有:學(xué)號、課程號。</p><p> (4) 課程表,包含的字段有:課程號、課程名、學(xué)時、學(xué)分、課程性質(zhì)、考核方式、上課學(xué)期。</p><p> (5) 教師信息表,包含的字段有:姓名、課程號、所屬系部、聯(lián)系方式、上課地點(diǎn)。</p><p&
54、gt; 其E-R模型如圖4-2所示。</p><p> 圖4-2 系統(tǒng)E-R圖</p><p> 4.2.2 數(shù)據(jù)庫各表的設(shè)計</p><p> 根據(jù)上述設(shè)計的數(shù)據(jù)庫的結(jié)構(gòu),設(shè)計了名稱為“移動選課系統(tǒng)”的數(shù)據(jù)庫。</p><p> “移動選課系統(tǒng)”數(shù)據(jù)庫有下面多個表組成,各表的命名及字段命名都是以漢字的形式來命名,各表的設(shè)計結(jié)果如下
55、:</p><p><b> 表4-1 用戶表</b></p><p><b> 表4-2 學(xué)生表</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 服務(wù)器設(shè)計</b></p><p> 該移動選課系統(tǒng)的手機(jī)客戶端采用了Http方式同Web服務(wù)器通信?;谶@個要求,在服務(wù)器端編寫了Java Servlet程序放置在名稱為“servlet”包中用以實(shí)現(xiàn)手機(jī)客戶端采用Http的方式同服務(wù)器進(jìn)行通信。同時還編寫了一個通過 JDBC與數(shù)據(jù)庫交互的程序放在名
57、稱為“shujuku”的包中以實(shí)現(xiàn)Servlet程序與數(shù)據(jù)庫之間的數(shù)據(jù)交換。</p><p> 4.3.1 Java Servlet程序</p><p> Servlet是一種采用Java來實(shí)現(xiàn)CGI功能的技術(shù)。Servlet本身與協(xié)議無關(guān),與平臺與無關(guān)。對應(yīng)的軟件包有兩個javax.servlet.http和javax.servlet.jsp,通常所說的Servlet編程主要就是指針
58、對HTTP的Servlet編程。</p><p> Servlet運(yùn)行于Servlet引擎管理的Java虛擬機(jī)中,被來自客戶端的請求所喚醒,在虛擬機(jī)中只要裝載一個Servlet及能夠處理新的請求。</p><p> Tomcat服務(wù)器是運(yùn)行Servlet程序的載體,在運(yùn)行Servlet程序之前要在機(jī)器上安裝好tomcat服務(wù)器。這是Servlet運(yùn)行時所需要的環(huán)境。</p>
59、<p> 移動選課系統(tǒng)的Servlet程序包含LoginServlet、CX、SC、XS和XK五個類,這五個類同時繼承HttpServlet類。這五個類的功能描述如下:</p><p> LoginServlet類:接收和返回用戶的登陸信息。</p><p> CX類:接收用戶對已選課程查詢的請求,給用戶返回相應(yīng)的數(shù)據(jù)信息。</p><p>
60、SC類:接收用戶對刪除已選課程的請求,給用戶返回是否刪除成功的相應(yīng)信息。</p><p> XS類:接收用戶對顯示所有可選課程的請求,并給用戶返回相應(yīng)的信息。</p><p> XK類:接收用戶的選課請求,給用戶返回是否選課成功的相關(guān)信息。</p><p> 4.3.2與數(shù)據(jù)庫交互的程序</p><p> 與數(shù)據(jù)庫的交互程序是服務(wù)器的
61、核心程序,共包含lianjie、LogIn、ChaXun、XianShi、XuanKe和shanchu六個方法。功能描述如下:</p><p> Lianjie方法:通過JDBC與數(shù)據(jù)庫進(jìn)行連接連接。</p><p> LogIn方法:通過與數(shù)據(jù)庫的交互驗(yàn)證登陸者的身份是否合法。</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客戶端設(shè)計&
63、lt;/p><p> 4.4.1 Android客戶端的頁面設(shè)計</p><p> Android客戶端主要包括四個頁面,登錄頁面、主頁面、已選課程頁面以及可選課程頁面。每個頁面的主要功能描述如下:</p><p> 登錄頁面:供用戶登錄系統(tǒng)只用。同時,檢測用戶輸入的用戶名和密碼是否為空,是否合法。</p><p> 主頁面:該頁面上列出
64、了若干項(xiàng)菜單。以供用戶選擇自己要完成的事項(xiàng)。</p><p> 已選課程頁面:該頁面上顯示用戶已經(jīng)選擇在的課程。</p><p> 可選課程頁面:該頁面羅列出所有可以選擇的課程,以供用戶選擇自己喜歡的課程。</p><p> 其中,“課程退選”功能在已選課程頁面添加一個“退選”按鈕實(shí)現(xiàn)?!斑x課”功能在可選課程頁面中添加一個“選課”按鈕實(shí)現(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)的實(shí)現(xiàn)</b></p><p> 5
66、.1 客戶端的實(shí)現(xiàn) </p><p> 5.1.1 系統(tǒng)主界面的實(shí)現(xiàn)</p><p> 系統(tǒng)主界面很簡介,只包含一個菜單選項(xiàng),通過這個菜單導(dǎo)航到各個功能模塊,主界面如圖5-1所示:</p><p><b> 圖5-1系統(tǒng)主界面</b></p><p> 主界面對應(yīng)的類是MainActivity,繼承了ListAc
67、tivity類實(shí)現(xiàn)一個ListView,對應(yīng)的就是界面上的菜單。在MainActivity中的onCreate方法中初始化數(shù)據(jù)。</p><p> 5.1.2 系統(tǒng)登錄模塊的實(shí)現(xiàn)</p><p> 系統(tǒng)登錄模塊的流程圖如圖5-2所示:</p><p> 圖5-2登錄模塊流程圖</p><p> 當(dāng)用戶點(diǎn)擊登錄,若登錄成功則進(jìn)入如圖5-
68、1所示的系統(tǒng)主界面。若用戶名或密碼為空則在頁面上彈出相應(yīng)的提示,如圖5-3所示;若密碼錯誤同樣出現(xiàn)相應(yīng)的提示。如圖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("用戶名稱是必填項(xiàng)!");</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("用戶密碼是必填項(xiàng)!");</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 學(xué)號,密碼 from 用戶表 ");</p><p> while (yhb.next()) {</p><p> if (username.equals(yhb.getString(&
74、quot;學(xué)號"))</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 已選課程查詢模塊的實(shí)現(xiàn)</p><p> 已選課程查詢模塊的流程圖如圖5-5所示:</p><p> 圖5-5已選課程流程圖</p><p> 當(dāng)用戶點(diǎn)擊如5-1的選課信息查詢菜單后,用戶進(jìn)入已選課程
77、頁面如圖5-6所示。</p><p><b> 圖5-6已選課程</b></p><p> 當(dāng)該用戶沒有選課是頁面會出現(xiàn)您還沒有選課的提示,如圖5-7所示:</p><p> 圖5-7 未選課提示</p><p> 5.1.4 退選模塊的實(shí)現(xiàn)</p><p> 當(dāng)用戶點(diǎn)擊圖5-6的退選按
78、鈕時頁面會給用戶以響應(yīng)的提示,提示用戶是否退選成功。如圖5-8所示:</p><p><b> 圖5-8退選</b></p><p> 說明:退選模塊的流程去前兩個模塊的相似,故在這里就不給出詳細(xì)的流程圖和核心代碼,流程圖可參考圖5-2 。</p><p> 5.1.5 可選課程信息模塊的實(shí)現(xiàn)</p><p>
79、當(dāng)用戶點(diǎn)擊圖5-1的可選課程查詢菜單后,用戶進(jìn)入可選課程頁面,如圖5-9所示,在這里用戶可以瀏覽所有可以選擇的課程信息。</p><p><b> 圖5-9可選課程</b></p><p> 說明:退選模塊的流程去前兩個模塊的相似,故在這里就不給出詳細(xì)的流程圖和核心代碼。流程圖可參考圖5-2 。</p><p> 5.1.6 選課模塊的實(shí)
80、現(xiàn)</p><p> 在如圖5-9所示的用戶頁面中,輸入要選擇的課程號,點(diǎn)擊選課按鈕之后。頁面上會給出選課是否成功的相應(yīng)提示,以便用戶有相應(yīng)的了解。如圖5-10和圖5-11所示。</p><p> 圖5-10提示選課成功</p><p> 圖5-11 提示已經(jīng)選課</p><p> 說明:退選模塊的流程去前兩個模塊的相似,故在這里就不
81、給出詳細(xì)的流程圖和核心代碼。流程圖可參考圖5-2 。</p><p> 5.2 服務(wù)器端的實(shí)現(xiàn)</p><p> 在服務(wù)器的Servlet編程中使用LogIn、ChaXun、ShanChu、XianShi和XuanKe五個類,與數(shù)據(jù)庫進(jìn)行交互,對數(shù)據(jù)庫接收到的數(shù)據(jù)進(jìn)行處理。將處理后的結(jié)果返回給客戶端,并在服務(wù)器端打印出用戶所請求的相關(guān)信息。如圖5-12所示。</p>&l
82、t;p> 圖5-12 服務(wù)器端顯示相關(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 課程名,學(xué)時,學(xué)分,課程性質(zhì),考核方式,學(xué)期 from 課程表 where 課程號=(select 課程號 from 選課表 where 學(xué)號= ? ) ");</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("學(xué)時") + " " + kch.getString("學(xué)分")</p><p> + " " + kch.getString("課程性質(zhì)") + " "</p><p> + kch.getString("考核方式") + "
88、 " + </p><p> kch.getString("學(xué)期");</p><p><b> }</b></p><p> ifkx = "f";</p><p> chaxun.close();</p><p><b>
89、} else {</b></p><p> System.out.println("您還沒有選課??!");</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ù)庫失?。?quot; + 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 學(xué)號,密碼 from 用戶表 ");</p><p> ShanChu類相關(guān)的Select語句如下:</p><p> PreparedStatement
93、sc = con.prepareStatement("delete from 選課表 where 學(xué)號= ? ");</p><p> XianShi類相關(guān)的Select語句如下:</p><p> ResultSet rs = xs</p><p> .executeQuery("select 課程表.課程號,課程名,學(xué)時,學(xué)分
94、,課程性質(zhì),考核方式,學(xué)期,教師姓名,所屬系部 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 客戶端與服務(wù)器端的通訊</p><p> Android集成了Apache HTTP客戶端,在服務(wù)器Servlet編程中使用HttpServletRequest和HttpServletResponse來表示請求和響應(yīng)。Apache HTTP客戶端也已經(jīng)對請求和響應(yīng)進(jìn)行封裝,只需根據(jù)請求方法的不同,
96、用到HttpGet和HttpPost兩個對象。其中,響應(yīng)對象是HttpResponse,使用DefaultHttpClient執(zhí)行請求獲得響應(yīng)。</p><p> 實(shí)現(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)絡(luò)異常!";</p><p> return result;</p><p> } catch (IOException e) {</p><p> e.printStackTrace();</p><p> result = "網(wǎng)絡(luò)異常
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)的可行性以及弊端,以及運(yùn)行的結(jié)果及發(fā)現(xiàn)的問題。</p><p> 6.1 測試的作用和意義</p><p> 系統(tǒng)測試是系統(tǒng)的開發(fā)周期中的一個十分重要
106、的環(huán)節(jié)。盡管在系統(tǒng)開發(fā)周期的各個階段均采取了嚴(yán)格的技術(shù)審查,但依然難免會留下錯誤,如果沒有在投入運(yùn)行前的系統(tǒng)測試階段被發(fā)現(xiàn)并糾正,問題遲早會在運(yùn)行中暴露出來,到那時要糾正錯誤將會付出更大的代價。系統(tǒng)測試占用的時間、花費(fèi)的人力和成本占軟件開發(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ìn)行測試的主要方法有人工測試與機(jī)器測試。一般源程序通過編譯后,要先經(jīng)過人工測試,然后再進(jìn)行機(jī)器測試。人工測試是采用人工方式進(jìn)行,目的在于檢查程序的靜態(tài)結(jié)構(gòu),找出編譯不能發(fā)現(xiàn)的錯誤。機(jī)器測試是運(yùn)用事先設(shè)計好的測試用例,執(zhí)行被測程序,對比運(yùn)行結(jié)果與預(yù)期結(jié)果的差別以發(fā)現(xiàn)錯誤。</p>
108、<p> 另外人工測試又分為個人復(fù)查、走查與會審。</p><p> 機(jī)器測試又可分為黑盒測試與白盒測試,黑盒測試也稱功能測試,將軟件看作黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。根據(jù)軟件的需求規(guī)格說明書設(shè)計測試用例,從程序的輸入和輸出特性上測試是否滿足設(shè)定的功能。白盒測試也稱結(jié)構(gòu)測試,將軟件看作一個透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來選定測試用例,對軟件的邏輯路
109、徑及過程進(jìn)行測試,檢查它與設(shè)計是否相符。</p><p> 對于這個基于Android的移動選課系統(tǒng)來說,我在每寫完一個功能模塊時就要對這個模塊進(jìn)行測試,或者每寫好一段相對獨(dú)立的程序時也對它進(jìn)行相應(yīng)的功能測試或模塊測試。而當(dāng)我完成整個系統(tǒng)時我采用上面所說的人工測試方法,把整個軟件的邏輯關(guān)系理一下,避免發(fā)生邏輯錯誤,然后是檢查軟件的功能是否實(shí)現(xiàn),與需求里面的功能要求作對比,檢查功能實(shí)現(xiàn)是否完善,合理等。</
110、p><p><b> 6.3 測試內(nèi)容</b></p><p><b> ?。?)登錄模塊測試</b></p><p> 表6-1 登錄模塊測試</p><p> ?。?)已選課程模塊測試</p><p> 表6-2 已選課程模塊測試</p><p>
111、;<b> (3)退選模塊測試</b></p><p> 表6-3 退選模塊測試</p><p> ?。?)可選課程信息模塊</p><p> 表6-4 可選課程信息模塊測試</p><p><b> ?。?)選課模塊測試</b></p><p> 表6-5 選課模塊
112、測試</p><p><b> 6.4 測試結(jié)果</b></p><p> (1) 服務(wù)器正常啟動后,用戶能夠成功的登錄到選課系統(tǒng),當(dāng)用戶名、密碼出錯或?yàn)榭諘r能夠給出相應(yīng)的提示。當(dāng)服務(wù)器沒有啟動時會給出“網(wǎng)絡(luò)異常”的提示。</p><p> (2) 用戶在選課時,系統(tǒng)會給用戶相應(yīng)的提示。當(dā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ù)測試,發(fā)現(xiàn)存在上述測試結(jié)果中的一些問題,但是經(jīng)過后來反復(fù)的修改和測試,本系統(tǒng)最終完成,測試結(jié)果中的大部分問題都得到完美解決。但是,由于本人能力有限,此系統(tǒng)仍存在一些潛在的問題沒有解決。經(jīng)過后期對軟件的測試,懂得了測試的重要性,以及給本系統(tǒng)帶來的巨大改善,讓系統(tǒng)變的更強(qiáng)壯。</p><p><b> 結(jié) 論</b><
115、/p><p> 在老師、同學(xué)的知道幫助下,在繁忙的工作之余經(jīng)過兩個月的時間,畢業(yè)設(shè)計基本完成。本課題主要工作包括:</p><p> (1) 學(xué)習(xí)研究了無線通信技術(shù)、Android移動平臺、以及Java Servlet相關(guān)技術(shù),并對Android移動平臺和Java Servlet進(jìn)行了歸納總結(jié)。</p><p> (2) 采用面向?qū)ο蟮姆治黾夹g(shù)來設(shè)計系統(tǒng),考慮到選
116、課系統(tǒng)的分布性和差異性,系統(tǒng)采用了分層的的架構(gòu)設(shè)計。這樣也使系統(tǒng)有了更好的可擴(kuò)容性。</p><p> (3) 在充分的掌握了上述知識后,順利完成了系統(tǒng)后臺和客戶端的設(shè)計和實(shí)現(xiàn)。</p><p> 因時間倉促再加上本人知識水平有限,使得本系統(tǒng)還有很多不足的地方,比如:界面不夠人性化,只進(jìn)行了粗略設(shè)計。沒有對客戶端的界面進(jìn)行美化;沒有對權(quán)限做過多的設(shè)置,對數(shù)據(jù)的安全性也沒有做過多的要求;
117、一個學(xué)生一個學(xué)期只能選擇一門課(我校選課時一學(xué)期只選擇一門選修課),沒有考慮到多門同時選擇的情況。</p><p> 隨著無線通信設(shè)備的不斷完善,移動選課系統(tǒng)也將是高校未來信息化的重要主城部分。同時Android目前是相當(dāng)成熟的一門技術(shù),因此開發(fā)基于Android的移動選課系統(tǒng),有著極大的創(chuàng)新型,也給廣大的學(xué)生實(shí)際使用提供了方便。</p><p><b> 謝 辭</b
118、></p><p> 經(jīng)過幾個月的忙碌和工作,本次畢業(yè)設(shè)計已經(jīng)接近尾聲,多虧導(dǎo)師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,這個畢業(yè)設(shè)計才得以順利完成。</p><p> 本課題在選題及研究過程中得到盧老師的悉心指導(dǎo)。盧老師多次詢問研究進(jìn)程,并為我指點(diǎn)迷津,幫助我開拓研究思路,精心點(diǎn)撥、熱忱鼓勵。盧老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,一直是我學(xué)習(xí)中的榜樣。更可貴的是盧
119、老師不僅授我于魚,而且授我于漁。對盧老師的感激之情是無法用言語表達(dá)的。</p><p> 同時,論文的順利完成,離不開其它各位老師、同學(xué)和朋友的關(guān)心和幫助。在整個程序設(shè)計和論文寫作過程中,各位老師、同學(xué)和朋友積極的幫助我查資料和提供有利于程序論文的建議和意見,在他們的幫助下,程序設(shè)計和論文得以不斷的完善,最終幫助我完整的做完了整個程序設(shè)計和畢業(yè)論文。</p><p> 在論文的寫作過程
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android的移動選課系統(tǒng)的設(shè)計
- 基于jsp的學(xué)生選課系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計基于web的選課系統(tǒng)設(shè)計與實(shí)現(xiàn)
- 基于jsp的學(xué)生選課排課系統(tǒng)畢業(yè)設(shè)計
- 基于java的學(xué)生選課系統(tǒng)設(shè)計與實(shí)現(xiàn)畢業(yè)設(shè)計
- 基于ajax的學(xué)生選課系統(tǒng)的設(shè)計與實(shí)現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---基于android的日程管理系統(tǒng)
- 畢業(yè)設(shè)計---基于bs模式選課系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 基于android的日歷系統(tǒng)的設(shè)計與實(shí)現(xiàn)-畢業(yè)設(shè)計
- 學(xué)生選課系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---在線選課系統(tǒng)的設(shè)計與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(論文)-基于android的高考寶典系統(tǒng)
- 畢業(yè)設(shè)計----網(wǎng)上選課系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計----學(xué)生選課管理系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計--學(xué)生選課系統(tǒng)的設(shè)計和開發(fā)
- 畢業(yè)設(shè)計(論文)-學(xué)生選課系統(tǒng)設(shè)計
- 基于Android的移動學(xué)習(xí)系統(tǒng)設(shè)計.pdf
- 基于android的esl管理系統(tǒng)的設(shè)計與開發(fā)【畢業(yè)設(shè)計】
- 教務(wù)畢業(yè)設(shè)計選題與選課系統(tǒng)畢業(yè)設(shè)計
- android畢業(yè)設(shè)計--基于android的音樂播放的設(shè)計與實(shí)現(xiàn)
評論
0/150
提交評論