基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)-學(xué)生客戶端的設(shè)計與實(shí)現(xiàn)研究報告_第1頁
基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)-學(xué)生客戶端的設(shè)計與實(shí)現(xiàn)研究報告_第2頁
基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)-學(xué)生客戶端的設(shè)計與實(shí)現(xiàn)研究報告_第3頁
基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)-學(xué)生客戶端的設(shè)計與實(shí)現(xiàn)研究報告_第4頁
基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)-學(xué)生客戶端的設(shè)計與實(shí)現(xiàn)研究報告_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于安卓系統(tǒng)的教學(xué)管理系統(tǒng)一學(xué)生客戶端的設(shè)計與實(shí)現(xiàn)研究報告摘要高校中由于教學(xué)模式的原因,師生之間交流的時間極為短暫,而考勤,作業(yè)以及學(xué)生 反饋等問題占用了很多寶貴的教學(xué)時間,往往會影響正常的教學(xué)計劃和教學(xué)質(zhì)量,同樣也 會給學(xué)生的學(xué)習(xí)生活帶來不必要的麻煩。簡化教學(xué)工作,提高學(xué)生學(xué)習(xí)效率已經(jīng)成為高校 中亟待解決的問題。近些年移動互聯(lián)網(wǎng)的不斷壯大和移動平臺的飛速發(fā)展為教學(xué)模式的改善提供了新的 渠道和手段。利用移動平臺中應(yīng)用最廣泛的安卓系統(tǒng),在手機(jī)和平板電腦上搭建的便捷高 效教學(xué)管理系統(tǒng)學(xué)生客戶端,為學(xué)生提供查詢各課程簽到,作業(yè)情況以及對教師教學(xué)內(nèi)容 進(jìn)行反饋等功能,優(yōu)化了教學(xué)模式,增加了教學(xué)時間,也

2、提高了學(xué)生的學(xué)習(xí)效率,并通過 搭建 ASP 網(wǎng)頁學(xué)生客戶端擴(kuò)大了系統(tǒng)應(yīng)用范圍, 緩解了學(xué)生的經(jīng)濟(jì)壓力, 極大改善了教學(xué) 質(zhì)量,幫助學(xué)生更好地去完成學(xué)習(xí)任務(wù)。關(guān)鍵詞:安卓;教學(xué)管理系統(tǒng);學(xué)生客戶端; ASP.NET目錄引言 1課題背景與可行性分析 2課題背景 2可行性分析 2結(jié)論意見 3開發(fā)工具簡介 3需求分析 8特性需求分析 8功能需求分析 8 TOC o 1-5 h z 總體設(shè)計 16硬件配置設(shè)計 16系統(tǒng)模塊結(jié)構(gòu)設(shè)計 16數(shù)據(jù)庫設(shè)計 18代碼設(shè)計 28詳細(xì)設(shè)計 30手機(jī)客戶端 30服務(wù)器端模塊 30網(wǎng)頁客戶端 42總結(jié) 48參考文獻(xiàn) 49致謝 錯.誤 !未定義書簽。引言隨著科技的發(fā)展,移動

3、通訊平臺在不斷地發(fā)展中愈來愈加成熟,預(yù)計 2012 年中國手 機(jī)市場銷量將達(dá)到 3 億部,全球銷量更是會超過 10 億部,其中,安卓系統(tǒng)在手機(jī)中的發(fā) 展最為迅速。 2012 年 1 月 20 日,谷歌報告顯示,通過谷歌服務(wù)器激活的 Android 設(shè)備 用戶總數(shù)已經(jīng)超過 2.5 億,而 Android 在中國大陸的智能手機(jī)操作系統(tǒng)市場占有率達(dá)到了 68.4% 。安卓系統(tǒng)以其開放的平臺,眾多、免費(fèi)的應(yīng)用,華麗、新鮮的運(yùn)行界面,簡單、 親切的用戶體驗(yàn)而備受消費(fèi)者的喜愛。在高校中,由于教師與學(xué)生之間往往只是在上課的時候才能見面,師生之間的交流并 不是十分活躍,教師對于簽到,布置作業(yè),學(xué)生們對上課效果

4、的反饋等等很多時候都不能 及時解決和處理,而學(xué)生對于自己的簽到記錄,各個科目布置的作業(yè)題目和以及分?jǐn)?shù)也往 往不能明了,自己在學(xué)習(xí)上的問題也不能及時地反映給老師,影響正常的學(xué)習(xí)生活。基于 Android 系統(tǒng)的教學(xué)管理系統(tǒng)則是一款建立在安卓平臺的軟件, 致力于為廣大師生工作與 學(xué)習(xí)提供便利,系統(tǒng)突破傳統(tǒng)交流的時空限制,實(shí)現(xiàn)師生之間的方便有效地交流?;?Android 系統(tǒng)的教學(xué)管理系統(tǒng)分為兩個部分, 一部分為教師客戶端, 為教師在對 學(xué)生的簽到,作業(yè)的布置評分等處理以及查看學(xué)生的反饋提供方面上便利。另一部分為學(xué) 生客戶端, 學(xué)生可以通過此客戶端查看自己簽到狀況, 查看作業(yè)題目評分, 以及進(jìn)行反

5、饋。 由于考慮到學(xué)生可能不能每人都擁有一部安卓設(shè)備,此系統(tǒng)將會提供網(wǎng)頁客戶端,學(xué)生可 以通過網(wǎng)頁實(shí)現(xiàn)客戶端內(nèi)容。本論文將對學(xué)生客戶端,包括安卓客戶端與網(wǎng)頁客戶端的實(shí)現(xiàn)進(jìn)行詳細(xì)的闡述,實(shí)現(xiàn) 系統(tǒng)的 C/S 與 B/S 兩個模式課題背景與可行性分析課題背景隨著移動平臺的成熟以及互聯(lián)網(wǎng)的不斷發(fā)展,手機(jī)等移動設(shè)備已經(jīng)極大地普及,人們 可以在隨時隨地用指尖去完成各種以往繁瑣的事情。由于在高校中師生交流的不順暢,嚴(yán) 重影響著教師的教學(xué)工作和學(xué)生的學(xué)習(xí)生活,因此亟需一款軟件去簡化教師的工作,實(shí)現(xiàn) 教師與學(xué)生簡單方便地交流??紤]到安卓系統(tǒng)的迅速發(fā)展和極高的普遍率,以及其平臺的 開放性和友好的界面, 這款基于

6、Android 系統(tǒng)的教學(xué)管理系統(tǒng)便應(yīng)運(yùn)而生了。 該系統(tǒng)可以 很輕松的實(shí)現(xiàn)師生間良好的互動,幫助教師完成簽到,布置作業(yè),打分以及查看學(xué)生反饋 信息等功能,提高工作效率簡化工作內(nèi)容的同時更好的完成教學(xué)任務(wù),幫助學(xué)生實(shí)現(xiàn)查看 自己簽到情況,查看布置的作業(yè)和打分情況以及對教師進(jìn)行反饋,方便高效的完成學(xué)習(xí)任 務(wù)。網(wǎng)頁客戶端可以彌補(bǔ)手機(jī)客戶端的缺陷,更好的實(shí)現(xiàn)系統(tǒng)功能,幫助師生完成教學(xué)任 務(wù)和學(xué)習(xí)任務(wù)??尚行苑治鼋┠?,移動設(shè)備的高速發(fā)展,使得手機(jī)等移動設(shè)備高速智能化,移動網(wǎng)絡(luò)通信正在 以前所未有的驚人速度走入人們的生活、工作和學(xué)習(xí)中,提高了工作學(xué)習(xí)的效率,增加了 獲取信息的渠道,突破了相互交流的時空界

7、限。教學(xué)管理系統(tǒng)可以基于移動平臺安卓系統(tǒng) 進(jìn)行開發(fā),幫助師生輕松解決教學(xué)中工作學(xué)習(xí)等問題??尚行苑治黾炔荒芤云w全,也不能過于追求細(xì)節(jié),必須為決策提供有價值的證據(jù)。 軟件領(lǐng)域的可行性分析主要考慮四個因素:技術(shù)可行性分析,經(jīng)濟(jì)、社會效益分析,法律 可行性分析,開發(fā)人員與進(jìn)程可行性分析。技術(shù)可行性分析:安卓系統(tǒng)是基于 Java 編寫的,因此手機(jī)客戶端采用 Eclipse 配上AndroidSDK ,完全可以實(shí)現(xiàn)系統(tǒng)功能,開發(fā)人員都具有一定 Java 功底,加之安卓平臺開 放性,網(wǎng)上很輕松的可以查看到各種實(shí)現(xiàn)代碼,手機(jī)客戶端在技術(shù)上是可行的。網(wǎng)頁客戶 端用 ASP.NET (C#) 編寫,在 Vis

8、ual Studio 2005 環(huán)境下實(shí)現(xiàn), ASP.NET 運(yùn)用面向?qū)ο蟮?編程思想進(jìn)行 Web 開發(fā),并且是以編譯方式執(zhí)行,具有較高的開發(fā)效率和運(yùn)行性能。后 臺數(shù)據(jù)庫軟件選用微軟公司的大型數(shù)據(jù)庫服務(wù)器 SQL Server 2000 。因此在技術(shù)上是可行 的。經(jīng)濟(jì)、社會效益分析:主要進(jìn)行成本 - 效益分析。從成本方面看,本系統(tǒng)的實(shí)現(xiàn),計算 機(jī)和網(wǎng)絡(luò)硬件已經(jīng)擁有,由于安卓是個開放的平臺, Eclipse 與 AndroidSDK 都是免費(fèi)提 供的,網(wǎng)絡(luò)客戶端所用軟件也都已經(jīng)配備,因此成本很低;從效益方面看,本客戶端主要 是為廣大師生提供便利,暫時還不會帶來任何經(jīng)濟(jì)收益,不過經(jīng)過完善后可以考慮

9、作為產(chǎn) 品在社會上推廣,加上安卓系統(tǒng)的廣泛應(yīng)用,相信產(chǎn)品的盈利空間是很大的。法律可行性分析:從法律角度看, Android 是個開放的平臺,代碼是開放的,加上基 于 Android 的教學(xué)管理系統(tǒng)主要為師生提供便利, 作為畢業(yè)設(shè)計, 并不以盈利為目的, 且 是自主開發(fā)設(shè)計,因此不會在社會上引起侵權(quán)或其它責(zé)任問題,在法律上是可行的。開發(fā)人員與進(jìn)程可行性分析:開發(fā)人員都有一定的 Java 開發(fā)功底,并且學(xué)習(xí)能力較 強(qiáng)以及指導(dǎo)老師的悉心教導(dǎo)完全可以勝任此次開發(fā)。由于此系統(tǒng)開發(fā)并不是以盈利為目 的,開發(fā)周期可以相對較長,因此開發(fā)進(jìn)程方面是可行的。結(jié)論意見經(jīng)過幾個不同角度的可行性分析,可以確定該系統(tǒng)能夠

10、開發(fā)。開發(fā)工具簡介Android 及 SDK 介紹SDK 指是軟件開發(fā)包, 被軟件開發(fā)工程師用于為特定的軟件包、 軟件框架、 硬件平臺、 操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。因此, Android SDk 指的既是 Android 專屬的軟件開發(fā)工具包Android 是 Google 公司推出的手機(jī)開發(fā)平臺,和 iPhone 相似, Android 使用了 WebKit 瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網(wǎng)功能,在手機(jī)上可以實(shí)現(xiàn)查看電 子郵件、搜索網(wǎng)址和觀看視頻節(jié)目等功能,較 iPhone 等其他手機(jī)更強(qiáng)調(diào)搜索功能,界面 更強(qiáng)大,可以說是一種融入全部 Web 應(yīng)用的單一平臺。Andr

11、oid 手機(jī)系統(tǒng)最震撼人心之處在于其開放性和服務(wù)免費(fèi)。 Android 是一個對第三 方軟件完全開放的平臺, 開發(fā)者在為其開發(fā)程序時 擁有更大的自由度, 突破了 iPhone 等 只能添加為數(shù)不多的固定軟件的枷鎖,使得應(yīng)用的安裝更加方便;同時與 Windows Mobile 、Symbian 等廠商不同, Android 操作系統(tǒng)免費(fèi)向開發(fā)人員提供,這樣可節(jié)省近 三成成本。Eclipse 簡介Eclipse 是一個著名的跨平臺的自由集成開發(fā)環(huán)境軟件。 最初主要用來 Java 語言開發(fā), 現(xiàn)在人們可以通過安裝插件使其作為 C+ 、Python 、PHP 等其他語言的開發(fā)工具。 Eclipse 的

12、本身只是一個框架平臺,但是隨著眾多插件的產(chǎn)生,使得 Eclipse 擁有很好的靈活性。 許多軟件開發(fā)商以 Eclipse 為框架開發(fā)自己的 IDE。雖然大多數(shù)用戶更加樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境來使用,但 Eclipse 的作 用已經(jīng)不僅限于此。 Eclipse 還是含有插件開發(fā)環(huán)境, 這個組件主允許希望擴(kuò)展 Eclipse 的 軟件開發(fā)人員構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件, 對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開 發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限

13、于Java開發(fā)工具。盡管Eclipse是使用Java語言開發(fā)的, 但它的用途并不限于 Java 語言;例如,支持諸如 C/C+ 和 COBOL 等編程語言的插 件已經(jīng)可用,或預(yù)計將會推出。 Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程 序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。本系統(tǒng)即通過 Eclipse ,添加 Android 做插件,匹配上 AndroidSDK 進(jìn)行軟件的開發(fā)。ASP.NET 簡介ASP.NET是.NET框架的一部分,是一種建立動態(tài) Web應(yīng)用程序的技術(shù)。.NET框架 (即 .NET Framework) 是支持生成、運(yùn)行下一代應(yīng)用程序和 XML Web 服務(wù)的內(nèi)部

14、Windows 組件,是 Visual Studio.NET 應(yīng)用程序開發(fā)環(huán)境的核心。它定義了語言之間互 操作的規(guī)則, 以及如何把應(yīng)用程序編輯為可執(zhí)行代碼, 還負(fù)責(zé)管理任何 Visual Studio.NET 語言創(chuàng)建的應(yīng)用程序的執(zhí)行。.NET是Microsoft面向XML Web服務(wù)的平臺,它使用一 種統(tǒng)一的、個性化的方式將信息、設(shè)備和人員緊密地聯(lián)系在一起。ASP.NET 可以使用任何兼容 .net 平臺的語言進(jìn)行開發(fā),具有較強(qiáng)的兼容性。由于 ASP.NET 是編譯執(zhí)行,因而比解釋執(zhí)行的 ASP 等開發(fā)方式具有更高的效率,而且在面向 對象性、數(shù)據(jù)庫連接、大型站點(diǎn)應(yīng)用等方面都體現(xiàn)出較好的性能。

15、此外,ASP.NET還可以利用.NET平臺架構(gòu)的諸多優(yōu)越性能,如類型安全以及對XML、SOAP、WSDL等In terne nt 標(biāo)準(zhǔn)的強(qiáng)大支持。在 ASP.NET 頁面中,可以使用 ASP.NET 服務(wù)器端控件來建立常用的用戶接口元素, 并對其進(jìn)行編程;可以使用內(nèi)建可重用組件和自定義組件快速建立 Web Form ,從而使代 碼大大簡化。相對原有的 Web 技術(shù)而言, ASP.NET 提供的編程模型和結(jié)構(gòu)有助于快速、 高效地建立靈活、安全和穩(wěn)定的應(yīng)用程序。ASP.NET 提供了一個統(tǒng)一的 Web 開發(fā)模型,其中包括開發(fā)人員生成企業(yè)級 Web 應(yīng) 用程序所需的各種服務(wù)。ASP.NET也提供了一

16、種新的編程模型和結(jié)構(gòu),可以生成伸縮性和 穩(wěn)定性更好的應(yīng)用程序,并提供更好的安全保護(hù)。當(dāng)前,ASP.NET 2.0 已逐漸被廣泛使用。本系統(tǒng)采用 C#作為開發(fā)語言,C#是.NET平臺的通用開發(fā)工具,它能夠建造所有的.NET應(yīng)用。其固有的特性決定了它是一種高效、安全、靈活的現(xiàn)代程序設(shè)計語言。C#與.NET平臺的結(jié)合足以為畢業(yè)設(shè)計綜合管理系統(tǒng)提供完整的解決方案。SQL Server 2000 簡介隨著社會信息化的不斷發(fā)展,人們面對的各種類型的數(shù)據(jù)信息正在呈現(xiàn)出爆炸式增長 的態(tài)勢,因而對數(shù)據(jù)的安全存儲和高效管理具有越發(fā)明顯的重要性。存儲和管理數(shù)據(jù)需要 使用數(shù)據(jù)庫管理系統(tǒng),不但需要后臺數(shù)據(jù)庫對數(shù)據(jù)的安全

17、存儲,而且需要前臺應(yīng)用程序?qū)?數(shù)的方便高效管理。當(dāng)前的數(shù)據(jù)庫產(chǎn)品主要有 Acess , MySql 等小型數(shù)據(jù)庫,以及 SQL Server , Oracle 等大型數(shù)據(jù)庫。鑒于畢業(yè)設(shè)計管理系統(tǒng)的數(shù)據(jù)量,可以選擇 SQL Server 數(shù)據(jù)庫。畢業(yè)設(shè)計管理系統(tǒng)不但要存儲教師和學(xué)生的基本信息,而且要實(shí)現(xiàn)一些重要流程和必 要操作,如課題的申請、審批和選擇,畢業(yè)設(shè)計時間表的安排、論文的評閱答辯以及在線 答疑等。這些除了需要對基本數(shù)據(jù)進(jìn)行存儲外,還需要開發(fā)專門的數(shù)據(jù)庫系統(tǒng)來幫助對其 進(jìn)行管理。畢業(yè)設(shè)計綜合管理系統(tǒng)需要實(shí)現(xiàn)數(shù)據(jù)庫的建立和連接、系統(tǒng)界面的設(shè)計以及各 個功能模塊的設(shè)計和開發(fā)。 該系統(tǒng)的開發(fā)過

18、程主要包括需求分析、 系統(tǒng)設(shè)計、 數(shù)據(jù)庫設(shè)計、 編碼設(shè)計、軟件測試等。系統(tǒng)采用模塊化開發(fā)方法,每個模塊各自實(shí)現(xiàn)相應(yīng)的子功能,最 后進(jìn)行集成,共同實(shí)現(xiàn)系統(tǒng)的功能。Visual Studio.NET 2005 簡介ASP.NET 的開發(fā)環(huán)境有多種選擇,該系統(tǒng)的開發(fā)選擇 Visual Studio.NET 2005 。Visual Studio.NET 2005 是一套完整的開發(fā)工具, 用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services 、桌面應(yīng)用程序和移動應(yīng)用程序。該環(huán)境提供了常用控件,直接拖動 的開發(fā)方式提高了開發(fā)效率。而且可以創(chuàng)建自定義控件,使程序具有更好的擴(kuò)展性、可

19、維 護(hù)性以及重用性。此外, Visual Basic.NET 、 Visual C+.NET 、 Visual C#.NET 和 VisualJ#.NET 使用統(tǒng)一的集成開發(fā)環(huán)境, 該環(huán)境允許它們共享并創(chuàng)建混合語言解決方案; 這些語 言都利用 .NET Framework 的功能,它提供了對簡化 ASP.NET Web 應(yīng)用程序和 XML Web Services 開發(fā)關(guān)鍵技術(shù)的訪問。因此,使用 Visual Studio.NET 2005 作為開發(fā)環(huán)境進(jìn)行 高效開發(fā)乃是最佳選擇。需求分析特性需求分析一個好的教學(xué)管理系統(tǒng)應(yīng)該具有一下特性:易操作和功能簡單明確不令人誤解。 一個良好的教學(xué)管理系統(tǒng)

20、應(yīng)該功能明確, 沒有 二義性,用戶可以很明了的通過界面明白各項功能的實(shí)現(xiàn)方法,而不是看到界面不知道各 按鈕的具體用途,即操作簡單,界面友好。學(xué)生可以根據(jù)手機(jī)界面或網(wǎng)頁界面很明白的進(jìn) 行對簽到記錄,作業(yè)情況的查詢,并能夠?qū)⒆约旱姆答伡皶r提交給老師。軟件功能流暢,不拖沓。軟件登陸,連接網(wǎng)絡(luò)不能讓用戶等待時間過長,引起用戶 的煩躁。軟件在運(yùn)行不能發(fā)生崩潰,卡頓等問題,整個界面操作起來很流暢。系統(tǒng)應(yīng)該容易維護(hù)以及更新。 系統(tǒng)各個模塊設(shè)計應(yīng)該很明確, 核心代碼處應(yīng)有必要 的注釋,使得今后的軟件維護(hù),軟件更新等操作應(yīng)該能夠順利的進(jìn)行。3-1功能需求分析 學(xué)生客戶端教學(xué)管理系統(tǒng)應(yīng)該能完成四種功能包括登錄功能

21、,簽到情況查詢功能,作 業(yè)情況以及評分情況查詢功能和向教師進(jìn)行反饋功能,并且能手機(jī)客戶端形式與網(wǎng)頁客戶 端兩種形式實(shí)現(xiàn)上述功能,保證系統(tǒng)的正常運(yùn)行。系統(tǒng)用例圖如圖圖3-1教學(xué)信息管理系統(tǒng)用例圖登錄功能進(jìn)行學(xué)生身份的驗(yàn)證。手機(jī)客戶端把學(xué)生學(xué)號密碼通過網(wǎng)路傳遞給服務(wù)器有服務(wù)器進(jìn)行數(shù)據(jù)庫查詢,如若學(xué)號和密碼匹配,則將學(xué)生信息和數(shù)據(jù)庫內(nèi)容傳遞到手機(jī) 端,不匹配則返回錯誤信息提示錯誤。網(wǎng)頁客戶端相似,若學(xué)號密碼匹配,則進(jìn)入系統(tǒng), 不匹配則拒絕登錄。系統(tǒng)用例圖如圖 3-2。圖3-2登錄功能用例圖簽到情況查詢功能可以提供給學(xué)生查詢自己相應(yīng)課程的簽到情況,學(xué)生可以選擇查詢的課程名稱,查看各個課程的考勤時間,和

22、相應(yīng)自己的簽到記錄。用例圖如3-3。圖3-3簽到功能用例圖(3)作業(yè)內(nèi)容評分情況查詢功能提供給學(xué)生查詢每個課程作業(yè)的情況,學(xué)生通過選擇需要查詢的課程,查看此課程教師留下的作業(yè)的作業(yè)號,日期和作業(yè)題目等內(nèi)容,并可以查 詢自己在此項作業(yè)中得到的分?jǐn)?shù)。用例圖如圖3-4所示。圖3-4作業(yè)功能用例圖反饋功能則是學(xué)生向教師提出意見和建議的平臺,學(xué)生可以通過此平臺,選擇想進(jìn)行反饋的課程,給課程老師留言,查詢修改和刪除以往的反饋內(nèi)容,課程老師可以通過教師客戶端查看學(xué)生留言。用例圖如圖 3-5所示。文件和信息傳遞過去。登陸功能數(shù)據(jù)流圖如圖3-63.3數(shù)據(jù)流圖數(shù)據(jù)流圖描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受

23、的變換,它反映系統(tǒng) 必須完成的邏輯功能。從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸 出的移動變換過程。教學(xué)管理系統(tǒng)的運(yùn)行同樣離不開信息流和數(shù)據(jù)流移動變換,數(shù)據(jù)流 圖的描繪可以幫助開發(fā)者更好地理清整個程序的運(yùn)行過程和參數(shù)傳遞。學(xué)生登錄功能主要是在服務(wù)器端進(jìn)行的。學(xué)生用戶在登錄界面輸入學(xué)號和密碼, 手機(jī)客戶端會通過網(wǎng)絡(luò)將學(xué)號和密碼傳送給服務(wù)器,服務(wù)器查詢數(shù)據(jù)庫,驗(yàn)證學(xué)號和密 碼是否與學(xué)生表中記錄相同,如若兩者和數(shù)據(jù)庫中信息正確,則將客戶端需要的數(shù)據(jù)庫學(xué)生表f、1接收數(shù)據(jù)庫文學(xué)生輸入學(xué)號密碼登錄學(xué)號密碼查詢數(shù)據(jù)庫數(shù)據(jù)庫文件十件1 丿LJj圖3-6登陸功能數(shù)據(jù)流圖手機(jī)客戶端中學(xué)生簽到功能

24、通過查詢下載的數(shù)據(jù)庫文件實(shí)現(xiàn)。學(xué)生登陸成功后, 學(xué)號信息會記錄在手機(jī)中,查詢數(shù)據(jù)庫是可以被引用,進(jìn)入簽到功能界面,選擇需要查 看的課程,選擇完成后,系統(tǒng)會將課程名稱記錄下來,根據(jù)學(xué)號和課程名稱信息查詢此 課程學(xué)生用戶的簽到情況。簽到功能數(shù)據(jù)流圖如圖 3-7。圖3-7簽到功能數(shù)據(jù)流圖在進(jìn)入作業(yè)功能界面時,學(xué)號信息會被記錄下來,學(xué)生選擇查詢的課程,記錄下 課程名稱,根據(jù)學(xué)號與課程名稱查詢數(shù)據(jù)庫,顯示出查詢到的作業(yè)信息,學(xué)生選擇某一 個作業(yè),通過學(xué)號信息查詢自己的得分情況。作業(yè)功能數(shù)據(jù)流程如圖3-8 o圖3-8作業(yè)功能數(shù)據(jù)流圖同簽到功能和作業(yè)功能相同,進(jìn)入反饋界面時,學(xué)號,姓名信息被記錄,學(xué)生選 擇

25、反饋的課程,記錄下課程名稱,根據(jù)學(xué)號和課程名稱查詢數(shù)據(jù)庫,進(jìn)入反饋界面后, 學(xué)生可以選擇直接對課程進(jìn)行添加反饋,也可以修改和刪除反饋信息,完成相關(guān)操作 后,數(shù)據(jù)會上傳數(shù)據(jù)庫,教師端通過查詢數(shù)據(jù)庫查看反饋信息。反饋功能數(shù)據(jù)流圖如圖 3-9。圖 3-9 作業(yè)功能數(shù)據(jù)流圖總體設(shè)計總體設(shè)計即對有關(guān)系統(tǒng)全局問題的設(shè)計,也就是設(shè)計系統(tǒng)總的處理方案,又稱系統(tǒng)概 要設(shè)計。它包括:硬件配置設(shè)計、系統(tǒng)模塊結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫設(shè)計、代碼設(shè)計等內(nèi)容。軟 件功能分解屬于下列軟件開發(fā)中的總體設(shè)計階段。硬件配置設(shè)計手機(jī)客戶端:Android 系統(tǒng)要求: Android 2.3.3 及其以上。手機(jī)配置:內(nèi)存 256M 及其以上。

26、主頻 600HZ 及其以上。網(wǎng)頁客戶端:系統(tǒng)要求: window xp ,vista 以及 win7 , Linux 等硬件配置:處理器:奔騰 4 處理器及以上;內(nèi)存: 1G 及其以上。硬盤: 20G 及其以上。系統(tǒng)模塊結(jié)構(gòu)設(shè)計教學(xué)管理系統(tǒng)學(xué)生客戶端主要提供學(xué)生登陸,查詢簽到情況,查詢作業(yè)情況,反饋信息四項功能,因此可以將系統(tǒng)分為四個模塊 :登陸模塊,簽到模塊,作業(yè)模塊,反饋模塊圖4-1考勤系統(tǒng)結(jié)構(gòu)圖系統(tǒng)的主要功能概述:登錄模塊包括驗(yàn)證信息功能和網(wǎng)絡(luò)傳遞功能,學(xué)生可以通過此模塊輸入學(xué)號密碼,通過網(wǎng)絡(luò)將輸入的學(xué)號和密碼傳遞給服務(wù)器,服務(wù)器通過搜索數(shù)據(jù)庫驗(yàn)證密碼和學(xué)號是否 匹配,若不匹配則傳遞提示

27、錯誤信息給相應(yīng)客戶端,若匹配則傳遞給手機(jī)客戶端需要的數(shù) 據(jù)庫文件和學(xué)生信息,網(wǎng)頁客戶端則直接進(jìn)入功能界面。簽到模塊包括選擇課程功能和查看簽到信息功能。學(xué)生進(jìn)入界面后可以選擇需要查 詢的課程,然后通過課程名稱和學(xué)號查詢數(shù)據(jù)庫, 搜索出登陸學(xué)生和對應(yīng)課程的簽到信息, 顯示在簽到信息界面。作業(yè)模塊包括查看作業(yè)內(nèi)容功能和查看作業(yè)評分內(nèi)容。學(xué)生進(jìn)入作業(yè)查詢界面后, 可以選擇需要查詢的課程,在數(shù)據(jù)庫中搜索對應(yīng)課程的作業(yè)信息,顯示在作業(yè)情況界面, 點(diǎn)擊單個作業(yè)情況,可以查看作業(yè)題目的具體內(nèi)容,并查詢數(shù)據(jù)庫,顯示該作業(yè)的登錄學(xué) 生的個人得分情況反饋模塊包括添加反饋信息功能, 刪除反饋信息功能和修改反饋信息功能

28、。 學(xué)生先 選擇需要反饋的課程,然后進(jìn)入反饋信息界面。在反饋信息可以進(jìn)行添加,修改和刪除反 饋信息功能,添加修改刪除完成后,對數(shù)據(jù)庫進(jìn)行更改,然后由網(wǎng)絡(luò)發(fā)送信息使服務(wù)器也 進(jìn)行相應(yīng)更改,使客戶端和數(shù)據(jù)庫端信息實(shí)現(xiàn)同步。數(shù)據(jù)庫設(shè)計4.3.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計實(shí)體 - 聯(lián)系圖,即 E-R 圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世 界的概念模型,在數(shù)據(jù)庫系統(tǒng)概論中屬于概念設(shè)計階段。 E-R 圖的設(shè)計與建立,可以幫助 開發(fā)者更加合理的去制定數(shù)據(jù)庫內(nèi)容, 使得在開發(fā)過程中對數(shù)據(jù)庫的各種操作 (添加,查詢, 修改或刪除 )變得簡單易行。教學(xué)管理系統(tǒng)學(xué)生客戶端的實(shí)體聯(lián)系圖的實(shí)體主要包括學(xué)生,

29、 班級,課程,簽到記錄, 作業(yè),留言板和教師實(shí)體。其中,班級和學(xué)生之間是一對多的關(guān)系;簽到記錄和學(xué)生之間 是一對多的關(guān)系; 教師與簽到記錄之間是一對多的關(guān)系; 課程與教師之間是一對多的關(guān)系; 教師與作業(yè)之間是一對多的關(guān)系;課程與作業(yè)之間是一對多的關(guān)系;學(xué)生與留言記錄之間 是一對多的關(guān)系;教師與留言記錄之間是一對多的關(guān)系。由于每個課程都可以有很多學(xué)生 選,而每個學(xué)生可以選很多課程,所以兩者之間是多對多的關(guān)系;由于每個學(xué)生都要有評 分,因此作業(yè)與學(xué)生之間有對應(yīng)關(guān)系,而每個作業(yè)對應(yīng)的是一個班級所有學(xué)生的,而每個 學(xué)生可以有很多作業(yè),因此作業(yè)和學(xué)生之間是多對多的關(guān)系。教學(xué)管理系統(tǒng)的實(shí)體聯(lián)系圖 如圖 4

30、-2 所示1部分實(shí)體圖如下1N簽到簽到記錄點(diǎn)名在N1N1NN反饋留言記錄查看學(xué)生教師MMNN選課課程教11有NNN作業(yè)留作業(yè)記錄姓名密碼班級號屬性可以用來作為身份驗(yàn)證,供登錄模塊使用,班級號作為與班級實(shí)體對應(yīng),學(xué)號與姓名(1)學(xué)生實(shí)體圖包括四個屬性,其中包括學(xué)號,姓名,密碼以及班級號,學(xué)號密碼兩個學(xué) 生學(xué)號圖4-2教學(xué)管理系統(tǒng)E-R圖4-3。班級圖4-3 學(xué)生實(shí)體圖(2)課程實(shí)體圖包括兩個屬性,分別為課程名稱與課程號。兩個屬性可以連接學(xué)生實(shí)體, 教師實(shí)體以及作業(yè)實(shí)體。課程實(shí)體如圖 4-4所示。圖4-4課程實(shí)體圖班級實(shí)體圖包括兩個屬性,分別為班級名稱與班級號。兩個屬性可以連接學(xué)生實(shí) 體。班級實(shí)體

31、如圖4-5所示。班 級圖4-5 班級實(shí)體圖(4)作業(yè)實(shí)體圖包括作業(yè)號,課程號,日期,班級號以及作業(yè)題目五項屬性。作業(yè)題 目記錄著作業(yè)的詳細(xì)內(nèi)容,日期記錄者作業(yè)的日期,課程號和班級對應(yīng)著哪個班哪個課 程留的作業(yè),作業(yè)號聯(lián)系著學(xué)生,教師以及課程實(shí)體。作業(yè)實(shí)體圖如圖4-6。圖4-6 作業(yè)實(shí)體圖留言記錄實(shí)體圖包括內(nèi)容編號,學(xué)生編號,班級號,日期,課程號,反饋內(nèi)容六個屬性。學(xué)生號,班級號和課程號記錄著哪個班級的哪個課程的哪個學(xué)生留下的反饋信 息,日期對應(yīng)著反饋信息時間,通過內(nèi)容號找出某個留言信息。實(shí)體圖如圖4-7 o圖4-7留言記錄實(shí)體圖(6)簽到記錄實(shí)體圖包括學(xué)生編號,班級名,日期,課程名,到否五個屬

32、性。學(xué)生 號,班級名和課程名記錄著哪個班級的哪個課程的哪個學(xué)生的簽到信息,日期對應(yīng)著學(xué) 生簽到的時間,到否記錄該學(xué)生此次考勤是否簽到。實(shí)體圖如圖 4-8 o(7)教師實(shí)體圖包括教師號,密碼,以及教師姓名三項屬性。教師實(shí)體主要應(yīng)用于教 師客戶端,學(xué)生客戶端不涉及到教師實(shí)體。實(shí)體圖如圖4-9。圖4-9 教師實(shí)體圖數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計根據(jù)以上的實(shí)體屬性集可以建立相應(yīng)的數(shù)據(jù)庫表結(jié)構(gòu),其中教學(xué)管理系統(tǒng)學(xué)生客戶端主要用到的數(shù)據(jù)庫表結(jié)構(gòu)如下所示學(xué)生表(student)包括學(xué)號,姓名,密碼,與班級號四個字段。教學(xué)管理系統(tǒng)學(xué)生 客戶端需要通過查詢學(xué)生表驗(yàn)證學(xué)生信息,查詢登陸者是否屬于學(xué)校人員,并將學(xué)生信息 的部

33、分內(nèi)容反饋給客戶端。學(xué)生表如表 4-1。表4-1 學(xué)生表字段名描述類型長度是否允許為空是否主鍵classid學(xué)號Varchar10否是stude ntname姓名Varchar20否否password密碼Varchar10否否classid班級號Varchar10否否班級表(class)包括班級號與班級名兩個字段。 教學(xué)管理系統(tǒng)無論學(xué)生端還是教師端 都需要查詢班級內(nèi)容,將班級內(nèi)容從學(xué)生表和教師表中提取出來可以簡化數(shù)據(jù)庫的相關(guān)操 作。班級表如表4-2所示。表4-2 班級表字段名描述類型長度是否允許為空是否主鍵classid班級號Varchar10否是class name班級名Varchar20否

34、否課程表(course)包括課程編號與課程名兩個字段。學(xué)生無論是查詢簽到情況,作業(yè)情況還是反饋信息,都需要選擇課程,因此課程表是必須的。課程表如表 4-3。表4-3 課程表字段名描述類型長度是否允許為空是否主鍵courseid課程編號Varchar10否是course name課程名Varchar20否否選課表(cs)包括學(xué)生編號和課程信息兩個字段。由于學(xué)生與課程之間是多對多的關(guān) 系,因此需要在兩個表之間添加一張選課表聯(lián)系兩張表。選課表如表4-4 :表4-4 選課表字段名描述類型長度是否允許為空是否主鍵stude ntid學(xué)生編號Varchar10否是courseid課程編號Varchar10

35、否是作業(yè)表(hw)是用來記錄每個班級作業(yè)的具體情況,學(xué)生查看作業(yè)內(nèi)容需要查詢此表。作業(yè)表包括作業(yè)編號,課程編號,班級號,日期和題目五個字段其中問題內(nèi)容可以為 空,hwid要求每次自增1。作業(yè)表如表4-5。表4-5 作業(yè)表字段名描述類型長度是否主鍵是否允許空是否自增1hwid作業(yè)編號Varchar10是否是courseid課程編號Varchar10否否否classid班級號Varchar10否否否datetime日期Date0否否否questi on題目Text0否是否作業(yè)表(hwdata)包括作業(yè)編號,學(xué)生編號,分?jǐn)?shù)三個字段,其中分?jǐn)?shù)采用5分制由于作業(yè)與學(xué)生之間是多對多的關(guān)系,因此需要創(chuàng)建一個

36、作業(yè)記錄表來關(guān)聯(lián)兩個表,學(xué)生 可以通過查詢此表來查詢自己的成績。作業(yè)記錄表如表4-6。表4-6作業(yè)記錄表字段名描述類型長度是否允許為空是否主鍵hwid作業(yè)編號Varchar10否是stude ntid學(xué)生編號Varchar10否是score分?jǐn)?shù)In teger0否否簽到記錄表(signdata)包括五個字段,分別為學(xué)生編號,課程名稱,日期,班級名稱和到否。學(xué)生可以通過這個表來查詢自己每個課程的簽到情況。簽到記錄表如表4-7表4-7 簽到記錄表字段名描述類型長度是否允許為空是否主鍵stude ntid學(xué)生編號Varchar10否是course name課程名稱Varchar20否是datetim

37、e日期Date0否是class name班級名稱Varchar20否否sign到否Varchar5否否留言記錄(feedback)包括內(nèi)容編號,學(xué)生編號,課程名稱,日期以及反饋內(nèi)容五個字段,其中反饋內(nèi)容允許為空,內(nèi)容編號每次自增1。學(xué)生可以通過增加,修改刪除此表內(nèi)容對教師進(jìn)行反饋。留言板表如表4-8 o表4-8 留言表字段名描述類型長度是否主鍵是否允許空是否自增1fdid內(nèi)容編號In teger10是否是stude ntid學(xué)生編號Varchar10否否否course name課程名稱Varchar20否否否datetime日期Date0否否否con text反饋內(nèi)容Text0否是否以上將教務(wù)

38、處子系統(tǒng)中數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計的E-R圖轉(zhuǎn)換成SQLITE與MicrosoftSQL Server2000所支持的數(shù)據(jù)模型相符合的結(jié)構(gòu),只需使用數(shù)據(jù)定義語言將數(shù)據(jù)庫邏輯 設(shè)計和物理設(shè)計的結(jié)果嚴(yán)格描述出來,再經(jīng)過調(diào)試產(chǎn)生目標(biāo)模式就可以組織數(shù)據(jù)入庫,進(jìn) 行數(shù)據(jù)庫實(shí)施。代碼設(shè)計在代碼設(shè)計這部分,將具體設(shè)計整個系統(tǒng)所用的大概邏輯框架,為詳細(xì)設(shè)計提供必要 的參考,以及各模塊編程的規(guī)范,參數(shù)的傳遞以及函數(shù)的接口。首先,全局變量的傳遞。學(xué)生登陸后要記錄該學(xué)生用戶個人信息,以便完成后續(xù)的 功能查詢,因此學(xué)生的學(xué)號信息要傳遞到stude ntid這個全局變量中,其他功能查詢時,接受此變量的值即可使用學(xué)號查詢,學(xué)生

39、姓名傳遞到stude ntn ame這個全局變量中,學(xué)生所在班級號傳遞到classid中。同樣,在每個功能選擇查詢課程的時候,可將課程名稱 傳遞到course name這個變量中,其他函數(shù)調(diào)用時,即可接受此變量的值。所有的Activity類學(xué)要寫在一個activity的package內(nèi),所有的數(shù)據(jù)庫操作函數(shù) 都要寫在一個 DAO 的 package ,所有的結(jié)構(gòu)類都要寫在一個 model 的 package 中,每 個類的名字和函數(shù)的名字都要用易讀的名稱,以便系統(tǒng)的修改,更行等操作。在重要的函數(shù)和類成員旁邊加上注釋,增加可讀性。學(xué)生表儲存在“ check.db ”的數(shù)據(jù)庫文件,供登陸時查詢。數(shù)

40、據(jù)庫的其他表統(tǒng)一儲存在數(shù)據(jù)庫文件“ mydata.db ”中,以便調(diào)用。每個函數(shù)的代碼應(yīng)控制在 50 行以內(nèi),參數(shù)傳遞控制在三個以內(nèi),以便增加系統(tǒng)可 讀性。服務(wù)器端接收客戶端請求端號為 4567 ,向客戶端發(fā)送信息端號為 4568 通過總體設(shè)計對軟件的結(jié)構(gòu)框架有了整體的認(rèn)識,對系統(tǒng)的每個模塊的功能都有了清 晰的了解。下面便可以通過詳細(xì)設(shè)計來實(shí)現(xiàn)整個系統(tǒng)。詳細(xì)設(shè)計5.1 手機(jī)客戶端5.1.1 學(xué)生登陸模塊手機(jī)客戶端首先下載或更新“ mydata.db ”更新本地數(shù)據(jù)庫。然后客戶端通過查詢本 地數(shù)據(jù)庫檢驗(yàn)用戶輸入的登錄信息是否正確,如若信息不正確則傳遞提示錯誤信息,由客 戶端 Toast 出錯誤提

41、示 (如圖 5-2) ,若信息正確,提示登陸成功 (如圖 5-3) ,將學(xué)號傳遞給 studentid ,學(xué)生姓名傳遞給 studentname ,班級號傳遞給 classid ,并進(jìn)入下一功能界 面。網(wǎng)絡(luò)功能使用 Socket 來傳遞客戶端和服務(wù)器端的信息。 客戶端需要 Socket 這個類的 對象,而服務(wù)器端同樣需要一個叫 ServerSocket 的類對象,由客戶端發(fā)送一個 Socket 請求,服務(wù)器端的 ServerSocket 監(jiān)聽計算機(jī)的某一個端口號 (4567) ,監(jiān)聽到客戶端發(fā)送 的請求之后,那么服務(wù)器端和客戶端通訊通道就建立起來了,此時客戶端和服務(wù)器端可同 時向?qū)Ψ桨l(fā)送數(shù)據(jù)及

42、相應(yīng)信息??蛻舳税l(fā)送數(shù)據(jù)需要用到 IO 流里面的 OutputStream , 通過 OutputStream 將數(shù)據(jù)發(fā)送給服務(wù)器端,服務(wù)器端用 InputStream 來讀取客戶端當(dāng) 中用 OutputStream 所寫入的數(shù)據(jù),同樣,服務(wù)器端想將數(shù)據(jù)庫文件發(fā)送給客戶端時,那 么就使用 OutputStream 寫出數(shù)據(jù),在客戶端通過 InputStream 把服務(wù)器端當(dāng)中通過OutputStream 所寫入的數(shù)據(jù)給它讀取出來 di in 2:i8考動系統(tǒng)-學(xué)生客戶端考勤系統(tǒng)學(xué)生客戶端學(xué)號:密碼:置錄退出圖5-1登錄界面該用戶不存在或密碼錯謀!圖5-2登錄失敗提示登錄成功圖5-3 登錄成功提

43、示查詢登錄信息的SQL語句為:(例如:服務(wù)器端接收的學(xué)號為sid,密碼為pword)Select stude ntn ame,passwordFrom stude ntWhere stude ntid = sid若數(shù)據(jù)庫中無sid對應(yīng)信息,則返回錯誤信息,若有,服務(wù)器端驗(yàn)證 password=pword,匹配則返回成功信息,傳遞“ mydata.db ”,不匹配則返回錯誤信息。簽到模塊簽到模塊主要功能是查看登錄學(xué)生的各門課程課程的簽到情況。首先,先搜索該學(xué)生都學(xué)習(xí)了哪些課程,查詢課程名稱的SQL語句如下:(例如:studentid= 001 )Select course name as _id

44、From course,csWhere studentid= 001 and course.courseid=cs.courseid查找到的課程名通過listview顯示在界面中。衣興邦同學(xué)你好!1 h nijfeedba請選擇查看簽到情況的科目:數(shù)據(jù)結(jié)構(gòu)離散敎學(xué)圖5-4簽到模塊選擇班級界面點(diǎn)擊課程名稱,將執(zhí)行操作:將點(diǎn)擊的listview 中的課程名傳遞到 course name,即Stri ng course name=(TextView)view).getText().toStri ng();然后執(zhí)行如下SQL語句查詢簽到信息:(例如:點(diǎn)擊為數(shù)據(jù)結(jié)構(gòu))Select datetime as

45、 _id,sig nFrom sig ndataWhere coursename=數(shù)據(jù)結(jié)構(gòu)and studentid= 001便搜索到如圖5-5 :圖5-5個人簽到情況界面作業(yè)模塊作業(yè)模塊主要功能是查看登錄學(xué)生的各個科目的作業(yè)情況情況,學(xué)生可以選擇科目,查看對應(yīng)科目所留作業(yè)的時間內(nèi)容和自己得到的分?jǐn)?shù)。首先通過數(shù)據(jù)庫搜索到學(xué)生所學(xué)課程。點(diǎn)擊圖5-6界面中的課程:工ll 2:31考動系統(tǒng)學(xué)生客戶端崔興邦同學(xué)你好!E3聘Ihomework請選擇查看作業(yè)情況的科目:數(shù)據(jù)結(jié)構(gòu)離散數(shù)學(xué)圖5-6作業(yè)模塊選擇班級界面同簽到模塊一樣,將課程名傳到course name中,然后由課程名稱course name 找

46、到 課程編號:(例如:coursename= 08信計)Select courseidFrom courseWhere coursename= 08 信計由courseid以及classid查詢班級中留下的作業(yè):(例如:courseid= 08 信計,classid= 001 )select hwid as _id,datetime,questi onfrom hwwhere classid= 001 and courseid= 08 信計將轉(zhuǎn)到作業(yè)歷史界面:t3e 1 2:55考勒系統(tǒng)學(xué)生客戶端1作業(yè)號日期問S31 00012012-4-27這是第一個問 題1 00022012-4-28這是

47、第二個問 題100032012-4-29這暹第三個問 題10004201230這是第四個問 題圖5-7 作業(yè)信息界面點(diǎn)擊單個作業(yè)記錄,執(zhí)行如下SQL語句:(例如:hwid= 0001 ,studentid=Select scoreFrom hwdataWhere hwid= 0001 and studentid= 001 找到學(xué)生得分后顯示question和score的內(nèi)容,如圖5-8所示:作業(yè)內(nèi)容遠(yuǎn)是第一個問題你的成績是:5完成0001圖5-8 作業(yè)題目和得分反饋模塊反饋模塊主要功能是進(jìn)行學(xué)生對教師上課內(nèi)容或作業(yè)內(nèi)容進(jìn)行反饋,將自己的疑問好 的意見和建議提交給老師,供老師查看。這個模塊可以完

48、成學(xué)生進(jìn)行反饋信息的增加,刪 除和修改功能。同簽到模塊和作業(yè)模塊相同,一開始用數(shù)據(jù)庫選出學(xué)生所學(xué)科目。崔興邦同學(xué)你好!請選擇需要進(jìn)行反饋的科目:數(shù)據(jù)結(jié)構(gòu)離散數(shù)學(xué)圖5-8反饋功能選擇班級界面課程選擇完成后,將科目名稱傳遞到course name中,例如course name=離散數(shù)學(xué)在數(shù)據(jù)庫中搜索登錄學(xué)生先前發(fā)表的反饋 SQL語句如下:Select con textFrom feedbackWhere studentid= 001 and coursename= 離散數(shù)學(xué)然后進(jìn)入反饋界面,如下圖5-9 :圖5-9 反饋功能界面在文本框中輸入需要進(jìn)行的反饋,點(diǎn)擊反饋按鈕,將輸入信息寫入數(shù)據(jù)庫,判斷

49、數(shù)據(jù) 庫是否為空,為空則插入fdid=1,不為空則不用插入fdid。添加反饋信息的SQL語句如下:In sert into feedback(fdid , stude ntid ,course name ,datetime , con text)Values ( 1, 001 ,離散數(shù)學(xué), 2012428 ,第一個問題不會)點(diǎn)擊手機(jī)menu鍵,屏幕底端會出現(xiàn)修改和刪除按鈕,選中所要刪除和修改的內(nèi)容, 可以進(jìn)行對反饋內(nèi)容的修改和刪除。刪除反饋信息的SQL語句:Delete from feedbackWhere fdid = id修改反饋信息的SQL語句:Udpate feedbackSet co

50、n text=第二個問題不會where sortid=d;每次更新數(shù)據(jù)庫,則發(fā)送完畢后通過socket將數(shù)據(jù)庫語句發(fā)送給服務(wù)器端,并使服務(wù)器端進(jìn)行數(shù)據(jù)庫更新,使手機(jī)客戶端的信息與服務(wù)器端信息實(shí)現(xiàn)同步。至此,手機(jī)客戶端的主要功能已經(jīng)實(shí)現(xiàn),軟件的代碼編寫思路,數(shù)據(jù)庫查詢語句和界面設(shè)計都已經(jīng)很清晰得以闡述,需求中的要求都得以了實(shí)現(xiàn)。5.2服務(wù)器端模塊5.2.1 通訊數(shù)據(jù)格式定義服務(wù)器端主要用來接收客戶端發(fā)來的信息,進(jìn)行相應(yīng)的操作,并將數(shù)據(jù)返回給客戶端,同時對服務(wù)器端數(shù)據(jù)庫進(jìn)行管理。本系統(tǒng)利用Socket機(jī)制實(shí)現(xiàn)服務(wù)器端與客戶端之間數(shù)據(jù)的傳送,并且要對數(shù)據(jù)格式 進(jìn)行規(guī)范。服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的格式

51、定義為表5-1的形式。表5-1客戶端向服務(wù)器端發(fā)送數(shù)據(jù)的格式頭信息客戶端IP地址信息內(nèi)容0XXXX頭信息定義為:0該信息為請求下載數(shù)據(jù)庫文件和傳遞用戶參數(shù),1該信息為請求添 加數(shù)據(jù),2該信息為請求刪除數(shù)據(jù),3該信息為請求刪除數(shù)據(jù)。服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的格式定義為表 5-2的形式。表5-2服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的格式頭信息服務(wù)器端IP地址信息內(nèi)容0XXXXX頭信息定義為:1該信息為數(shù)據(jù)庫文件,2該信息為操作返回信息。522接收客戶端發(fā)來的請求信息功能模塊服務(wù)器端接收客戶端的請求信息,通過建立一個一直運(yùn)行的線程保持監(jiān)聽客戶端發(fā)來 的請求信息。部

52、分代碼如下:n private class ServerThread exte nds Thread/接收信息線程public void run() / 聲明一個 ServerSocket 對象ServerSocket server= nu II;while(true) 無線循環(huán)tryserver = new ServerSocket(4567);定義接受端口clie nt = server.accept();/in = new BufferedReader( new In putStreamReader(clie nt.getl nputStream();定義輸入流this.request

53、= in. readL in e();/獲取信息this.head = this.request.substri ng(0,1);/剝離頭信息if(this.head.equals(“0” )/ 判斷頭信息數(shù)據(jù)庫參數(shù)請求格式如下: (以添加為例 )Insert into table1,table2,table3 (context1,context2,context3,context4,context5,context6, context7 ,context8 ,context9 , context10)Values (?,?,?,?,?)在本系統(tǒng)所用添加刪除修改最多不超過三個表,添加內(nèi)容不會超

54、過 10 個內(nèi)容,傳遞 數(shù)據(jù)時參數(shù)形式為:data=new byte1024,data= “ table1 ”, “table2 ” , “table3 ” ,“context1 ” ,“context2 ” ,“ context3 ” ,“ context4 ” ,“ context5 ” ,“ context6 ” ,“context7 ” ,“ context8 ” ,“ context9 ” ,“ context10 ”其中若 table 或 context 為空,我們統(tǒng)一設(shè)定其為 -1 。 同樣,修改,刪除形式如上發(fā)送返回數(shù)據(jù)模塊 在服務(wù)器端接收到客戶端發(fā)來的請求時,服務(wù)器端將從數(shù)據(jù)

55、庫中查詢相關(guān)內(nèi)容返回給 客戶端。將模擬器的 4567 端口綁定到 4568 端口,代碼如下:Runtime.getRun().exec(this.ADB_PATH+ ”forward tcp:4568 tcp:4567 ” );Qizhong ADB_PATH 為 adb 即為 Android Debug Bridge 所在路徑。綁定端口后, 想模擬器 4567 端口發(fā)送的信息其實(shí)是通過 4568 端口發(fā)送的。服務(wù)器端發(fā)送返回數(shù)據(jù)的代碼如下:Socket client=new Socket( “l(fā)ocalhost ”,4567);ObjectOutputStream out=newObject

56、OutputStream(client.getOutputSrtream();Out.writeObject(data);/data 為數(shù)據(jù)內(nèi)容網(wǎng)頁客戶端由于考慮到學(xué)生經(jīng)濟(jì)條件的不平均,不能保證每個學(xué)生都能擁有一部 Android 手機(jī), 以至于部分學(xué)生不能使用此軟件,導(dǎo)致學(xué)生不能正常查看自己作業(yè)簽到情況,不能將好的 建議意見提交給老師,影響正常的學(xué)習(xí)生活,網(wǎng)頁學(xué)生客戶端是必要的。網(wǎng)頁客戶端的主要功能同手機(jī)客戶端的功能大體相似,分為五個模塊:登陸模塊,功 能選擇模塊,簽到模塊,作業(yè)模塊以及反饋模塊。5.3.1 登錄模塊登錄模塊同樣用于學(xué)生身份的驗(yàn)證,在服務(wù)器端驗(yàn)證用戶名與密碼正確與否。 SQL

57、 語 句較手機(jī)客戶端稍有不同。例:學(xué)號: 001 ,密碼: 1234 的學(xué)生信息查詢 SQL 語句為:Select *From studentWhere studentid= 001 and password= 1234 若查找到學(xué)生信息則登陸成功,否則,登錄失敗。網(wǎng)頁客戶端登陸界面如圖 5-10系統(tǒng)登錄圖5-10網(wǎng)頁端登陸界面532 功能選擇模塊此模塊是較手機(jī)客戶端多出的一個小模塊,由于手機(jī)客戶端可用TabHost分頁顯示出 三個模塊,網(wǎng)頁客戶端受到網(wǎng)頁制作的限制,只得添加一個功能選擇模塊實(shí)現(xiàn)各功能頁面 的跳轉(zhuǎn)。這里使用RadioButton選擇頁面的跳轉(zhuǎn)。功能選擇界面如圖5-11。O lo

58、calhost:52822/WebSitel/xuanze.aspx崔興邦同學(xué)選擇功能簽到情況g作業(yè)情況反饋1# 圖 5-11選擇功能頁面簽到模塊 通過功能選擇模塊跳轉(zhuǎn)到簽到頁面,服務(wù)器會在數(shù)據(jù)庫中自動搜索出登陸學(xué)生所學(xué)習(xí) 的課程。查詢課程的 SQL 語句與手機(jī)客戶端相似,以 studentid= 001 為例:Select coursenameFrom course,csWhere studentid= 001 and course.courseid=cs.courseid然后將課程名稱輸出到 ComboBox 中,點(diǎn)擊所要查詢的課程,服務(wù)器會查詢登錄學(xué) 生在此門課程中的簽到情況。以選擇數(shù)據(jù)結(jié)構(gòu)為例,簽到信息查詢 SQL 語句為:Select studentname, datetime, signFrom studentid, signdataWhere coursename= 數(shù)據(jù)結(jié)構(gòu) and studentid= 001 自動刷新頁面后,將搜索到的信息顯示在網(wǎng)頁上。界面如下圖 5-12 所示。Q localhost52822/WebSitel/qiandao.aspx課程名稱姓名時間崔興邦4月4日崔興邦4月M日崔興邦4月為日L敎據(jù)結(jié)構(gòu)-請逋擇- 離散頻學(xué)13據(jù)結(jié)構(gòu)簽到數(shù)據(jù)結(jié)構(gòu)簽到數(shù)據(jù)結(jié)構(gòu)圖5-12 簽

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論