版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)</p><p> —學(xué)生客戶端的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 摘 要</b></p><p> 高校中由于教學(xué)模式的原因,師生之間交流的時(shí)間極為短暫,而考勤,作業(yè)以及學(xué)生反饋等問(wèn)題占用了很多寶貴的教學(xué)時(shí)間,往往會(huì)影響正常的教學(xué)計(jì)劃和教學(xué)質(zhì)量,同樣也會(huì)給學(xué)生的學(xué)習(xí)生活帶來(lái)不必要的麻
2、煩。簡(jiǎn)化教學(xué)工作,提高學(xué)生學(xué)習(xí)效率已經(jīng)成為高校中亟待解決的問(wèn)題。</p><p> 近些年移動(dòng)互聯(lián)網(wǎng)的不斷壯大和移動(dòng)平臺(tái)的飛速發(fā)展為教學(xué)模式的改善提供了新的渠道和手段。利用移動(dòng)平臺(tái)中應(yīng)用最廣泛的安卓系統(tǒng),在手機(jī)和平板電腦上搭建的便捷高效教學(xué)管理系統(tǒng)學(xué)生客戶端,為學(xué)生提供查詢各課程簽到,作業(yè)情況以及對(duì)教師教學(xué)內(nèi)容進(jìn)行反饋等功能,優(yōu)化了教學(xué)模式,增加了教學(xué)時(shí)間,也提高了學(xué)生的學(xué)習(xí)效率,并通過(guò)搭建ASP網(wǎng)頁(yè)學(xué)生客戶端
3、擴(kuò)大了系統(tǒng)應(yīng)用范圍,緩解了學(xué)生的經(jīng)濟(jì)壓力,極大改善了教學(xué)質(zhì)量,幫助學(xué)生更好地去完成學(xué)習(xí)任務(wù)。</p><p> 關(guān)鍵詞:安卓;教學(xué)管理系統(tǒng);學(xué)生客戶端;ASP.NET</p><p> Teaching Management System Based on Android system</p><p> -Students Client Design and
4、Implementation</p><p><b> ABSTRACT</b></p><p> Due to the teaching model,the interaction time between teachers and students in universities is extremely short,attendance,assignment
5、s and feedback from students and other issues take up a lot of valuable teaching time,which tends to affect the normal teaching plans and quality,and also causes unnecessary trouble to the study lives of students.</p&
6、gt;<p> In recent years,the growing mobile Internet and the rapid development of mobile platforms carry the new channels and means for the improvement of the teaching model.Using Android system which is Equipped
7、in mobile platform the most widely,it’s a convenient and efficient attendance system client for student in mobile phones and tablet PCs that is built.The client provides students thefuctions of querying the situatio
8、ns of attendance and homework and feedbacking on teaching contents to their teach</p><p> Key word:Android;teaching management system;Students'client;ASP.NET</p><p><b> 目 錄</b>
9、;</p><p><b> 1 引言1</b></p><p> 2 課題背景與可行性分析2</p><p> 2.1 課題背景2</p><p> 2.2 可行性分析2</p><p> 2.3 結(jié)論意見(jiàn)3</p><p> 2.4 開(kāi)發(fā)工具簡(jiǎn)介
10、3</p><p><b> 3 需求分析6</b></p><p> 3.1 特性需求分析6</p><p> 3.2 功能需求分析6</p><p><b> 4 總體設(shè)計(jì)11</b></p><p> 4.1 硬件配置設(shè)計(jì)11</p>
11、<p> 4.2 系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)11</p><p> 4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)12</p><p> 4.4 代碼設(shè)計(jì)19</p><p><b> 5 詳細(xì)設(shè)計(jì)20</b></p><p> 5.1 手機(jī)客戶端20</p><p> 5.2 服務(wù)器端模塊20<
12、;/p><p> 5.3 網(wǎng)頁(yè)客戶端28</p><p><b> 6 總結(jié)34</b></p><p><b> 參考文獻(xiàn)35</b></p><p><b> 致謝36</b></p><p><b> 1 引言</b
13、></p><p> 隨著科技的發(fā)展,移動(dòng)通訊平臺(tái)在不斷地發(fā)展中愈來(lái)愈加成熟,預(yù)計(jì)2012年中國(guó)手機(jī)市場(chǎng)銷量將達(dá)到3億部,全球銷量更是會(huì)超過(guò)10億部,其中,安卓系統(tǒng)在手機(jī)中的發(fā)展最為迅速。2012年1月20日,谷歌報(bào)告顯示,通過(guò)谷歌服務(wù)器激活的Android設(shè)備用戶總數(shù)已經(jīng)超過(guò)2.5億,而Android在中國(guó)大陸的智能手機(jī)操作系統(tǒng)市場(chǎng)占有率達(dá)到了68.4%。安卓系統(tǒng)以其開(kāi)放的平臺(tái),眾多、免費(fèi)的應(yīng)用,華麗、
14、新鮮的運(yùn)行界面,簡(jiǎn)單、親切的用戶體驗(yàn)而備受消費(fèi)者的喜愛(ài)。</p><p> 在高校中,由于教師與學(xué)生之間往往只是在上課的時(shí)候才能見(jiàn)面,師生之間的交流并不是十分活躍,教師對(duì)于簽到,布置作業(yè),學(xué)生們對(duì)上課效果的反饋等等很多時(shí)候都不能及時(shí)解決和處理,而學(xué)生對(duì)于自己的簽到記錄,各個(gè)科目布置的作業(yè)題目和以及分?jǐn)?shù)也往往不能明了,自己在學(xué)習(xí)上的問(wèn)題也不能及時(shí)地反映給老師,影響正常的學(xué)習(xí)生活?;贏ndroid系統(tǒng)的教學(xué)管理系
15、統(tǒng)則是一款建立在安卓平臺(tái)的軟件,致力于為廣大師生工作與學(xué)習(xí)提供便利,系統(tǒng)突破傳統(tǒng)交流的時(shí)空限制,實(shí)現(xiàn)師生之間的方便有效地交流。</p><p> 基于Android系統(tǒng)的教學(xué)管理系統(tǒng)分為兩個(gè)部分,一部分為教師客戶端,為教師在對(duì)學(xué)生的簽到,作業(yè)的布置評(píng)分等處理以及查看學(xué)生的反饋提供方面上便利。另一部分為學(xué)生客戶端,學(xué)生可以通過(guò)此客戶端查看自己簽到狀況,查看作業(yè)題目評(píng)分,以及進(jìn)行反饋。由于考慮到學(xué)生可能不能每人都擁
16、有一部安卓設(shè)備,此系統(tǒng)將會(huì)提供網(wǎng)頁(yè)客戶端,學(xué)生可以通過(guò)網(wǎng)頁(yè)實(shí)現(xiàn)客戶端內(nèi)容。</p><p> 本論文將對(duì)學(xué)生客戶端,包括安卓客戶端與網(wǎng)頁(yè)客戶端的實(shí)現(xiàn)進(jìn)行詳細(xì)的闡述,實(shí)現(xiàn)系統(tǒng)的C/S與B/S兩個(gè)模式。</p><p> 2 課題背景與可行性分析</p><p><b> 2.1 課題背景</b></p><p>
17、 隨著移動(dòng)平臺(tái)的成熟以及互聯(lián)網(wǎng)的不斷發(fā)展,手機(jī)等移動(dòng)設(shè)備已經(jīng)極大地普及,人們可以在隨時(shí)隨地用指尖去完成各種以往繁瑣的事情。由于在高校中師生交流的不順暢,嚴(yán)重影響著教師的教學(xué)工作和學(xué)生的學(xué)習(xí)生活,因此亟需一款軟件去簡(jiǎn)化教師的工作,實(shí)現(xiàn)教師與學(xué)生簡(jiǎn)單方便地交流??紤]到安卓系統(tǒng)的迅速發(fā)展和極高的普遍率,以及其平臺(tái)的開(kāi)放性和友好的界面,這款基于Android系統(tǒng)的教學(xué)管理系統(tǒng)便應(yīng)運(yùn)而生了。該系統(tǒng)可以很輕松的實(shí)現(xiàn)師生間良好的互動(dòng),幫助教師完成簽到
18、,布置作業(yè),打分以及查看學(xué)生反饋信息等功能,提高工作效率簡(jiǎn)化工作內(nèi)容的同時(shí)更好的完成教學(xué)任務(wù),幫助學(xué)生實(shí)現(xiàn)查看自己簽到情況,查看布置的作業(yè)和打分情況以及對(duì)教師進(jìn)行反饋,方便高效的完成學(xué)習(xí)任務(wù)。網(wǎng)頁(yè)客戶端可以彌補(bǔ)手機(jī)客戶端的缺陷,更好的實(shí)現(xiàn)系統(tǒng)功能,幫助師生完成教學(xué)任務(wù)和學(xué)習(xí)任務(wù)。</p><p><b> 2.2 可行性分析</b></p><p> 近些年,移動(dòng)
19、設(shè)備的高速發(fā)展,使得手機(jī)等移動(dòng)設(shè)備高速智能化,移動(dòng)網(wǎng)絡(luò)通信正在以前所未有的驚人速度走入人們的生活、工作和學(xué)習(xí)中,提高了工作學(xué)習(xí)的效率,增加了獲取信息的渠道,突破了相互交流的時(shí)空界限。教學(xué)管理系統(tǒng)可以基于移動(dòng)平臺(tái)安卓系統(tǒng)進(jìn)行開(kāi)發(fā),幫助師生輕松解決教學(xué)中工作學(xué)習(xí)等問(wèn)題。</p><p> 可行性分析既不能以偏蓋全,也不能過(guò)于追求細(xì)節(jié),必須為決策提供有價(jià)值的證據(jù)。軟件領(lǐng)域的可行性分析主要考慮四個(gè)因素:技術(shù)可行性分析,
20、經(jīng)濟(jì)、社會(huì)效益分析,法律可行性分析,開(kāi)發(fā)人員與進(jìn)程可行性分析。</p><p> 技術(shù)可行性分析:安卓系統(tǒng)是基于Java編寫(xiě)的,因此手機(jī)客戶端采用Eclipse配上AndroidSDK,完全可以實(shí)現(xiàn)系統(tǒng)功能,開(kāi)發(fā)人員都具有一定Java功底,加之安卓平臺(tái)開(kāi)放性,網(wǎng)上很輕松的可以查看到各種實(shí)現(xiàn)代碼,手機(jī)客戶端在技術(shù)上是可行的。網(wǎng)頁(yè)客戶端用ASP.NET (C#)編寫(xiě),在Visual Studio 2005環(huán)境下實(shí)現(xiàn)
21、,ASP.NET運(yùn)用面向?qū)ο蟮木幊趟枷脒M(jìn)行Web開(kāi)發(fā),并且是以編譯方式執(zhí)行,具有較高的開(kāi)發(fā)效率和運(yùn)行性能。后臺(tái)數(shù)據(jù)庫(kù)軟件選用微軟公司的大型數(shù)據(jù)庫(kù)服務(wù)器SQL Server 2000。因此在技術(shù)上是可行的。</p><p> 經(jīng)濟(jì)、社會(huì)效益分析:主要進(jìn)行成本-效益分析。從成本方面看,本系統(tǒng)的實(shí)現(xiàn),計(jì)算機(jī)和網(wǎng)絡(luò)硬件已經(jīng)擁有,由于安卓是個(gè)開(kāi)放的平臺(tái),Eclipse與AndroidSDK都是免費(fèi)提供的,網(wǎng)絡(luò)客戶端所用軟
22、件也都已經(jīng)配備,因此成本很低;從效益方面看,本客戶端主要是為廣大師生提供便利,暫時(shí)還不會(huì)帶來(lái)任何經(jīng)濟(jì)收益,不過(guò)經(jīng)過(guò)完善后可以考慮作為產(chǎn)品在社會(huì)上推廣,加上安卓系統(tǒng)的廣泛應(yīng)用,相信產(chǎn)品的盈利空間是很大的。</p><p> 法律可行性分析:從法律角度看,Android是個(gè)開(kāi)放的平臺(tái),代碼是開(kāi)放的,加上基于Android的教學(xué)管理系統(tǒng)主要為師生提供便利,作為畢業(yè)設(shè)計(jì),并不以盈利為目的,且是自主開(kāi)發(fā)設(shè)計(jì),因此不會(huì)在社
23、會(huì)上引起侵權(quán)或其它責(zé)任問(wèn)題,在法律上是可行的。</p><p> 開(kāi)發(fā)人員與進(jìn)程可行性分析:開(kāi)發(fā)人員都有一定的Java開(kāi)發(fā)功底,并且學(xué)習(xí)能力較強(qiáng)以及指導(dǎo)老師的悉心教導(dǎo)完全可以勝任此次開(kāi)發(fā)。由于此系統(tǒng)開(kāi)發(fā)并不是以盈利為目的,開(kāi)發(fā)周期可以相對(duì)較長(zhǎng),因此開(kāi)發(fā)進(jìn)程方面是可行的。</p><p><b> 2.3 結(jié)論意見(jiàn)</b></p><p>
24、 經(jīng)過(guò)幾個(gè)不同角度的可行性分析,可以確定該系統(tǒng)能夠開(kāi)發(fā)。</p><p> 2.4 開(kāi)發(fā)工具簡(jiǎn)介</p><p> 2.4.1 Android及SDK介紹</p><p> SDK指是軟件開(kāi)發(fā)包,被軟件開(kāi)發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開(kāi)發(fā)工具的集合。因此,Android SDk指的既是Android專屬的軟件開(kāi)發(fā)工具包
25、。</p><p> Android是Google公司推出的手機(jī)開(kāi)發(fā)平臺(tái),和iPhone相似,Android使用了WebKit瀏覽器引擎,具備觸摸屏、高級(jí)圖形顯示和上網(wǎng)功能,在手機(jī)上可以實(shí)現(xiàn)查看電子郵件、搜索網(wǎng)址和觀看視頻節(jié)目等功能,較iPhone等其他手機(jī)更強(qiáng)調(diào)搜索功能,界面更強(qiáng)大,可以說(shuō)是一種融入全部Web應(yīng)用的單一平臺(tái)。</p><p> Android手機(jī)系統(tǒng)最震撼人心之處在于
26、其開(kāi)放性和服務(wù)免費(fèi)。Android是一個(gè)對(duì)第三方軟件完全開(kāi)放的平臺(tái),開(kāi)發(fā)者在為其開(kāi)發(fā)程序時(shí) 擁有更大的自由度,突破了iPhone等只能添加為數(shù)不多的固定軟件的枷鎖,使得應(yīng)用的安裝更加方便;同時(shí)與Windows Mobile、Symbian等廠商不同,Android操作系統(tǒng)免費(fèi)向開(kāi)發(fā)人員提供,這樣可節(jié)省近三成成本。</p><p> 2.4.2 Eclipse簡(jiǎn)介</p><p> Ec
27、lipse是一個(gè)著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境軟件。最初主要用來(lái)Java語(yǔ)言開(kāi)發(fā),現(xiàn)在人們可以通過(guò)安裝插件使其作為C++、Python、PHP等其他語(yǔ)言的開(kāi)發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是隨著眾多插件的產(chǎn)生,使得Eclipse擁有很好的靈活性。許多軟件開(kāi)發(fā)商以Eclipse為框架開(kāi)發(fā)自己的IDE。</p><p> 雖然大多數(shù)用戶更加樂(lè)于將Eclipse當(dāng)作Java集成開(kāi)發(fā)環(huán)境來(lái)使用,但Ecl
28、ipse的作用已經(jīng)不僅限于此。Eclipse還是含有插件開(kāi)發(fā)環(huán)境,這個(gè)組件主允許希望擴(kuò)展Eclipse的軟件開(kāi)發(fā)人員構(gòu)建與Eclipse環(huán)境無(wú)縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對(duì)于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。</p><p> 這種平等和一致性并不僅限于Java開(kāi)發(fā)工具。盡管Eclipse是使用 Java 語(yǔ)言開(kāi)
29、發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如 C/C++ 和 COBOL 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。</p><p> 本系統(tǒng)即通過(guò)Eclipse,添加Android做插件,匹配上AndroidSDK進(jìn)行軟件的開(kāi)發(fā)。</p><p> 2.4.3 ASP.NET簡(jiǎn)介&l
30、t;/p><p> ASP.NET是.NET框架的一部分,是一種建立動(dòng)態(tài)Web應(yīng)用程序的技術(shù)。.NET框架(即.NET Framework)是支持生成、運(yùn)行下一代應(yīng)用程序和XML Web服務(wù)的內(nèi)部Windows組件,是Visual Studio.NET應(yīng)用程序開(kāi)發(fā)環(huán)境的核心。它定義了語(yǔ)言之間互操作的規(guī)則,以及如何把應(yīng)用程序編輯為可執(zhí)行代碼,還負(fù)責(zé)管理任何Visual Studio.NET語(yǔ)言創(chuàng)建的應(yīng)用程序的執(zhí)行。.
31、NET是Microsoft面向XML Web服務(wù)的平臺(tái),它使用一種統(tǒng)一的、個(gè)性化的方式將信息、設(shè)備和人員緊密地聯(lián)系在一起。</p><p> ASP.NET可以使用任何兼容.net平臺(tái)的語(yǔ)言進(jìn)行開(kāi)發(fā),具有較強(qiáng)的兼容性。由于ASP.NET是編譯執(zhí)行,因而比解釋執(zhí)行的ASP等開(kāi)發(fā)方式具有更高的效率,而且在面向?qū)ο笮浴?shù)據(jù)庫(kù)連接、大型站點(diǎn)應(yīng)用等方面都體現(xiàn)出較好的性能。此外,ASP.NET還可以利用.NET平臺(tái)架構(gòu)的諸
32、多優(yōu)越性能,如類型安全以及對(duì)XML、SOAP、WSDL等Internent標(biāo)準(zhǔn)的強(qiáng)大支持。</p><p> 在ASP.NET頁(yè)面中,可以使用ASP.NET服務(wù)器端控件來(lái)建立常用的用戶接口元素,并對(duì)其進(jìn)行編程;可以使用內(nèi)建可重用組件和自定義組件快速建立Web Form,從而使代碼大大簡(jiǎn)化。相對(duì)原有的Web技術(shù)而言,ASP.NET提供的編程模型和結(jié)構(gòu)有助于快速、高效地建立靈活、安全和穩(wěn)定的應(yīng)用程序。</p&
33、gt;<p> ASP.NET提供了一個(gè)統(tǒng)一的Web開(kāi)發(fā)模型,其中包括開(kāi)發(fā)人員生成企業(yè)級(jí)Web應(yīng)用程序所需的各種服務(wù)。ASP.NET也提供了一種新的編程模型和結(jié)構(gòu),可以生成伸縮性和穩(wěn)定性更好的應(yīng)用程序,并提供更好的安全保護(hù)。當(dāng)前,ASP.NET 2.0已逐漸被廣泛使用。</p><p> 本系統(tǒng)采用C#作為開(kāi)發(fā)語(yǔ)言,C#是.NET平臺(tái)的通用開(kāi)發(fā)工具,它能夠建造所有的.NET應(yīng)用。其固有的特性決定
34、了它是一種高效、安全、靈活的現(xiàn)代程序設(shè)計(jì)語(yǔ)言。C#與.NET平臺(tái)的結(jié)合足以為畢業(yè)設(shè)計(jì)綜合管理系統(tǒng)提供完整的解決方案。</p><p> 2.4.4 SQL Server 2000簡(jiǎn)介</p><p> 隨著社會(huì)信息化的不斷發(fā)展,人們面對(duì)的各種類型的數(shù)據(jù)信息正在呈現(xiàn)出爆炸式增長(zhǎng)的態(tài)勢(shì),因而對(duì)數(shù)據(jù)的安全存儲(chǔ)和高效管理具有越發(fā)明顯的重要性。存儲(chǔ)和管理數(shù)據(jù)需要使用數(shù)據(jù)庫(kù)管理系統(tǒng),不但需要后臺(tái)數(shù)
35、據(jù)庫(kù)對(duì)數(shù)據(jù)的安全存儲(chǔ),而且需要前臺(tái)應(yīng)用程序?qū)?shù)的方便高效管理。當(dāng)前的數(shù)據(jù)庫(kù)產(chǎn)品主要有Acess,MySql等小型數(shù)據(jù)庫(kù),以及 SQL Server,Oracle等大型數(shù)據(jù)庫(kù)。鑒于畢業(yè)設(shè)計(jì)管理系統(tǒng)的數(shù)據(jù)量,可以選擇SQL Server數(shù)據(jù)庫(kù)。</p><p> 畢業(yè)設(shè)計(jì)管理系統(tǒng)不但要存儲(chǔ)教師和學(xué)生的基本信息,而且要實(shí)現(xiàn)一些重要流程和必要操作,如課題的申請(qǐng)、審批和選擇,畢業(yè)設(shè)計(jì)時(shí)間表的安排、論文的評(píng)閱答辯以及在線答
36、疑等。這些除了需要對(duì)基本數(shù)據(jù)進(jìn)行存儲(chǔ)外,還需要開(kāi)發(fā)專門(mén)的數(shù)據(jù)庫(kù)系統(tǒng)來(lái)幫助對(duì)其進(jìn)行管理。畢業(yè)設(shè)計(jì)綜合管理系統(tǒng)需要實(shí)現(xiàn)數(shù)據(jù)庫(kù)的建立和連接、系統(tǒng)界面的設(shè)計(jì)以及各個(gè)功能模塊的設(shè)計(jì)和開(kāi)發(fā)。該系統(tǒng)的開(kāi)發(fā)過(guò)程主要包括需求分析、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、編碼設(shè)計(jì)、軟件測(cè)試等。系統(tǒng)采用模塊化開(kāi)發(fā)方法,每個(gè)模塊各自實(shí)現(xiàn)相應(yīng)的子功能,最后進(jìn)行集成,共同實(shí)現(xiàn)系統(tǒng)的功能。</p><p> 2.4.5 Visual Studio.NET 2
37、005簡(jiǎn)介</p><p> ASP.NET的開(kāi)發(fā)環(huán)境有多種選擇,該系統(tǒng)的開(kāi)發(fā)選擇Visual Studio.NET 2005。</p><p> Visual Studio.NET 2005是一套完整的開(kāi)發(fā)工具,用于生成ASP.NET Web應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。該環(huán)境提供了常用控件,直接拖動(dòng)的開(kāi)發(fā)方式提高了開(kāi)發(fā)效率。而且可以創(chuàng)建自定
38、義控件,使程序具有更好的擴(kuò)展性、可維護(hù)性以及重用性。此外,Visual Basic.NET、Visual C++.NET、Visual C#.NET和Visual J#.NET使用統(tǒng)一的集成開(kāi)發(fā)環(huán)境,該環(huán)境允許它們共享并創(chuàng)建混合語(yǔ)言解決方案;這些語(yǔ)言都利用.NET Framework的功能,它提供了對(duì)簡(jiǎn)化ASP.NET Web應(yīng)用程序和XML Web Services開(kāi)發(fā)關(guān)鍵技術(shù)的訪問(wèn)。因此,使用Visual Studio.NET 20
39、05作為開(kāi)發(fā)環(huán)境進(jìn)行高效開(kāi)發(fā)乃是最佳選擇。</p><p><b> 3 需求分析</b></p><p> 3.1 特性需求分析</p><p> 一個(gè)好的教學(xué)管理系統(tǒng)應(yīng)該具有一下特性:</p><p> (1)易操作和功能簡(jiǎn)單明確不令人誤解。一個(gè)良好的教學(xué)管理系統(tǒng)應(yīng)該功能明確,沒(méi)有二義性,用戶可以很明了的通
40、過(guò)界面明白各項(xiàng)功能的實(shí)現(xiàn)方法,而不是看到界面不知道各按鈕的具體用途,即操作簡(jiǎn)單,界面友好。學(xué)生可以根據(jù)手機(jī)界面或網(wǎng)頁(yè)界面很明白的進(jìn)行對(duì)簽到記錄,作業(yè)情況的查詢,并能夠?qū)⒆约旱姆答伡皶r(shí)提交給老師。</p><p> (2)軟件功能流暢,不拖沓。軟件登陸,連接網(wǎng)絡(luò)不能讓用戶等待時(shí)間過(guò)長(zhǎng),引起用戶的煩躁。軟件在運(yùn)行不能發(fā)生崩潰,卡頓等問(wèn)題,整個(gè)界面操作起來(lái)很流暢。</p><p> (3)系
41、統(tǒng)應(yīng)該容易維護(hù)以及更新。系統(tǒng)各個(gè)模塊設(shè)計(jì)應(yīng)該很明確,核心代碼處應(yīng)有必要的注釋,使得今后的軟件維護(hù),軟件更新等操作應(yīng)該能夠順利的進(jìn)行。 </p><p> 3.2 功能需求分析</p><p> 學(xué)生客戶端教學(xué)管理系統(tǒng)應(yīng)該能完成四種功能包括登錄功能,簽到情況查詢功能,作業(yè)情況以及評(píng)分情況查詢功能和向教師進(jìn)行反饋功能,并且能手機(jī)客戶端形式與網(wǎng)頁(yè)客戶端兩種形式實(shí)現(xiàn)上述功能,保證系統(tǒng)的正常運(yùn)行
42、。系統(tǒng)用例圖如圖3-1。</p><p> 圖3-1 教學(xué)信息管理系統(tǒng)用例圖</p><p> (1)登錄功能進(jìn)行學(xué)生身份的驗(yàn)證。手機(jī)客戶端把學(xué)生學(xué)號(hào)密碼通過(guò)網(wǎng)路傳遞給服務(wù)器,有服務(wù)器進(jìn)行數(shù)據(jù)庫(kù)查詢,如若學(xué)號(hào)和密碼匹配,則將學(xué)生信息和數(shù)據(jù)庫(kù)內(nèi)容傳遞到手機(jī)端,不匹配則返回錯(cuò)誤信息提示錯(cuò)誤。網(wǎng)頁(yè)客戶端相似,若學(xué)號(hào)密碼匹配,則進(jìn)入系統(tǒng),不匹配則拒絕登錄。系統(tǒng)用例圖如圖3-2。</p&
43、gt;<p> 圖3-2 登錄功能用例圖</p><p> (2)簽到情況查詢功能可以提供給學(xué)生查詢自己相應(yīng)課程的簽到情況,學(xué)生可以選擇查詢的課程名稱,查看各個(gè)課程的考勤時(shí)間,和相應(yīng)自己的簽到記錄。用例圖如3-3。</p><p> 圖3-3 簽到功能用例圖</p><p> (3)作業(yè)內(nèi)容評(píng)分情況查詢功能提供給學(xué)生查詢每個(gè)課程作業(yè)的情況,
44、學(xué)生通過(guò)選擇需要查詢的課程,查看此課程教師留下的作業(yè)的作業(yè)號(hào),日期和作業(yè)題目等內(nèi)容,并可以查詢自己在此項(xiàng)作業(yè)中得到的分?jǐn)?shù)。用例圖如圖3-4所示。</p><p> 圖3-4 作業(yè)功能用例圖</p><p> (4)反饋功能則是學(xué)生向教師提出意見(jiàn)和建議的平臺(tái),學(xué)生可以通過(guò)此平臺(tái),選擇想進(jìn)行反饋的課程,給課程老師留言,查詢修改和刪除以往的反饋內(nèi)容,課程老師可以通過(guò)教師客戶端查看學(xué)生留言。
45、用例圖如圖3-5所示。</p><p> 圖3-5 反饋功能用例圖</p><p><b> 3.3 數(shù)據(jù)流圖</b></p><p> 數(shù)據(jù)流圖描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換,它反映系統(tǒng)必須完成的邏輯功能。從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。教學(xué)管理系統(tǒng)的運(yùn)行同樣離不開(kāi)信息流
46、和數(shù)據(jù)流移動(dòng)變換,數(shù)據(jù)流圖的描繪可以幫助開(kāi)發(fā)者更好地理清整個(gè)程序的運(yùn)行過(guò)程和參數(shù)傳遞。</p><p> (1)學(xué)生登錄功能主要是在服務(wù)器端進(jìn)行的。學(xué)生用戶在登錄界面輸入學(xué)號(hào)和密碼,手機(jī)客戶端會(huì)通過(guò)網(wǎng)絡(luò)將學(xué)號(hào)和密碼傳送給服務(wù)器,服務(wù)器查詢數(shù)據(jù)庫(kù),驗(yàn)證學(xué)號(hào)和密碼是否與學(xué)生表中記錄相同,如若兩者和數(shù)據(jù)庫(kù)中信息正確,則將客戶端需要的數(shù)據(jù)庫(kù)文件和信息傳遞過(guò)去。登陸功能數(shù)據(jù)流圖如圖3-6。</p><
47、p> 圖3-6 登陸功能數(shù)據(jù)流圖</p><p> (2)手機(jī)客戶端中學(xué)生簽到功能通過(guò)查詢下載的數(shù)據(jù)庫(kù)文件實(shí)現(xiàn)。學(xué)生登陸成功后,學(xué)號(hào)信息會(huì)記錄在手機(jī)中,查詢數(shù)據(jù)庫(kù)是可以被引用,進(jìn)入簽到功能界面,選擇需要查看的課程,選擇完成后,系統(tǒng)會(huì)將課程名稱記錄下來(lái),根據(jù)學(xué)號(hào)和課程名稱信息查詢此課程學(xué)生用戶的簽到情況。簽到功能數(shù)據(jù)流圖如圖3-7。</p><p> 圖圖3-7 簽到功能數(shù)據(jù)
48、流圖</p><p> (3)在進(jìn)入作業(yè)功能界面時(shí),學(xué)號(hào)信息會(huì)被記錄下來(lái),學(xué)生選擇查詢的課程,記錄下課程名稱,根據(jù)學(xué)號(hào)與課程名稱查詢數(shù)據(jù)庫(kù),顯示出查詢到的作業(yè)信息,學(xué)生選擇某一個(gè)作業(yè),通過(guò)學(xué)號(hào)信息查詢自己的得分情況。作業(yè)功能數(shù)據(jù)流程如圖3-8。</p><p> 圖3-8 作業(yè)功能數(shù)據(jù)流圖</p><p> (4)同簽到功能和作業(yè)功能相同,進(jìn)入反饋界面時(shí),學(xué)
49、號(hào),姓名信息被記錄,學(xué)生選擇反饋的課程,記錄下課程名稱,根據(jù)學(xué)號(hào)和課程名稱查詢數(shù)據(jù)庫(kù),進(jìn)入反饋界面后,學(xué)生可以選擇直接對(duì)課程進(jìn)行添加反饋,也可以修改和刪除反饋信息,完成相關(guān)操作后,數(shù)據(jù)會(huì)上傳數(shù)據(jù)庫(kù),教師端通過(guò)查詢數(shù)據(jù)庫(kù)查看反饋信息。反饋功能數(shù)據(jù)流圖如圖3-9。</p><p> 圖3-9 作業(yè)功能數(shù)據(jù)流圖</p><p><b> 4 總體設(shè)計(jì)</b><
50、/p><p> 總體設(shè)計(jì)即對(duì)有關(guān)系統(tǒng)全局問(wèn)題的設(shè)計(jì),也就是設(shè)計(jì)系統(tǒng)總的處理方案,又稱系統(tǒng)概要設(shè)計(jì)。它包括:硬件配置設(shè)計(jì)、系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、代碼設(shè)計(jì)等內(nèi)容。軟件功能分解屬于下列軟件開(kāi)發(fā)中的總體設(shè)計(jì)階段。</p><p> 4.1 硬件配置設(shè)計(jì)</p><p><b> (1)手機(jī)客戶端:</b></p><p&g
51、t; Android系統(tǒng)要求:Android 2.3.3及其以上。</p><p> 手機(jī)配置:內(nèi)存 256M及其以上。</p><p> 主頻 600HZ及其以上。</p><p><b> (2)網(wǎng)頁(yè)客戶端:</b></p><p> 系統(tǒng)要求:window xp,vista以及win7,Linux等<
52、;/p><p> 硬件配置:處理器:奔騰4處理器及以上;</p><p> 內(nèi)存:1G及其以上。</p><p> 硬盤(pán):20G及其以上。</p><p> 4.2 系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)</p><p> 教學(xué)管理系統(tǒng)學(xué)生客戶端主要提供學(xué)生登陸,查詢簽到情況,查詢作業(yè)情況,反饋信息四項(xiàng)功能,因此可以將系統(tǒng)分為四個(gè)模塊
53、:登陸模塊,簽到模塊,作業(yè)模塊,反饋模塊。</p><p> 圖4-1 考勤系統(tǒng)結(jié)構(gòu)圖</p><p> 系統(tǒng)的主要功能概述:</p><p> (1)登錄模塊包括驗(yàn)證信息功能和網(wǎng)絡(luò)傳遞功能,學(xué)生可以通過(guò)此模塊輸入學(xué)號(hào)密碼,通過(guò)網(wǎng)絡(luò)將輸入的學(xué)號(hào)和密碼傳遞給服務(wù)器,服務(wù)器通過(guò)搜索數(shù)據(jù)庫(kù)驗(yàn)證密碼和學(xué)號(hào)是否匹配,若不匹配則傳遞提示錯(cuò)誤信息給相應(yīng)客戶端,若匹配則傳遞
54、給手機(jī)客戶端需要的數(shù)據(jù)庫(kù)文件和學(xué)生信息,網(wǎng)頁(yè)客戶端則直接進(jìn)入功能界面。</p><p> (2)簽到模塊包括選擇課程功能和查看簽到信息功能。學(xué)生進(jìn)入界面后可以選擇需要查詢的課程,然后通過(guò)課程名稱和學(xué)號(hào)查詢數(shù)據(jù)庫(kù),搜索出登陸學(xué)生和對(duì)應(yīng)課程的簽到信息,顯示在簽到信息界面。</p><p> (3)作業(yè)模塊包括查看作業(yè)內(nèi)容功能和查看作業(yè)評(píng)分內(nèi)容。學(xué)生進(jìn)入作業(yè)查詢界面后,可以選擇需要查詢的課程
55、,在數(shù)據(jù)庫(kù)中搜索對(duì)應(yīng)課程的作業(yè)信息,顯示在作業(yè)情況界面,點(diǎn)擊單個(gè)作業(yè)情況,可以查看作業(yè)題目的具體內(nèi)容,并查詢數(shù)據(jù)庫(kù),顯示該作業(yè)的登錄學(xué)生的個(gè)人得分情況。</p><p> (4)反饋模塊包括添加反饋信息功能,刪除反饋信息功能和修改反饋信息功能。學(xué)生先選擇需要反饋的課程,然后進(jìn)入反饋信息界面。在反饋信息可以進(jìn)行添加,修改和刪除反饋信息功能,添加修改刪除完成后,對(duì)數(shù)據(jù)庫(kù)進(jìn)行更改,然后由網(wǎng)絡(luò)發(fā)送信息使服務(wù)器也進(jìn)行相應(yīng)
56、更改,使客戶端和數(shù)據(jù)庫(kù)端信息實(shí)現(xiàn)同步。</p><p><b> 4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 4.3.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</p><p> 實(shí)體-聯(lián)系圖,即E-R圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型,在數(shù)據(jù)庫(kù)系統(tǒng)概論中屬于概念設(shè)計(jì)階段。E-R圖的設(shè)計(jì)與建立,可以幫助開(kāi)發(fā)者更加合理的去制定
57、數(shù)據(jù)庫(kù)內(nèi)容,使得在開(kāi)發(fā)過(guò)程中對(duì)數(shù)據(jù)庫(kù)的各種操作(添加,查詢,修改或刪除)變得簡(jiǎn)單易行。</p><p> 教學(xué)管理系統(tǒng)學(xué)生客戶端的實(shí)體聯(lián)系圖的實(shí)體主要包括學(xué)生,班級(jí),課程,簽到記錄,作業(yè),留言板和教師實(shí)體。其中,班級(jí)和學(xué)生之間是一對(duì)多的關(guān)系;簽到記錄和學(xué)生之間是一對(duì)多的關(guān)系;教師與簽到記錄之間是一對(duì)多的關(guān)系;課程與教師之間是一對(duì)多的關(guān)系;教師與作業(yè)之間是一對(duì)多的關(guān)系;課程與作業(yè)之間是一對(duì)多的關(guān)系;學(xué)生與留言記錄
58、之間是一對(duì)多的關(guān)系;教師與留言記錄之間是一對(duì)多的關(guān)系。由于每個(gè)課程都可以有很多學(xué)生選,而每個(gè)學(xué)生可以選很多課程,所以兩者之間是多對(duì)多的關(guān)系;由于每個(gè)學(xué)生都要有評(píng)分,因此作業(yè)與學(xué)生之間有對(duì)應(yīng)關(guān)系,而每個(gè)作業(yè)對(duì)應(yīng)的是一個(gè)班級(jí)所有學(xué)生的,而每個(gè)學(xué)生可以有很多作業(yè),因此作業(yè)和學(xué)生之間是多對(duì)多的關(guān)系。教學(xué)管理系統(tǒng)的實(shí)體聯(lián)系圖如圖4-2所示。</p><p> 圖4-2 教學(xué)管理系統(tǒng)E-R圖</p><
59、;p><b> 部分實(shí)體圖如下:</b></p><p> (1)學(xué)生實(shí)體圖包括四個(gè)屬性,其中包括學(xué)號(hào),姓名,密碼以及班級(jí)號(hào),學(xué)號(hào)密碼兩個(gè)屬性可以用來(lái)作為身份驗(yàn)證,供登錄模塊使用,班級(jí)號(hào)作為與班級(jí)實(shí)體對(duì)應(yīng),學(xué)號(hào)與姓名實(shí)現(xiàn)與其他實(shí)體連接。學(xué)生實(shí)體圖如圖4-3。</p><p> 圖4-3 學(xué)生實(shí)體圖</p><p> (2)課程實(shí)
60、體圖包括兩個(gè)屬性,分別為課程名稱與課程號(hào)。兩個(gè)屬性可以連接學(xué)生實(shí)體,教師實(shí)體以及作業(yè)實(shí)體。課程實(shí)體如圖4-4所示。</p><p> 圖4-4 課程實(shí)體圖</p><p> (3)班級(jí)實(shí)體圖包括兩個(gè)屬性,分別為班級(jí)名稱與班級(jí)號(hào)。兩個(gè)屬性可以連接學(xué)生實(shí)體。班級(jí)實(shí)體如圖4-5所示。</p><p> 圖4-5 班級(jí)實(shí)體圖</p><p>
61、; (4)作業(yè)實(shí)體圖包括作業(yè)號(hào),課程號(hào),日期,班級(jí)號(hào)以及作業(yè)題目五項(xiàng)屬性。作業(yè)題目記錄著作業(yè)的詳細(xì)內(nèi)容,日期記錄者作業(yè)的日期,課程號(hào)和班級(jí)對(duì)應(yīng)著哪個(gè)班哪個(gè)課程留的作業(yè),作業(yè)號(hào)聯(lián)系著學(xué)生,教師以及課程實(shí)體。作業(yè)實(shí)體圖如圖4-6。</p><p> 圖4-6 作業(yè)實(shí)體圖</p><p> (5)留言記錄實(shí)體圖包括內(nèi)容編號(hào),學(xué)生編號(hào),班級(jí)號(hào),日期,課程號(hào),反饋內(nèi)容六個(gè)屬性。學(xué)生號(hào),班級(jí)號(hào)
62、和課程號(hào)記錄著哪個(gè)班級(jí)的哪個(gè)課程的哪個(gè)學(xué)生留下的反饋信息,日期對(duì)應(yīng)著反饋信息時(shí)間,通過(guò)內(nèi)容號(hào)找出某個(gè)留言信息。實(shí)體圖如圖4-7。</p><p> 圖4-7 留言記錄實(shí)體圖</p><p> (6)簽到記錄實(shí)體圖包括學(xué)生編號(hào),班級(jí)名,日期,課程名,到否五個(gè)屬性。學(xué)生號(hào),班級(jí)名和課程名記錄著哪個(gè)班級(jí)的哪個(gè)課程的哪個(gè)學(xué)生的簽到信息,日期對(duì)應(yīng)著學(xué)生簽到的時(shí)間,到否記錄該學(xué)生此次考勤是否簽到
63、。實(shí)體圖如圖4-8。</p><p> 圖4-8 簽到記錄實(shí)體圖</p><p> (7)教師實(shí)體圖包括教師號(hào),密碼,以及教師姓名三項(xiàng)屬性。教師實(shí)體主要應(yīng)用于教師客戶端,學(xué)生客戶端不涉及到教師實(shí)體。實(shí)體圖如圖4-9。</p><p> 圖4-9 教師實(shí)體圖</p><p> 4.3.2 數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)設(shè)計(jì)</p>
64、<p> 根據(jù)以上的實(shí)體屬性集可以建立相應(yīng)的數(shù)據(jù)庫(kù)表結(jié)構(gòu),其中教學(xué)管理系統(tǒng)學(xué)生客戶端主要用到的數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下所示。</p><p> (1)學(xué)生表(student)包括學(xué)號(hào),姓名,密碼,與班級(jí)號(hào)四個(gè)字段。教學(xué)管理系統(tǒng)學(xué)生客戶端需要通過(guò)查詢學(xué)生表驗(yàn)證學(xué)生信息,查詢登陸者是否屬于學(xué)校人員,并將學(xué)生信息的部分內(nèi)容反饋給客戶端。學(xué)生表如表4-1。</p><p><b>
65、 表4-1 學(xué)生表</b></p><p> (2)班級(jí)表(class)包括班級(jí)號(hào)與班級(jí)名兩個(gè)字段。教學(xué)管理系統(tǒng)無(wú)論學(xué)生端還是教師端都需要查詢班級(jí)內(nèi)容,將班級(jí)內(nèi)容從學(xué)生表和教師表中提取出來(lái)可以簡(jiǎn)化數(shù)據(jù)庫(kù)的相關(guān)操作。班級(jí)表如表4-2所示。</p><p><b> 表4-2 班級(jí)表</b></p><p> (3)課程表(
66、course)包括課程編號(hào)與課程名兩個(gè)字段。學(xué)生無(wú)論是查詢簽到情況,作業(yè)情況還是反饋信息,都需要選擇課程,因此課程表是必須的。課程表如表4-3。</p><p><b> 表4-3 課程表</b></p><p> (4)選課表(cs)包括學(xué)生編號(hào)和課程信息兩個(gè)字段。由于學(xué)生與課程之間是多對(duì)多的關(guān)系,因此需要在兩個(gè)表之間添加一張選課表聯(lián)系兩張表。選課表如表4-4
67、:</p><p><b> 表4-4 選課表</b></p><p> (5)作業(yè)表(hw)是用來(lái)記錄每個(gè)班級(jí)作業(yè)的具體情況,學(xué)生查看作業(yè)內(nèi)容需要查詢此表。作業(yè)表包括作業(yè)編號(hào),課程編號(hào),班級(jí)號(hào),日期和題目五個(gè)字段其中問(wèn)題內(nèi)容可以為空,hwid要求每次自增1。 作業(yè)表如表4-5。</p><p><b> 表4-5 作業(yè)表&
68、lt;/b></p><p> (6)作業(yè)表(hwdata)包括作業(yè)編號(hào),學(xué)生編號(hào),分?jǐn)?shù)三個(gè)字段,其中分?jǐn)?shù)采用5分制。由于作業(yè)與學(xué)生之間是多對(duì)多的關(guān)系,因此需要?jiǎng)?chuàng)建一個(gè)作業(yè)記錄表來(lái)關(guān)聯(lián)兩個(gè)表,學(xué)生可以通過(guò)查詢此表來(lái)查詢自己的成績(jī)。作業(yè)記錄表如表4-6。</p><p> 表4-6 作業(yè)記錄表</p><p> (7)簽到記錄表(signdata)包括五
69、個(gè)字段,分別為學(xué)生編號(hào),課程名稱,日期,班級(jí)名稱和到否。學(xué)生可以通過(guò)這個(gè)表來(lái)查詢自己每個(gè)課程的簽到情況。簽到記錄表如表4-7。</p><p> 表4-7 簽到記錄表</p><p> (8)留言記錄(feedback)包括內(nèi)容編號(hào),學(xué)生編號(hào),課程名稱,日期以及反饋內(nèi)容五個(gè)字段,其中反饋內(nèi)容允許為空,內(nèi)容編號(hào)每次自增1。學(xué)生可以通過(guò)增加,修改刪除此表內(nèi)容對(duì)教師進(jìn)行反饋。留言板表如表4
70、-8。</p><p><b> 表4-8 留言表</b></p><p> 以上將教務(wù)處子系統(tǒng)中數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)的E-R圖轉(zhuǎn)換成SQLITE與Microsoft SQL Server2000 所支持的數(shù)據(jù)模型相符合的結(jié)構(gòu),只需使用數(shù)據(jù)定義語(yǔ)言將數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果嚴(yán)格描述出來(lái),再經(jīng)過(guò)調(diào)試產(chǎn)生目標(biāo)模式就可以組織數(shù)據(jù)入庫(kù),進(jìn)行數(shù)據(jù)庫(kù)實(shí)施。</p&
71、gt;<p><b> 4.4 代碼設(shè)計(jì)</b></p><p> 在代碼設(shè)計(jì)這部分,將具體設(shè)計(jì)整個(gè)系統(tǒng)所用的大概邏輯框架,為詳細(xì)設(shè)計(jì)提供必要的參考,以及各模塊編程的規(guī)范,參數(shù)的傳遞以及函數(shù)的接口。</p><p> (1)首先,全局變量的傳遞。學(xué)生登陸后要記錄該學(xué)生用戶個(gè)人信息,以便完成后續(xù)的功能查詢,因此學(xué)生的學(xué)號(hào)信息要傳遞到studentid
72、這個(gè)全局變量中,其他功能查詢時(shí),接受此變量的值即可使用學(xué)號(hào)查詢,學(xué)生姓名傳遞到studentname這個(gè)全局變量中,學(xué)生所在班級(jí)號(hào)傳遞到classid中。同樣,在每個(gè)功能選擇查詢課程的時(shí)候,可將課程名稱傳遞到coursename這個(gè)變量中,其他函數(shù)調(diào)用時(shí),即可接受此變量的值。</p><p> (2)所有的Activity類學(xué)要寫(xiě)在一個(gè)activity的package內(nèi),所有的數(shù)據(jù)庫(kù)操作函數(shù)都要寫(xiě)在一個(gè)DAO的
73、package,所有的結(jié)構(gòu)類都要寫(xiě)在一個(gè)model的package中,每個(gè)類的名字和函數(shù)的名字都要用易讀的名稱,以便系統(tǒng)的修改,更行等操作。</p><p> (3)在重要的函數(shù)和類成員旁邊加上注釋,增加可讀性。</p><p> (4)學(xué)生表儲(chǔ)存在“check.db”的數(shù)據(jù)庫(kù)文件,供登陸時(shí)查詢。</p><p> (5)數(shù)據(jù)庫(kù)的其他表統(tǒng)一儲(chǔ)存在數(shù)據(jù)庫(kù)文件“m
74、ydata.db”中,以便調(diào)用。</p><p> (6)每個(gè)函數(shù)的代碼應(yīng)控制在50行以內(nèi),參數(shù)傳遞控制在三個(gè)以內(nèi),以便增加系統(tǒng)可讀性。</p><p> (7)服務(wù)器端接收客戶端請(qǐng)求端號(hào)為4567,向客戶端發(fā)送信息端號(hào)為4568</p><p> 通過(guò)總體設(shè)計(jì)對(duì)軟件的結(jié)構(gòu)框架有了整體的認(rèn)識(shí),對(duì)系統(tǒng)的每個(gè)模塊的功能都有了清晰的了解。下面便可以通過(guò)詳細(xì)設(shè)計(jì)來(lái)實(shí)現(xiàn)
75、整個(gè)系統(tǒng)。</p><p><b> 5 詳細(xì)設(shè)計(jì)</b></p><p><b> 5.1 手機(jī)客戶端</b></p><p> 5.1.1 學(xué)生登陸模塊</p><p> 手機(jī)客戶端首先下載或更新“mydata.db”更新本地?cái)?shù)據(jù)庫(kù)。然后客戶端通過(guò)查詢本地?cái)?shù)據(jù)庫(kù)檢驗(yàn)用戶輸入的登錄信息是
76、否正確,如若信息不正確則傳遞提示錯(cuò)誤信息,由客戶端Toast出錯(cuò)誤提示(如圖5-2),若信息正確,提示登陸成功(如圖5-3),將學(xué)號(hào)傳遞給studentid,學(xué)生姓名傳遞給studentname,班級(jí)號(hào)傳遞給classid,,并進(jìn)入下一功能界面。</p><p> 網(wǎng)絡(luò)功能使用Socket來(lái)傳遞客戶端和服務(wù)器端的信息??蛻舳诵枰猄ocket這個(gè)類的對(duì)象,而服務(wù)器端同樣需要一個(gè)叫ServerSocket的類對(duì)象,
77、由客戶端發(fā)送一個(gè)Socket請(qǐng)求,服務(wù)器端的ServerSocket監(jiān)聽(tīng)計(jì)算機(jī)的某一個(gè)端口號(hào)(4567),監(jiān)聽(tīng)到客戶端發(fā)送的請(qǐng)求之后,那么服務(wù)器端和客戶端通訊通道就建立起來(lái)了,此時(shí)客戶端和服務(wù)器端可同時(shí)向?qū)Ψ桨l(fā)送數(shù)據(jù)及相應(yīng)信息。客戶端發(fā)送數(shù)據(jù)需要用到IO流里面的OutputStream,通過(guò)OutputStream將數(shù)據(jù)發(fā)送給服務(wù)器端,服務(wù)器端用InputStream來(lái)讀取客戶端當(dāng)中用OutputStream所寫(xiě)入的數(shù)據(jù),同樣,服務(wù)器端
78、想將數(shù)據(jù)庫(kù)文件發(fā)送給客戶端時(shí),那么就使用OutputStream寫(xiě)出數(shù)據(jù),在客戶端通過(guò)InputStream把服務(wù)器端當(dāng)中通過(guò)OutputStream所寫(xiě)入的數(shù)據(jù)給它讀取出來(lái)。</p><p> 圖5-1 登錄界面</p><p> 圖5-2 登錄失敗提示</p><p> 圖5-3 登錄成功提示</p><p> 查詢登錄信息
79、的SQL語(yǔ)句為:(例如:服務(wù)器端接收的學(xué)號(hào)為sid,密碼為pword)</p><p> Select studentname,password</p><p> From student </p><p> Where studentid = sid</p><p> 若數(shù)據(jù)庫(kù)中無(wú)sid對(duì)應(yīng)信息,則返回錯(cuò)誤信息,若有,服務(wù)器端驗(yàn)證p
80、assword=pword,匹配則返回成功信息,傳遞“mydata.db”,不匹配則返回錯(cuò)誤信息。</p><p> 5.1.2 簽到模塊</p><p> 簽到模塊主要功能是查看登錄學(xué)生的各門(mén)課程課程的簽到情況。</p><p> 首先,先搜索該學(xué)生都學(xué)習(xí)了哪些課程,查詢課程名稱的SQL語(yǔ)句如下:</p><p> (例如:stud
81、entid=’001’)</p><p> Select coursename as _id </p><p> From course,cs </p><p> Where studentid=’001’ and course.courseid=cs.courseid</p><p> 查找到的課程名通過(guò)listview顯示在界面中
82、。</p><p> 圖5-4 簽到模塊選擇班級(jí)界面</p><p> 點(diǎn)擊課程名稱,將執(zhí)行操作:</p><p> 將點(diǎn)擊的listview中的課程名傳遞到coursename,即</p><p> String coursename=((TextView)view).getText().toString();</p>
83、<p> 然后執(zhí)行如下SQL語(yǔ)句查詢簽到信息:</p><p> (例如:點(diǎn)擊為數(shù)據(jù)結(jié)構(gòu))</p><p> Select datetime as _id,sign </p><p> From signdata </p><p> Where coursename=’數(shù)據(jù)結(jié)構(gòu)’ and studentid=’001’
84、</p><p> 便搜索到如圖5-5:</p><p> 圖5-5 個(gè)人簽到情況界面</p><p> 5.1.3 作業(yè)模塊</p><p> 作業(yè)模塊主要功能是查看登錄學(xué)生的各個(gè)科目的作業(yè)情況情況,學(xué)生可以選擇科目,查看對(duì)應(yīng)科目所留作業(yè)的時(shí)間內(nèi)容和自己得到的分?jǐn)?shù)。</p><p> 首先通過(guò)數(shù)據(jù)庫(kù)搜索到
85、學(xué)生所學(xué)課程。點(diǎn)擊圖5-6界面中的課程:</p><p> 圖5-6 作業(yè)模塊選擇班級(jí)界面</p><p> 同簽到模塊一樣,將課程名傳到coursename中,然后由課程名稱coursename找到課程編號(hào):(例如:coursename=’08信計(jì)’)</p><p> Select courseid </p><p> From
86、 course </p><p> Where coursename=’08信計(jì)’</p><p> 由courseid以及classid查詢班級(jí)中留下的作業(yè):</p><p> (例如:courseid=’08信計(jì)’,classid=’001’)</p><p> select hwid as _id,datetime,questi
87、on </p><p><b> from hw </b></p><p> where classid=’001’ and courseid=’08信計(jì)’</p><p> 將轉(zhuǎn)到作業(yè)歷史界面:</p><p> 圖5-7 作業(yè)信息界面</p><p> 點(diǎn)擊單個(gè)作業(yè)記錄,執(zhí)行如下S
88、QL語(yǔ)句:(例如:hwid=’0001’,studentid=’001’)</p><p> Select score </p><p> From hwdata </p><p> Where hwid=’0001’ and studentid=’001’</p><p> 找到學(xué)生得分后顯示question和score的內(nèi)容,如圖
89、5-8所示:</p><p> 圖5-8 作業(yè)題目和得分</p><p> 5.1.4 反饋模塊</p><p> 反饋模塊主要功能是進(jìn)行學(xué)生對(duì)教師上課內(nèi)容或作業(yè)內(nèi)容進(jìn)行反饋,將自己的疑問(wèn)好的意見(jiàn)和建議提交給老師,供老師查看。這個(gè)模塊可以完成學(xué)生進(jìn)行反饋信息的增加,刪除和修改功能。</p><p> 同簽到模塊和作業(yè)模塊相同,一開(kāi)始
90、用數(shù)據(jù)庫(kù)選出學(xué)生所學(xué)科目。</p><p> 圖5-8 反饋功能選擇班級(jí)界面</p><p> 課程選擇完成后,將科目名稱傳遞到coursename中,例如coursename=離散數(shù)學(xué)。</p><p> 在數(shù)據(jù)庫(kù)中搜索登錄學(xué)生先前發(fā)表的反饋SQL語(yǔ)句如下:</p><p> Select context</p>&
91、lt;p> From feedback</p><p> Where studentid=’001’ and coursename=’離散數(shù)學(xué)’</p><p> 然后進(jìn)入反饋界面,如下圖5-9:</p><p> 圖5-9 反饋功能界面</p><p> 在文本框中輸入需要進(jìn)行的反饋,點(diǎn)擊反饋按鈕,將輸入信息寫(xiě)入數(shù)據(jù)庫(kù),判
92、斷數(shù)據(jù)庫(kù)是否為空,為空則插入fdid=1,不為空則不用插入fdid。</p><p> 添加反饋信息的SQL語(yǔ)句如下:</p><p> Insert into feedback </p><p> (fdid,studentid,coursename,datetime,context)</p><p> Values (’1’,’0
93、01’,’離散數(shù)學(xué)’,’2012-4-28’,’第一個(gè)問(wèn)題不會(huì)’)</p><p> 點(diǎn)擊手機(jī)menu鍵,屏幕底端會(huì)出現(xiàn)修改和刪除按鈕,選中所要?jiǎng)h除和修改的內(nèi)容,可以進(jìn)行對(duì)反饋內(nèi)容的修改和刪除。</p><p> 刪除反饋信息的SQL語(yǔ)句:</p><p> Delete from feedback </p><p> Where f
94、did =_id</p><p> 修改反饋信息的SQL語(yǔ)句:</p><p> Udpate feedback </p><p> Set context=’第二個(gè)問(wèn)題不會(huì)’</p><p> where sortid=_id; </p><p> 每次更新數(shù)據(jù)庫(kù),則發(fā)送完畢后通過(guò)socket將數(shù)據(jù)庫(kù)語(yǔ)句
95、發(fā)送給服務(wù)器端,并使服務(wù)器端進(jìn)行數(shù)據(jù)庫(kù)更新,使手機(jī)客戶端的信息與服務(wù)器端信息實(shí)現(xiàn)同步。</p><p> 至此,手機(jī)客戶端的主要功能已經(jīng)實(shí)現(xiàn),軟件的代碼編寫(xiě)思路,數(shù)據(jù)庫(kù)查詢語(yǔ)句和界面設(shè)計(jì)都已經(jīng)很清晰得以闡述,需求中的要求都得以了實(shí)現(xiàn)。</p><p> 5.2 服務(wù)器端模塊</p><p> 5.2.1 通訊數(shù)據(jù)格式定義</p><p>
96、; 服務(wù)器端主要用來(lái)接收客戶端發(fā)來(lái)的信息,進(jìn)行相應(yīng)的操作,并將數(shù)據(jù)返回給客戶端,同時(shí)對(duì)服務(wù)器端數(shù)據(jù)庫(kù)進(jìn)行管理。</p><p> 本系統(tǒng)利用Socket機(jī)制實(shí)現(xiàn)服務(wù)器端與客戶端之間數(shù)據(jù)的傳送,并且要對(duì)數(shù)據(jù)格式進(jìn)行規(guī)范。服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的格式定義為表5-1的形式。</p><p> 表5-1 客戶端向服務(wù)器端發(fā)送數(shù)據(jù)的格式</p><p> 頭信息定
97、義為:0該信息為請(qǐng)求下載數(shù)據(jù)庫(kù)文件和傳遞用戶參數(shù),1該信息為請(qǐng)求添加數(shù)據(jù),2該信息為請(qǐng)求刪除數(shù)據(jù),3該信息為請(qǐng)求刪除數(shù)據(jù)。</p><p> 服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的格式定義為表5-2的形式。</p><p> 表5-2 服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的格式</p><p> 頭信息定義為:1該信息為數(shù)據(jù)庫(kù)文件,2該信息為操作返回信息。</p>&
98、lt;p> 5.2.2 接收客戶端發(fā)來(lái)的請(qǐng)求信息功能模塊</p><p> 服務(wù)器端接收客戶端的請(qǐng)求信息,通過(guò)建立一個(gè)一直運(yùn)行的線程保持監(jiān)聽(tīng)客戶端發(fā)來(lái)的請(qǐng)求信息。部分代碼如下:</p><p> n private class ServerThread extends Thread {//接收信息線程</p><p>
99、; public void run()</p><p> { //聲明一個(gè)ServerSocket對(duì)象</p><p> ServerSocket server= null;</p><p> while(true){//無(wú)線循環(huán)</p><p><b> try{</b></p>&l
100、t;p> server = new ServerSocket(4567);//定義接受端口</p><p> client = server.accept();//</p><p> in = new BufferedReader(new InputStreamReader(</p><p> client.getInputStream()));//定
101、義輸入流</p><p> this.request = in.readLine();//獲取信息</p><p> this.head = this.request.substring(0,1);//剝離頭信息</p><p> if(this.head.equals(“0”)){//判斷頭信息</p><p><b>
102、…</b></p><p><b> }</b></p><p><b> …</b></p><p><b> }</b></p><p> 數(shù)據(jù)庫(kù)參數(shù)請(qǐng)求格式如下:(以添加為例)</p><p> Insert into tab
103、le1,table2,table3</p><p> (context1,context2,context3,context4,context5,context6,</p><p> context7,context8,context9,context10)</p><p> Values (?,?,?,?,?)</p><p> 在
104、本系統(tǒng)所用添加刪除修改最多不超過(guò)三個(gè)表,添加內(nèi)容不會(huì)超過(guò)10個(gè)內(nèi)容,傳遞數(shù)據(jù)時(shí)參數(shù)形式為:</p><p> data[]=new byte[1024],</p><p> data[]={“table1”, “table2” , “table3”,“context1” ,“context2” ,</p><p> “context3” ,“context4”
105、 ,“context5” ,“context6” ,“context7” ,</p><p> “context8” ,“context9” ,“context10”}</p><p> 其中若table或context為空,我們統(tǒng)一設(shè)定其為-1。</p><p> 同樣,修改,刪除形式如上</p><p> 5.2.3 發(fā)送返回?cái)?shù)據(jù)
106、模塊</p><p> 在服務(wù)器端接收到客戶端發(fā)來(lái)的請(qǐng)求時(shí),服務(wù)器端將從數(shù)據(jù)庫(kù)中查詢相關(guān)內(nèi)容返回給客戶端。</p><p> 將模擬器的4567端口綁定到4568端口,代碼如下:</p><p> Runtime.getRun().exec(this.ADB_PATH+”forward tcp:4568 tcp:4567”);</p><p
107、> Qizhong ADB_PATH為adb即為Android Debug Bridge所在路徑。綁定端口后,想模擬器4567端口發(fā)送的信息其實(shí)是通過(guò)4568端口發(fā)送的。</p><p> 服務(wù)器端發(fā)送返回?cái)?shù)據(jù)的代碼如下:</p><p> Socket client=new Socket(“l(fā)ocalhost”,4567);</p><p> Obj
108、ectOutputStream out=new ObjectOutputStream(client.getOutputSrtream());</p><p> Out.writeObject(data);//data為數(shù)據(jù)內(nèi)容</p><p><b> 5.3 網(wǎng)頁(yè)客戶端</b></p><p> 由于考慮到學(xué)生經(jīng)濟(jì)條件的不平均,不能保證
109、每個(gè)學(xué)生都能擁有一部Android手機(jī),以至于部分學(xué)生不能使用此軟件,導(dǎo)致學(xué)生不能正常查看自己作業(yè)簽到情況,不能將好的建議意見(jiàn)提交給老師,影響正常的學(xué)習(xí)生活,網(wǎng)頁(yè)學(xué)生客戶端是必要的。</p><p> 網(wǎng)頁(yè)客戶端的主要功能同手機(jī)客戶端的功能大體相似,分為五個(gè)模塊:登陸模塊,功能選擇模塊,簽到模塊,作業(yè)模塊以及反饋模塊。</p><p> 5.3.1 登錄模塊</p>&l
110、t;p> 登錄模塊同樣用于學(xué)生身份的驗(yàn)證,在服務(wù)器端驗(yàn)證用戶名與密碼正確與否。SQL語(yǔ)句較手機(jī)客戶端稍有不同。</p><p> 例:學(xué)號(hào):001,密碼:1234的學(xué)生信息查詢SQL語(yǔ)句為:</p><p><b> Select *</b></p><p> From student</p><p>
111、Where studentid=’001’ and password=’1234’</p><p> 若查找到學(xué)生信息則登陸成功,否則,登錄失敗。</p><p> 網(wǎng)頁(yè)客戶端登陸界面如圖5-10。</p><p> 圖5-10 網(wǎng)頁(yè)端登陸界面</p><p> 5.3.2 功能選擇模塊</p><p>
112、此模塊是較手機(jī)客戶端多出的一個(gè)小模塊,由于手機(jī)客戶端可用TabHost分頁(yè)顯示出三個(gè)模塊,網(wǎng)頁(yè)客戶端受到網(wǎng)頁(yè)制作的限制,只得添加一個(gè)功能選擇模塊實(shí)現(xiàn)各功能頁(yè)面的跳轉(zhuǎn)。這里使用RadioButton選擇頁(yè)面的跳轉(zhuǎn)。</p><p> 功能選擇界面如圖5-11。</p><p> 圖5-11 選擇功能頁(yè)面</p><p> 5.3.3 簽到模塊</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于安卓系統(tǒng)的考勤系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)論文--基于安卓系統(tǒng)的拼圖游戲設(shè)計(jì)
- 畢業(yè)論文范文——基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)
- 基于安卓android學(xué)生考勤信息管理系統(tǒng)
- 考勤系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)論文 基于安卓系統(tǒng)的個(gè)人理財(cái)系統(tǒng)
- 【zs精品】【畢業(yè)論文】基于安卓系統(tǒng)的記事本(全套)
- 基于安卓的研海無(wú)涯系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于安卓的研海無(wú)涯系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于安卓平臺(tái)的手機(jī)計(jì)步器畢業(yè)論文
- 基于安卓平臺(tái)的手機(jī)計(jì)步器畢業(yè)論文
- 畢業(yè)論文——基于安卓坦克大戰(zhàn)游戲
- 基于安卓的手機(jī)游戲開(kāi)發(fā)畢業(yè)論文
- 基于安卓的音樂(lè)播放器系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 考勤管理系統(tǒng)畢業(yè)論文
- 考勤管理系統(tǒng)畢業(yè)論文
- 基于安卓的手機(jī)貼身秘書(shū)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于安卓坦克大戰(zhàn)游戲畢業(yè)論文.doc
- 基于安卓的個(gè)人記賬本系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 本科畢業(yè)論文基于安卓系統(tǒng)的拼圖游戲的設(shè)計(jì)與開(kāi)發(fā)
評(píng)論
0/150
提交評(píng)論