
![數(shù)據(jù)庫原理課程網(wǎng)站設計[畢業(yè)論文]_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/16/21/ee7cb134-33a2-4fe5-a97d-f42ccf86b9bf/ee7cb134-33a2-4fe5-a97d-f42ccf86b9bf1.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)設計(論文)</p><p><b> ( 屆)</b></p><p> 論文題目數(shù)據(jù)庫原理課程網(wǎng)站設計</p><p> 所在學院 </p><p> 專業(yè)班級 信息管理與信息系統(tǒng) </p>
2、;<p> 學生姓名 學號 </p><p> 指導教師 職稱 </p><p> 完成日期 年 月 日</p><p> 數(shù)據(jù)庫原理課程網(wǎng)站設計</p><p> 摘要:《數(shù)據(jù)庫原理》課程
3、是我校信息管理與信息系統(tǒng)、計算機科學與技術兩個專業(yè)的核心專業(yè)課程,也是信息科學與計算機技術、電子信息工程等專業(yè)的基礎課程。本文闡述了《數(shù)據(jù)庫原理》的課程發(fā)展現(xiàn)狀以及一些課程網(wǎng)站模式,利用動態(tài)網(wǎng)站的主要技術,針對網(wǎng)站的互動性,師生間的交互性等問題設計出一個課程網(wǎng)站。為學生的混合學習提供更好的網(wǎng)絡資源,以提高師生互動性和評測學生自主學習效果。其中課程網(wǎng)站以智能決策為難點展開。</p><p> 關鍵詞:數(shù)據(jù)庫原理;
4、課程網(wǎng)站;交互性;智能決策。</p><p> The Design of Course Website on Database Theory</p><p> Abstract: The course of Database Theory is information management and information systems, computer science and t
5、echnology basis for the two professional core professional courses in our school. Is also the Information Science and computer technology, electronics and information engineering and other professional foundation courses
6、. In this paper, "Database Theory" Development of the courses and some course web site model, the main advantage of dynamic website technology, for the site interactiv</p><p> Key words: Database
7、Theory; Course Website; Interaction; Intelligent Decision.</p><p><b> 目錄</b></p><p><b> 1緒論1</b></p><p> 1.1《數(shù)據(jù)庫原理》的教學現(xiàn)狀1</p><p> 1.2課程
8、網(wǎng)站的提出及其現(xiàn)狀1</p><p> 1.3課程網(wǎng)站的發(fā)展方向2</p><p> 1.4論文的主要任務2</p><p><b> 2開發(fā)工具4</b></p><p> 2.1相關術語、基本概念4</p><p> 2.2開發(fā)工具4</p>&l
9、t;p> 2.3開發(fā)技術5</p><p> 3課程網(wǎng)站系統(tǒng)分析7</p><p> 3.1課程網(wǎng)站模塊及其功能7</p><p> 3.2模塊實現(xiàn)7</p><p> 4數(shù)據(jù)庫設計10</p><p> 4.1數(shù)據(jù)庫分析10</p><p> 4.2
10、數(shù)據(jù)庫概念設計10</p><p> 4.3數(shù)據(jù)庫邏輯結構13</p><p> 4.3.1 數(shù)據(jù)庫表的結構13</p><p> 4.3.2 數(shù)據(jù)表之間的關系設計19</p><p><b> 5具體設計21</b></p><p> 5.1界面設計21<
11、/p><p> 5.2詳細的模塊設計22</p><p> 5.2.1 登錄界面22</p><p> 5.2.2 資料區(qū)22</p><p> 5.2.3 BBS討論區(qū)23</p><p> 5.2.4 個人信息與密碼修改24</p><p> 5.2.5 數(shù)據(jù)庫
12、表查詢界面24</p><p> 5.2.6 批量處理界面25</p><p> 5.2.7 在線練習區(qū)25</p><p> 5.3關鍵問題實現(xiàn)26</p><p> 5.3.1 中文亂碼處理26</p><p> 5.3.2 連接數(shù)據(jù)庫29</p><p>
13、 5.3.3 自動編號30</p><p> 5.3.4 批量增加用戶問題31</p><p> 5.3.5 練習試卷生成問題34</p><p> 6總結與展望37</p><p> 致謝錯誤!未定義書簽。</p><p><b> 參考文獻38</b></p
14、><p><b> 緒論</b></p><p> 《數(shù)據(jù)庫原理》的教學現(xiàn)狀</p><p> 《數(shù)據(jù)庫原理》課程是我校信息管理與信息系統(tǒng)、計算機科學與技術兩個專業(yè)的核心專業(yè)基礎課程。也是信息科學與計算機技術、電子信息工程等專業(yè)的基礎課程。但在實際的教學和學習中卻存在不少的問題:</p><p> ?。?)理論與實際嚴
15、重脫節(jié):數(shù)據(jù)庫原理與應用課程一般包括數(shù)據(jù)庫原理、設計和應用三個部分;</p><p> (2)教師重點偏向理論教學,很少向學生介紹具體的數(shù)據(jù)庫使用技術,使學生不能將所學知識融會貫通,不能應企業(yè)對數(shù)據(jù)庫應用人才的需要;</p><p> ?。?)教師重點偏向流行數(shù)據(jù)庫開發(fā)工具的使用,忽視甚至放棄原理的教學,造成學生對具體開發(fā)的操作能力突出,但缺乏完整的知識結構[1];</p>
16、<p> ?。?)缺乏多樣性教學手段,由于《數(shù)據(jù)庫原理》課題偏重于理論,很多教師在講解本課程時往往都采用傳統(tǒng)板書的方式。板書的缺點是傳遞的信息量小。教學進度過于緩慢。高等教育不同于義務教育。它的顯著特點就是傳授的信息量大,給予學生的不僅僅是知識本身。更重要的是分析問題解決問題的方法。一些重要的理論的具體應用和具體操作板書就沒有辦法形象地呈現(xiàn)給學生.使得學生在理解和掌握這些內容時就比較困難。不利于學生學習積極性的提高。教學方法
17、上,教師大多采用以教師為中心的方式去講解。缺乏與學生的友好交互,導致學生的思維難以與之同步。從而使教學質量下降。</p><p> ?。?)課程考核方式單一:考核是檢驗教學成果的有效方式和重要手段。對學生學習和教師教學具有重要的導向作用。</p><p> 《數(shù)據(jù)庫原理》是一門理論性很強的課程,其考核制度仍沿襲傳統(tǒng)的應試教育模式。在這種模式下。學生的成績主要還是以學生的期終理論考試成績來
18、做為主要依據(jù)。這種考核方式不能有效激發(fā)學生不同的學習動機.造成學生為考試過關而學。并不注重自身能力的提高,教師僅為完成教學任務而教。并不注重培養(yǎng)學生的能力。這種違反教學規(guī)律、背離教學培養(yǎng)目標的現(xiàn)象已嚴重阻礙了《數(shù)據(jù)庫原理》課程的良性發(fā)展[2]。</p><p> 課程網(wǎng)站的提出及其現(xiàn)狀</p><p> 中國社會科院2005年調查報告顯示:在16~24歲的受訪人群中87.8%是網(wǎng)民,而
19、在這些網(wǎng)絡用戶的構成中,大學生的比例一直高居榜首(每年都在50%以上)。我們不難看出,大學生群體上網(wǎng)率較高,顯著高于其他群體[3]。</p><p> 由此,我們應該清楚地了解到如今網(wǎng)絡對大學生的生活有多大的影響。從這條思路上再去試著去解決以上的五個問題,不難得到這樣一個結論:既然大學生大部分的課余時間都是花在網(wǎng)絡上,我們可以給他們搭建一個學習的平臺,讓他們好好利用手中的這個資源。</p><
20、;p> 在這樣一個信息時代,網(wǎng)絡漸漸地進入我們的生活,成為我們生活的必需品。利用好網(wǎng)絡這個資源,讓師生間的交互不只是在傳統(tǒng)的課堂上,更可以換一種輕松的環(huán)境,以不同的角色去教學和學習。這樣的模式可以培養(yǎng)大學生的積極性,讓他們主動的去學習,幫助他們打好基礎,提升他們的技能的同時培養(yǎng)他們自學能力,讓他們在以后的學習的道路上能走得更好,而不是無味地沉迷于網(wǎng)絡游戲中不可自拔。很多差的學生并不是不想好好學習,而是他們實在找不到幫手,沒有人教
21、,更沒有人管的,久而久之他們也就養(yǎng)成了不好好學習的習慣。由此,我認為開發(fā)一個關于《數(shù)據(jù)庫原理》的課程網(wǎng)站是相當有必要的。</p><p> 現(xiàn)階段很多課程網(wǎng)站都是用于應付評選精品課時而設計的,真正能保證學生學習的沒有幾個,學校對網(wǎng)絡的重視度很高,但更多的資源還是被浪費了,學生根本不喜歡網(wǎng)上學習的這種模式。出現(xiàn)這樣的原因如下:</p><p> 最本質的原因是課程網(wǎng)站的動態(tài)技術不夠,能提
22、供的服務僅是瀏覽,大部分都是靜態(tài)網(wǎng)頁,沒有人維護,這本質上比課堂上的傳統(tǒng)教學還乏味;</p><p> 課程網(wǎng)站的互動性不夠。這也是我的一個重要任務,要通過課程網(wǎng)站的建立以提高師生間的互動性;</p><p> 學生排斥網(wǎng)上學習的這種模式,跟在課堂上一樣,許多學生就是因為得不到有效的幫助而放棄了學習。</p><p><b> 課程網(wǎng)站的發(fā)展方向&l
23、t;/b></p><p> 為了解決課程網(wǎng)站在互動性和智能性的問題,今后的課程網(wǎng)站要想加入更多的動態(tài)元素。整體上來說,網(wǎng)站應該是動態(tài)網(wǎng)站,應用JSP、ASP、AJAX、SQL等動態(tài)技術。整合以往的靜態(tài)BBS討論區(qū),構造更完善的課程網(wǎng)站。其中數(shù)據(jù)庫技術一定要被應用上,在該課程今后的教學中,更是可以使用該課程網(wǎng)站的數(shù)據(jù)庫作為實例。其次,還需要多媒體等技術,讓網(wǎng)站更加美觀,吸納更多的學生。</p>
24、<p><b> 論文的主要任務</b></p><p> 本次論文所要完成的主要任務:</p><p> ?。?)課程的教師以及學習該課程的學生進行交流。他們才是真正的用戶的,他們的需求才是課程網(wǎng)站真正的需求;</p><p> ?。?)建立課程網(wǎng)站的兩大平臺:BBS討論區(qū)和在線練習系統(tǒng)。其中在線練習系統(tǒng)相對來說比較重要。B
25、BS討論區(qū)是基于以往的靜態(tài)網(wǎng)站上建立的,并不是網(wǎng)站的亮點,而在線練習系統(tǒng)運用了一些動態(tài)技術來實現(xiàn);</p><p> ?。?)設計出較為完善的權限管理,這個是為了以后學生能更好地參與網(wǎng)站的建設而設計的。課程網(wǎng)站也是一個很好的教學實例,讓學生更多的參與進來也是對實踐環(huán)節(jié)薄弱的一種彌補吧。</p><p><b> 開發(fā)工具</b></p><p&g
26、t;<b> 相關術語、基本概念</b></p><p> 在討論具體的課程網(wǎng)站的設計之前,先讓我對該課程網(wǎng)站所涉及的一些概念進行簡要的介紹:</p><p> 數(shù)據(jù)庫(DataBase,DB):是一個長期存儲在計算機內的、有組織的、有共享的、統(tǒng)一管理的數(shù)據(jù)集合。她是一個按數(shù)據(jù)結構來存儲和管理數(shù)據(jù)的計算機軟件系統(tǒng)。數(shù)據(jù)庫的概念實際包括兩層意思:(1)數(shù)據(jù)庫是一個
27、實體,它是能夠合理保管數(shù)據(jù)的“倉庫”,用戶在該:“倉庫”中存放要管理的事務數(shù)據(jù),“數(shù)據(jù)”和“庫”兩個概念結合成為數(shù)據(jù)庫。(2)數(shù)據(jù)庫是數(shù)據(jù)管理的新方法和技術,他能更合適的組織數(shù)據(jù)、更方便的維護數(shù)據(jù)、更嚴密的控制數(shù)據(jù)和更有效的利用數(shù)據(jù)[4]。</p><p> 課程網(wǎng)站:是以某個課程學習為中心而建立起來的動態(tài)網(wǎng)站,在普遍的靜態(tài)BBS論壇,利用動態(tài)的技術去實現(xiàn)其強大的功能,不僅可以為學生的混合學習提供更好的網(wǎng)絡資源
28、,更可以提高師生間的互動性并評測學生自主學習效果。</p><p> 靜態(tài)網(wǎng)站:是指全部由HTML代碼格式頁面組成的網(wǎng)站,所有的內容包含在網(wǎng)頁文件中。網(wǎng)頁上也可以出現(xiàn)各種視覺動態(tài)效果,如GIF動畫、FLASH動畫、滾動字幕等。</p><p> 動態(tài)網(wǎng)站:并不是指具有動畫功能的網(wǎng)站,而是指通過數(shù)據(jù)庫進行架構的網(wǎng)站。動態(tài)網(wǎng)站除了要設計網(wǎng)頁外,還要通過數(shù)據(jù)庫和編程序來使網(wǎng)站具有更多自動的和
29、高級的功能。該領域涉及到的東西很多,例如分布式系統(tǒng)方面和協(xié)同設計方面的知識,分布式系統(tǒng)被有效地視為異步通信組件的網(wǎng)絡,在這個網(wǎng)絡中組件提供了由各種模式組成的能滿足商業(yè)需求的服務[5]。為了促成在協(xié)同設計的環(huán)境復雜的交互關系,設計環(huán)境的關鍵參數(shù)和特點用于研究時需要被模擬。這就要求了解互動/溝通的模式,和跨越不同專業(yè)學科的信息流的物流[6]。</p><p> 智能決策支持系統(tǒng):人工智能(AI,Artificial
30、 Intelligence)和DSS相結合,應用專家系統(tǒng)(ES,Expert System)技術,使DSS能夠更充分地應用人類的知識,如關于決策問題的描述性知識,決策過程中的過程性知識,求解問題的推理性知識,通過邏輯推理來幫助解決復雜的決策問題的輔助決策系統(tǒng)[7]。</p><p><b> 開發(fā)工具</b></p><p> J2EE的開發(fā)工具很多,我所使用的工
31、具如表2-1所示:</p><p><b> 表2-1 開發(fā)工具</b></p><p> Microsoft SQL Server2000正是本課程非常重要的一個數(shù)據(jù)庫系統(tǒng)軟件,也是值得學生與老師相互學習的。它在當下也是網(wǎng)站開發(fā)的一款主流軟件。詳細描述請見第四章的數(shù)據(jù)庫分析。</p><p> Myeclipse(全稱為MyEclips
32、e Enterprise Workbench)是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開元產(chǎn)品的支持十分不錯。在它強大的同時也需要付出一點代價,在它的開發(fā)環(huán)境中存在許多的語言包,語言包之間的轉換不恰當,很有可能就會發(fā)生中文亂碼問題。</p><p> Tomcat是一個開源項目。其是免費的,它的底層更是利用java編譯而
33、成,更是兼容Myeclipse與SQL Server 2000。該版本在汲取了Tomcat 6.0.x優(yōu)點的基礎上,實現(xiàn)了對于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。系統(tǒng)中所要涉及的就是Servlet與JSP,它們可謂是形影不離。</p><p><b> 開發(fā)技術</b></p><p> Servlet與JSP是java web中最基
34、礎的兩項技術,兩者相鋪相成。</p><p> Servlet:它是java web的核心程序,所有的網(wǎng)址最終都交給它處理。它并沒有main之類的執(zhí)行方法。當用戶訪問服務器的時候,Tomcat是通過調用Servlet的某些方法來完成整個過程的。Java web應用程序中所有的請求-響應都是由它來完成的。</p><p> JSP:它是一種基于文本的程序,其特點是HTML代碼與Java程
35、序共同存在。執(zhí)行時它會被Tomcat自動編譯,這個過程對開發(fā)者來說是透明的、不需要關注的。編譯后的JSP跟HttpServlet一樣,都是Java.servlet.Servlet接口的子類,因此它就是另一種形式的Servlet[8]。</p><p> Javascript:它是一種基于對象(Object)和事件驅動(Event Driven)并具有安全性能的腳本語言。使用它的目的是與HTML超文本標記語言、J
36、ava腳本語言(Java小程序)一起實現(xiàn)在一個Web頁面中鏈接多個對象,與Web客戶進行交互的作用,從而可以開發(fā)客戶端的應用程序等。它是通過嵌入或調入的HTML語言中實現(xiàn)的。</p><p> JavaBean:它是描述Java的軟件組件模型,有點類似于Microsoft的COM組件概念。在Java模型中,通過JavaBean可以無限擴充Java程序的功能,通過JavaBean的組合可以快速生成新的應用程序。對
37、程序員來說,最好的一點就是JavaBean可以實現(xiàn)代碼的重復利用,另外對于程序的易維護性等也有很重大的意義[9]。</p><p><b> 課程網(wǎng)站系統(tǒng)分析</b></p><p> 課程網(wǎng)站模塊及其功能</p><p> 動態(tài)課程網(wǎng)站的內容可以提供教師和學生進行信息共享與交流的及時修改功能。通過對多個課程網(wǎng)站的分析,課程網(wǎng)站一般包含資
38、料共享區(qū)、討論交流區(qū)、在線練習區(qū)等功能模塊。如圖3-1網(wǎng)站功能結構所示,以下要介紹的就是基于動態(tài)網(wǎng)站所設計的課程網(wǎng)站所要實現(xiàn)的功能:</p><p> 圖3-1 網(wǎng)站功能結構</p><p> ?。?)教學資料區(qū),提供給學生和老師共享資源的平臺,上傳或下載課件、實驗指導、實驗軟件等,擴充教學資源。學生可以對老師提出要求,老師根據(jù)學生的要求上傳對應的課件、軟件等,而不是課堂上的一對多的教學
39、模式,實現(xiàn)一對一的教學模式,對不同階段的學生來說都是有利的。</p><p> ?。?)討論區(qū),討論區(qū)可以讓學生和教師針對課程學習中遇到的問題進行交流學習。在站點管理中更是可以邀請學生去參與,培養(yǎng)他們對學習該課程的積極性</p><p> ?。?)在線練習系統(tǒng),它在整個課程網(wǎng)站中是比較關鍵的一個功能,也是系統(tǒng)的一個亮點。目前,很多的課程網(wǎng)站是再現(xiàn)練習系統(tǒng)主要是針對客觀題,具有客觀題在線練習
40、和判卷功能。也有一些在線練習系統(tǒng)可以自動進行客觀題目閱卷,主觀題讓教師進行在線評閱,系統(tǒng)自動計分。</p><p> ?。?)后臺管理,就是管理人員維護網(wǎng)站的界面。需要完成維護題庫數(shù)據(jù)庫,管理用戶權限等功能。這樣便于管理與維護網(wǎng)站。</p><p><b> 模塊實現(xiàn)</b></p><p> 網(wǎng)站的制作包括頁面布局的規(guī)劃和界面的設計、程序
41、代碼的編寫、后臺數(shù)據(jù)庫的操作、信息內容的整合、網(wǎng)站發(fā)布等環(huán)節(jié),是一項重復而繁瑣的工作,有一定的技術難度,需要掌握網(wǎng)站制作方面的知識和技術。下面就此課程網(wǎng)站所包含的模塊做些介紹:</p><p> ?。?)建立一個課件、實驗指導、實驗軟件等教學資料區(qū)</p><p> 提供學生和老師共享資源的平臺。學生可以對老師提出要求,老師根據(jù)學生的要求上傳對應的課件、軟件等,而不是課堂上的一對多的教學
42、模式,實現(xiàn)一對一的教學模式,對不同階段的學生來說都是有利的。</p><p> (2)建立一個討論區(qū)</p><p> 我將討論區(qū)劃分為3個模塊,如圖3-2所示。在站點管理中更是可以邀請學生去參與,培養(yǎng)他們對學習該課程的積極性。網(wǎng)站中的不少數(shù)據(jù)庫的維護,都是可以讓學生參與進來的,來加強學生對數(shù)據(jù)庫技術的實踐操作,在實踐中去理解數(shù)據(jù)庫原理的理論知識,以解決該課程教學脫離實踐的問題。<
43、;/p><p> 圖3-2 討論區(qū)的功能結構</p><p> ?。?)在線練習系統(tǒng)的實現(xiàn)</p><p> 該功能是基于動態(tài)網(wǎng)站來實現(xiàn)的,在整個課程網(wǎng)站中是比較關鍵的一個功能,也是系統(tǒng)的一個亮點。在線練習系統(tǒng)可以自動進行客觀題目閱卷,主觀題讓教師進行在線評閱,系統(tǒng)自動計分。如圖3-3所示,就是該系統(tǒng)的主要流程。</p><p> 圖3-3
44、 在線練習系統(tǒng)的實現(xiàn)流程</p><p><b> ?。?)權限管理</b></p><p> 將學生與教師的權限進行分開設置。老師的權限是較大的,可以修改學生的權限,來幫助老師去維護網(wǎng)站等,而學生的權限則因人而異。特別是在bbs討論版中,設置版面版主等等,讓更多的學生參與到網(wǎng)站的建設與維護中來,在實踐中學習該門課程。</p><p><
45、;b> 數(shù)據(jù)庫設計</b></p><p><b> 數(shù)據(jù)庫分析</b></p><p> 由于在線練習系統(tǒng)對于數(shù)據(jù)的安全性及完整性要求比較高,并且為了增加課程網(wǎng)站的適用范圍,還要保證系統(tǒng)可以擁有存儲足夠多數(shù)據(jù)的能力。Microsoft SQL Server 是一種客戶/服務器模型的關系型數(shù)據(jù)庫,它具有很強的數(shù)據(jù)完整性、可伸縮性、可管理性、可編
46、程性;具有均衡與完備的功能;具有較低的價格與性能比。SQL Server數(shù)據(jù)庫提供了復制服務、數(shù)據(jù)轉換服務、報表服務,并支持XML語言。適用SQL Server數(shù)據(jù)庫可以大容量地存儲數(shù)據(jù),并對數(shù)據(jù)進行合理地邏輯布局,應用數(shù)據(jù)庫對象可以對數(shù)據(jù)進行復制地操作。SQL Server 2000是一種高性能的關系型數(shù)據(jù)庫管理系統(tǒng),它在SQL Server 7.0的基礎上又擴展了系統(tǒng)性能、可靠性、安全性和易用性,逐漸成為在線事務進程和數(shù)據(jù)倉庫等最好
47、的數(shù)據(jù)庫平臺。綜上所述,本課程網(wǎng)站采用SQL Server 2000數(shù)據(jù)庫。SQL Server 2000也提供了JDBC編程接口,主要可以非常方便地應用Java來操作數(shù)據(jù)庫。</p><p><b> 數(shù)據(jù)庫概念設計</b></p><p> 根據(jù)以上各節(jié)的對網(wǎng)站所做的系統(tǒng)分析和設計,規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫實體分別為用戶實體、學生實體、教師實體、論壇類別實體
48、、版面實體、帖子實體、跟帖實體、題目實體(選擇題、填空題、判斷題、簡答題、設計題、綜合題)、練習實體、練習題目實體等。</p><p> 由于本網(wǎng)站包含了兩個系統(tǒng)——bbs討論區(qū)與在線練習區(qū)。需要用兩張E-R圖來概括這整個網(wǎng)站,bbs討論區(qū)的E-R如圖4-1所示,其中包括了用戶實體、版主實體、論壇類別實體、版面實體、帖子實體以及跟帖實體;在線練習系統(tǒng)的E-R圖4-2如圖所示,其中包括了章節(jié)、題目等8個實體。&l
49、t;/p><p> 圖4-1 bbs討論區(qū)的E-R圖</p><p> 圖4-2 在線練習區(qū)的E-R圖</p><p> 除了用戶實體沒有具體分析外,bbs討論區(qū)中其他實體的E-R圖都較為詳細在圖4-1中展示了,以下就不對它們分析了。教師、學生兩個實體的E-R分別如圖4-3、4-4所示。</p><p> 圖4-3 教師實體的E-R圖&l
50、t;/p><p> 圖4-4 學生實體的E-R圖</p><p> 通過以上的分析,同樣得到了在線練習區(qū)中的一些用戶實體的分析。以下我就該區(qū)內較為重要或者特殊的實體進行分析下:</p><p> 在題目實體中,選擇題實體最為特殊,它的E-R圖如圖4-5所示。比題目實體多了四個選項屬性,這也是方便了在實現(xiàn)階段選擇題在網(wǎng)站上的顯示問題。除了選擇題實體外,填空題實體多了
51、一個空格數(shù)的屬性,為了計算填空題的分值。</p><p> 圖4-5 選擇題實體的E-R圖</p><p><b> 數(shù)據(jù)庫邏輯結構</b></p><p> 根據(jù)4.2節(jié)的數(shù)據(jù)庫概念設計,可以出創(chuàng)建與實體對應的數(shù)據(jù)庫表。在創(chuàng)建數(shù)據(jù)庫表之后,還可以為相應的數(shù)據(jù)庫表創(chuàng)建關系,詳見4.3.2。</p><p> 4.
52、3.1 數(shù)據(jù)庫表的結構</p><p> 本網(wǎng)站的數(shù)據(jù)庫表一共為17張,以下給出完整的表結構。</p><p> 用戶信息表(users)</p><p> 表4-1 users表的結構</p><p> 教師表(teacher)</p><p> 表4-2 teacher表的結構</p>&
53、lt;p> 學生表(student)</p><p> 表4-3 student表的結構</p><p> 論壇類別信息表(bbs_class)</p><p> 表4-4 bbs_class表的結構</p><p> 版面信息表(bbs_board)</p><p> 表4-5 bbs_board表
54、的結構</p><p> 貼子信息表(bbs_root)</p><p> 表4-6 bbs_root表的結構</p><p> 跟帖信息表(bbs_answer)</p><p> 表4-7 bbs_answer表的結構</p><p> 選擇題表(choose)</p><p>
55、 表4-8 choose表的結構</p><p> 填空題表(blank)</p><p> 表4-9 blank表的結構</p><p> 判斷題表(judge)</p><p> 表4-10 judge表的結構</p><p> 簡答題表(answer)</p><p> 表4-
56、11 answer表的結構</p><p> 設計題表(design)</p><p> 表4-12 design表的結構</p><p> 綜合題表(essay)</p><p> 表4-13 essay表的結構</p><p> 練習表(exercise)</p><p> 表4
57、-14 exercise表的結構</p><p> 練習題目得分表(exerciseScore)</p><p> 表4-15 exerciseScore表的結構</p><p> 教師評閱表(mark)</p><p> 表4-16 mark表的結構</p><p> 題目表(questions)</
58、p><p> 表 4-17 questions表的結構</p><p> 4.3.2 數(shù)據(jù)表之間的關系設計</p><p> 本網(wǎng)站設計如上20張數(shù)據(jù)庫表,bbs討論區(qū)數(shù)據(jù)庫表之間的關系如圖4-6所示,在線練習區(qū)數(shù)據(jù)庫表之間的關系如圖4-7所示。</p><p> 圖4-6 bbs討論區(qū)數(shù)據(jù)庫表之間的關系</p><
59、p> 圖4-7 在線練習區(qū)數(shù)據(jù)庫表之間的關系</p><p><b> 具體設計</b></p><p> 在線練習系統(tǒng)是本次畢業(yè)設計的一個亮點,也是本次畢業(yè)設計的一個難點。</p><p> 在線練習系統(tǒng)應包括網(wǎng)上作業(yè)提交系統(tǒng)和在線作業(yè)批改分析系統(tǒng)。不同于目前許多僅是發(fā)布信息和提供資料下載的靜態(tài)課程網(wǎng)站,本課程的網(wǎng)上作業(yè)系統(tǒng)提供
60、了學生之間、師生之間的短消息平臺和BBS平臺,可以實現(xiàn)師生之間全互動的網(wǎng)上交流。目前課程所有教學活動均可在網(wǎng)上進行,取消了紙質作業(yè),大大提高了效率,也便于優(yōu)質教學資源的積累[10]。</p><p><b> 界面設計</b></p><p> 本網(wǎng)站所使用的主要頁面文件的信息如表5-1所示:</p><p> 表5-1 頁面文件信息&l
61、t;/p><p> 它們之間的關系如圖5-1所示。</p><p> 圖5-1 各頁面之間的關系圖</p><p><b> 詳細的模塊設計</b></p><p> 5.2.1 登錄界面</p><p> 用戶只有通過了這個模塊的驗證之后,才能進入系統(tǒng),并完成自己的操作等。登錄界面的效果
62、圖如圖5-2所示。該過程通過loginResult這個Servlet對用戶所輸入的用戶名與密碼進行驗證。</p><p> 圖5-2 登錄界面的效果圖</p><p> 5.2.2 資料區(qū)</p><p> 該區(qū)是學生或老師登錄網(wǎng)站后進入的第一個頁面,網(wǎng)頁上提供了少量的課程資料的下載,登錄后的效果如圖5-3所示。學生用戶在該頁面可以下載到教師上課用的PPT之
63、類的課程資料。</p><p> 圖5-3 資料區(qū)的效果圖</p><p> 5.2.3 BBS討論區(qū)</p><p> BBS討論區(qū)是教師與學生間很好的一個溝通平臺,研究問題并討論問題等等。改區(qū)的文章分類,按層次分,分別是論壇類別、論壇版面、帖子和跟帖。BBS討論區(qū)首頁效果圖如圖5-4所示,發(fā)布文章頁面的效果圖如5-5所示。</p><
64、p> 圖5-4 BBS討論區(qū)首頁的效果圖</p><p> 圖5-5 文章發(fā)布頁面</p><p> 5.2.4 個人信息與密碼修改</p><p> 個人信息與密碼的修改頁面的效果圖分別如圖5-6、5-7所示。</p><p> 圖5-6 個人信息頁面的效果圖</p><p> 圖5-7 密碼修改
65、頁面的效果圖</p><p> 5.2.5 數(shù)據(jù)庫表查詢界面</p><p> 當管理員要針對數(shù)據(jù)庫中某張表、某些記錄、或者某條記錄進行操作時,可以先通過數(shù)據(jù)庫表查詢頁面進行查詢,然后修改、刪除、添加。頁面效果圖如圖5-8所示。圖5-9是針對數(shù)據(jù)庫中的學生表進行查詢后得到的結果,頁面上管理員可以進行批量的刪除,逐一的添加與修改。</p><p> 圖5-8
66、數(shù)據(jù)庫表查詢界面的效果圖</p><p> 圖5-9 對學生表進行查詢后的結果</p><p> 5.2.6 批量處理界面</p><p> 系統(tǒng)未設置注冊界面,為了方便管理員添加用戶,特為用戶開辟了這個界面,管理員可以通過上傳txt文檔來添加多個用戶,txt文檔要每一行都要包含一個用戶id。效果圖如圖5-10所示。</p><p>
67、 圖5-10 批量處理界面的效果圖</p><p> 5.2.7 在線練習區(qū)</p><p> 用戶可以通過選擇試卷難度來選擇相應的練習試卷,練習試卷的題型、個數(shù)、分值如表2所示。在線練習區(qū)的效果圖如圖5-11所示。生成練習試卷后的界面效果圖如圖5-12所示。</p><p> 表5-2 練習試卷的組成情況</p><p> 圖5
68、-11 在線練習區(qū)首頁的效果圖</p><p> 圖5-12 學生在線練習頁面的效果圖</p><p><b> 關鍵問題實現(xiàn)</b></p><p> 5.3.1 中文亂碼處理</p><p> 使用Myeclipse時最需要解決的就是中文亂碼問題,解決亂碼的方法有很多,我選擇的是使用filter(過濾器)與
69、一些Tomcat的配置。Filter其實是一個Servlet,我建立了一個CharacterEncodingFilter類,它的代碼如下:</p><p> import java.io.IOException;</p><p> import javax.servlet.*;</p><p> import javax.servlet.http.HttpSe
70、rvletRequest;</p><p> import javax.servlet.http.HttpServletResponse;</p><p> public final class CharacterEncodingFilter implements Filter</p><p><b> {</b></p>
71、<p> public CharacterEncodingFilter()</p><p><b> {</b></p><p> encoding = "utf-8";</p><p> ignore = false;</p><p><b> }</b>&
72、lt;/p><p> public void init(FilterConfig config)</p><p><b> {</b></p><p> if (config.getInitParameter("encoding") != null)</p><p> encoding = con
73、fig.getInitParameter("encoding");</p><p> if (config.getInitParameter("ignore") != null)</p><p> ignore = (new Boolean(config.getInitParameter("ignore")))</p&g
74、t;<p> .booleanValue();</p><p><b> }</b></p><p> public void doFilter(ServletRequest request, ServletResponse response,</p><p> FilterChain chain) throws IOEx
75、ception, ServletException</p><p><b> {</b></p><p> HttpServletRequest req = (HttpServletRequest) request;</p><p> HttpServletResponse res = (HttpServletResponse) resp
76、onse;</p><p> if (!ignore)</p><p><b> {</b></p><p> req.setCharacterEncoding(encoding);</p><p> res.setCharacterEncoding(encoding);</p><p>
77、<b> }</b></p><p> chain.doFilter(request, response);</p><p><b> }</b></p><p> public void destroy()</p><p><b> {</b></p>
78、<p><b> }</b></p><p> private String encoding;</p><p> private boolean ignore;</p><p><b> }</b></p><p> Web.xml中的配置代碼如下:</p>&
79、lt;p><b> <filter></b></p><p> <filter-name>Set Character Encoding</filter-name></p><p> <filter-class>sino.servlet.CharacterEncodingFilter</filter-cl
80、ass></p><p> <init-param></p><p> <param-name>encoding</param-name></p><p> <param-value>UTF-8</param-value></p><p> </init-para
81、m></p><p><b> </filter></b></p><p> <!-- 過濾所有的jsp文件 --></p><p> <filter-mapping></p><p> <filter-name>Set Character Encoding&
82、lt;/filter-name></p><p> <url-pattern>*.jsp</url-pattern></p><p> </filter-mapping></p><p> <!-- 過濾所有的servlet文件 --></p><p> <filter-ma
83、pping></p><p> <filter-name>Set Character Encoding</filter-name></p><p> <url-pattern>/*</url-pattern></p><p> </filter-mapping></p><
84、p> 以上的代碼能解決表單以post方式提交的亂碼問題,要解決get方式的亂碼問題,就需要給tomcat安裝目錄下的conf文件下的server.xml文件中的<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
85、;中加上URIEncoding="UTF-8"即可。</p><p> 5.3.2 連接數(shù)據(jù)庫</p><p> 該網(wǎng)站中比較基本的一個功能,也是缺不得的一個功能,我建立了CreateConnectionSQL類來實現(xiàn)連接數(shù)據(jù)的操作。其中設立了一些常量:</p><p> private final static String DATAB
86、ASE = "test";</p><p> private final static String DRIVERNAME = "com.microsoft.jdbc.sqlserver.SQLServerDriver";</p><p> private final static String URL = "jdbc:microsof
87、t:sqlserver://localhost:1433;DatabaseName=" + DATABASE;</p><p> privatefinal static String USERNAME = "sa";</p><p> private final static String USERPASSWORD = "";<
88、/p><p> private static ResultSet rs;</p><p> private static Statement st;</p><p> 建立數(shù)據(jù)庫連接的代碼如下所示:</p><p><b> try</b></p><p><b> {</b
89、></p><p> Class.forName(DRIVERNAME).newInstance();</p><p> Connection conn = DriverManager.getConnection(URL, USERNAME, USERPASSWORD);</p><p> st = conn.createStatement();<
90、/p><p><b> }</b></p><p> catch (Exception e)</p><p><b> {</b></p><p> e.printStackTrace();</p><p><b> }</b></p>
91、<p><b> 關閉數(shù)據(jù)庫的代碼:</b></p><p> st.close();</p><p> conn.close();</p><p> 其中還需要注意的就是當使用Statement的executeQuery(String Statment)方法對數(shù)據(jù)庫表進行查詢時,變量Statement記錄用戶的SQL語句
92、,需要注意SQL語句中什么時候要保留英文單引號,不然查詢數(shù)據(jù)庫表時容易出現(xiàn)異常。</p><p> 5.3.3 自動編號</p><p> 數(shù)據(jù)庫表中有很多的id需要自動編號,其中有一些問題也是需要解決的,特別是碰到有些記錄被刪除的數(shù)據(jù)庫表時。例如數(shù)據(jù)庫表中原有id為1、2、3、4的記錄,記錄2被用戶刪除后,用戶要向該數(shù)據(jù)庫表添加數(shù)據(jù),此時要實現(xiàn)的是插入的記錄id號應該為2,而不是為
93、5,這才是真正的自動編號。以下是我實現(xiàn)自動編號中如何獲取已被刪除記錄id的代碼:</p><p> int id = 1;</p><p> //查詢bbs_root表,獲得記錄保存在變量rs中</p><p> ResultSet rs = CreateConnectionSQL.CreateConnectionTable("bbs_root&qu
94、ot;);</p><p> ArrayList<Integer> list = new ArrayList<Integer>();</p><p><b> try</b></p><p><b> {</b></p><p> //判斷rs是否為空</p&g
95、t;<p> if (!rs.wasNull())</p><p><b> {</b></p><p> //rs的指針下移,返回是否為空</p><p> while(rs.next())</p><p><b> {</b></p><p>
96、//獲得數(shù)據(jù)庫表的id</p><p> list.add(rs.getInt("id"));</p><p> //判斷id是否與記錄的行號相等,尋找被刪記錄的id</p><p> if(rs.getInt("id") != rs.getRow())</p><p><b> {&
97、lt;/b></p><p> id = rs.getRow();</p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {&
98、lt;/b></p><p> id = Collections.max(list) + 1;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b&g
99、t; }</b></p><p> catch (SQLException e)</p><p><b> {</b></p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><
100、p><b> }</b></p><p> 5.3.4 批量增加用戶問題</p><p> 批量增加用戶的功能主要由batchProcess這個Servlet實現(xiàn)的,主要是實現(xiàn)對txt文檔的逐行讀取,判斷每一行是否為空,再者就是對數(shù)據(jù)庫表進行操作。它的完整代碼如下:</p><p> package sino.servlet;&
101、lt;/p><p> import java.io.BufferedReader;</p><p> import java.io.FileReader;</p><p> import java.io.IOException;</p><p> import java.sql.SQLException;</p><p
102、> import javax.servlet.RequestDispatcher;</p><p> import javax.servlet.ServletException;</p><p> import javax.servlet.http.HttpServlet;</p><p> import javax.servlet.http.Http
103、ServletRequest;</p><p> import javax.servlet.http.HttpServletResponse;</p><p> import sino.java.CreateConnectionSQL;</p><p> public class batchProcess extends HttpServlet</p&g
104、t;<p><b> {</b></p><p> private static final String A = "student";</p><p> private static final String B = "teacher";</p><p> private stat
105、ic final String C = "users";</p><p> private static final String D = "prefession";</p><p> private static final String E = "classNumber";</p><p> pu
106、blic void doGet(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException</p><p><b> {</b></p><p> String tableName = req
107、uest.getParameter("tableName");</p><p> String path = request.getParameter("filename");</p><p> BufferedReader file = new BufferedReader(new FileReader(path)); </p>
108、<p> String m = ""; </p><p> String statement = "";</p><p> if(A.equals(tableName))</p><p><b> {</b></p><p> String prefessi
109、on = request.getParameter(D);</p><p> String classNumber = request.getParameter(E);</p><p> while((m = file.readLine()) != null)</p><p><b> {</b></p><p>
110、 if (!m.equals("0")) //文本結束的標志 </p><p><b> { </b></p><p> if (!m.equals("")) //不需要讀取空行 </p><p><b> { </b></p><p>
111、;<b> try</b></p><p><b> {</b></p><p> statement = "insert into " + C</p><p> + "(id,password,kind)" + " VALUES('" + m +
112、 "','" + m + "','" + tableName + "')";</p><p> CreateConnectionSQL.workStatement(statement);</p><p> statement = "UPDATE " + tableNa
113、me </p><p> + " SET prefession='" + prefession + "',classNumber='" + classNumber + "'" </p><p> + " where id='" + m + "'&qu
114、ot;;</p><p> CreateConnectionSQL.workStatement(statement);</p><p><b> }</b></p><p> catch (SQLException e)</p><p><b> {</b></p><p
115、> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> } </b></p><p><b> } </b>&l
116、t;/p><p><b> }</b></p><p><b> }</b></p><p> else if(B.equals(tableName))</p><p><b> {</b></p><p> while((m = file.rea
117、dLine()) != null)</p><p><b> {</b></p><p> if (!m.equals("0")) //文本結束的標志 </p><p><b> { </b></p><p> if (!m.equals(""
118、)) //不需要讀取空行 </p><p><b> { </b></p><p> statement = "INSERT INTO " + C</p><p> +"(id,password,kind)" </p><p> + " VALUES(
119、39;" + m + "','" + m + "','" + tableName +"')";</p><p><b> try</b></p><p><b> {</b></p><p> CreateC
120、onnectionSQL.workStatement(statement);</p><p><b> }</b></p><p> catch (SQLException e)</p><p><b> {</b></p><p> // TODO Auto-generated catch
121、 block</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p><b> }<
122、;/b></p><p><b> }</b></p><p> RequestDispatcher dispatcher = request.getRequestDispatcher("doSuccess.jsp");</p><p> dispatcher.forward(request, response)
123、;</p><p><b> }</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException</p><p&
124、gt;<b> {</b></p><p> doGet(request, response);</p><p><b> }</b></p><p><b> }</b></p><p> 5.3.5 練習試卷生成問題</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程網(wǎng)站—數(shù)據(jù)庫原理與應用【畢業(yè)論文】
- 課程網(wǎng)站—數(shù)據(jù)庫原理與應用畢業(yè)論文.doc
- 數(shù)據(jù)庫原理畢業(yè)論文
- 數(shù)據(jù)庫原理課程網(wǎng)站設計【畢業(yè)論文+文獻綜述+開題報告+任務書】
- 數(shù)據(jù)庫原理課程網(wǎng)站設計[文獻綜述]
- 數(shù)據(jù)庫原理課程網(wǎng)站設計[開題報告]
- 《數(shù)據(jù)庫系統(tǒng)原理》課程網(wǎng)站課程設計
- 數(shù)據(jù)庫原理課程網(wǎng)站設計[任務書]
- 數(shù)據(jù)庫設計畢業(yè)論文
- 《數(shù)據(jù)庫原理》課程設計報告---微博網(wǎng)站的數(shù)據(jù)庫系統(tǒng)設計
- html課程網(wǎng)站—數(shù)據(jù)庫原理與應用
- 數(shù)據(jù)庫課程設計論文收費停車場管理系統(tǒng)數(shù)據(jù)庫設計畢業(yè)論文
- 數(shù)據(jù)庫畢業(yè)論文
- 人才數(shù)據(jù)庫及網(wǎng)站的設計與實現(xiàn)畢業(yè)論文
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫原理及應用課程設計
- 2017畢業(yè)論文-數(shù)據(jù)庫原理與應用實驗
- 數(shù)據(jù)庫課程設計--數(shù)據(jù)庫系統(tǒng)原理
- 數(shù)據(jù)庫原理課程設計
- 車之家商城的數(shù)據(jù)庫和網(wǎng)站設計【畢業(yè)論文】
- 《數(shù)據(jù)庫原理》課程設計
評論
0/150
提交評論