選排課系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  畢業(yè)設計(論文)</b></p><p>  基于Java EE的湘南學院體育選向課程</p><p><b>  網站的設計與實現</b></p><p>  姓 名 </p><p>  系 別 、專 業(yè)

2、計算機科學系、計算機</p><p><b>  科學與技術(師范)</b></p><p>  導師姓名、職稱 </p><p>  完 成 時 間 2012年4月28日 </p><p><b>  目 錄</b></p><p

3、><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  1 概述1</b></p><p>  1.1 選向課程平臺介紹1</p><p>  1.2開發(fā)背景及意義1</p><p>  1.3 國內外研究動態(tài)

4、2</p><p>  1.4 論文的組織結構2</p><p>  2系統(tǒng)開發(fā)環(huán)境及相關技術理論介紹3</p><p><b>  2.1開發(fā)環(huán)境3</b></p><p>  2.2 相關技術簡介3</p><p><b>  3 系統(tǒng)分析11</b></

5、p><p>  3.1系統(tǒng)功能需求分析11</p><p>  3.2 可行性分析11</p><p>  4 系統(tǒng)總體設計13</p><p>  4.1 系統(tǒng)功能總體框架13</p><p>  4.2 系統(tǒng)各功能模塊設計14</p><p>  5 系統(tǒng)詳細設計17</p&g

6、t;<p>  5.1系統(tǒng)設計的原則和目標17</p><p>  5.2 系統(tǒng)體系結構的設計17</p><p>  5.3 數據庫設計17</p><p>  6 系統(tǒng)的實現23</p><p>  6.1 系統(tǒng)實現的流程圖23</p><p>  6.2 系統(tǒng)具體功能模塊的實現24<

7、;/p><p>  7 系統(tǒng)的測試32</p><p>  7.1軟件測試目的32</p><p>  7.2軟件測試方法32</p><p>  7.3測試計劃32</p><p>  7.4軟件需求測試結論37</p><p>  7.5系統(tǒng)維護37</p><p

8、><b>  結 論38</b></p><p><b>  參考文獻39</b></p><p><b>  致 謝40</b></p><p><b>  摘 要</b></p><p>  湘南學院體育選向課程平臺是針對在校學生

9、和教師使用的一個選排課系統(tǒng),其開發(fā)主要包括后臺數據庫的建立和維護以及前端應用程序的開發(fā)兩個方面。本系統(tǒng)采用B/S架構,構建于JAVA EE平臺之上,整個系統(tǒng)應用了MVC三層架構模式。</p><p>  本系統(tǒng)主要用戶是學生、教師、系教務管理員和系統(tǒng)管理員。系統(tǒng)管理員管理系統(tǒng)的基本信息,學生和教師通過系統(tǒng)完成不同的工作。系統(tǒng)需要實現的功能主要有4個,系統(tǒng)管理員對整個系統(tǒng)基本信息的維護,教務人員對課程的編排,教師對

10、應的查課功能,以及學生對應的選課功能。</p><p>  論文首先對系統(tǒng)進行大致的說明,再介紹了設計開發(fā)過程中用到的技術,其次是系統(tǒng)需求分析,系統(tǒng)總體設計,系統(tǒng)詳細設計,然后具體講解了系統(tǒng)的實現與測試,最后對本次論文做了一個小結。 關鍵字:選排課系統(tǒng);數據庫;選向課程</p><p><b>  Abstract</b></p><p>

11、;  The PE Elective and Arrangement Course Platform is aimed to support the students and teachers of XiangNan University for PE course arrangement and election. Its development includes database construction and applicati

12、on program production. This platform which bases on JAVA EE and B/S construction, and platform use MVC three layers framework pattern.</p><p>  Its majority users are students, teach

13、ers, educational managers and platform managers. The platform managers manage the essential information of the system, and the stu

14、dents and teachers finish different work with this system. Through this platform there are 4 tasks that can be finished: platform manager can preserve the information of the w

15、hole system, educational managers can arrange the curriculum, the teachers can look for the courses and the students can select courses.</p><p>  This article take a brief introduction of the system at first

16、, then introduction the technology used during designing and building this system, in the next, analysis the system demand, overall design and detailing structure, then explain the system’s enforce and test in details. I

17、n the end, this article takes a conclusion of this system design. </p><p>  Key words: course selection system, selective curriculum, database </p><p><b>  1 概述 </b></p><p

18、>  1.1 選向課程平臺介紹</p><p>  湘南學院體育選向課程平臺是一個選排課系統(tǒng),選排課系統(tǒng)作為計算機應用的一部分,使用計算機對課程信息進行管理,有著手工管理所無法比擬的優(yōu)點[1]。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高人事勞資管理的效率,也是各大院??茖W化、正規(guī)化管理的重要條件。湘南學院體育選向課程平臺主要用戶是學生、教師、系教務管理員

19、和系統(tǒng)管理員,教務人員管理系統(tǒng)的基本信息(如課程、老師、學生等),學生和教師通過系統(tǒng)完成不同的工作。系統(tǒng)需要實現的功能總體來說共有4個,分別如下:</p><p>  系統(tǒng)管理員可以維護整個系統(tǒng)的基本信息;</p><p>  教務人員可以對課程進行編排管理;</p><p><b>  教師可以查看課表;</b></p><

20、;p><b>  學生可以選課;</b></p><p>  1.2開發(fā)背景及意義</p><p><b>  1.2.1背景</b></p><p>  目前湘南學院體育選向課程采用的方式是教師通過表格手工登記學生選課信息,但是當前湘南學院學生人數已經到達2萬。如果采取傳統(tǒng)的手工方式,就需要教務管理人員和教師花費大

21、量的時間和精力對選課信息進行統(tǒng)計整理,然后根據統(tǒng)計信息進行手動編排課程,這種方式不利于教師及教務管理人員的管理。因此教務處委托謝老師開發(fā)一個體育選向課程網站,謝老師把這個當作一個畢業(yè)設計課題,我在謝老師的指導下開發(fā)了這個系統(tǒng)。</p><p><b>  1.2.1意義</b></p><p>  解決了傳統(tǒng)方式所造成的教務管理人員工作的浪費,大大提高了教務管理員的工

22、作效率。</p><p>  1.3 國內外研究動態(tài)</p><p>  隨著Internet的逐步發(fā)展,網絡不僅僅是科研部門學術交流的平臺,在其他的方面上也得到了很大的發(fā)展,尤其是在校園網的分支教務管理上[2]。同時在教務管理的主要分支選課排課系統(tǒng)的應用上得到了較大的發(fā)展。</p><p>  國外針對此問題展開的研究較早。1963年C C Gotlieb 在他的

23、文章《The Construction of Class-Teacher Time-Tables》中提出了課表編排的數學模型。這篇文章引起了人們對于選排課問題的重視。</p><p>  而國內對選排課問題的研究較晚。1984年,清華大學在《清華大學學報》上發(fā)表了林漳希和林堯瑞在該課題上的實驗性研究成果《人工智能技術在課表編排中的應用》,標志著我國開始了對選排課問題的研究。</p><p>

24、;  目前,我國高校都實行了學分制,它的核心是允許學生自由選課,即把學習的自主權交給學生。在這里,學生選課時的制約因素比較復雜,工作量也很大,而且往往需要在較短的時間內完成。運用計算機輔助選課,即能實時地對大量選課數據進行檢驗和統(tǒng)計,十分方便地輸出選課結果,同時也避免了人工處理時容易產生的錯誤。在高等學校的教務管理工作中,課程表的編排是一項十分復雜、棘手的工作。在排課過程中,除了滿足大量的制約條件以外,還必須解決許多沖突與矛盾[3]。利

25、用計算機輔助進行課表編排工作,既提高了排課工作的科學性,又可大大減輕管理人員的工作強度,提高工作效率,從而使學校教務管理現代化邁上了一個新臺階。</p><p>  1.4 論文的組織結構</p><p>  第一章是緒論,簡述設計本系統(tǒng)的初衷以及背景。</p><p>  第二章是開發(fā)技術簡介,簡述本系統(tǒng)開發(fā)和設計過程中用的到的主要技術。</p>

26、<p>  第三章是系統(tǒng)需求分析,簡述自己分析系統(tǒng),對項目進行需求分析。</p><p>  第四章是系統(tǒng)的概要設計,簡述系統(tǒng)的概要設計的。</p><p>  第五章是詳細設計,簡述系統(tǒng)設計的詳細過程。</p><p>  第六章是系統(tǒng)的實現,簡述系統(tǒng)是如何實現的。</p><p>  第七章是系統(tǒng)的測試,對系統(tǒng)進行必要的測試。&

27、lt;/p><p>  最后是結論,總結了本論文的主要工作和系統(tǒng)特色,以及本次論文設計的心得。</p><p>  2系統(tǒng)開發(fā)環(huán)境及相關技術理論介紹</p><p><b>  2.1開發(fā)環(huán)境</b></p><p>  2.1.1 硬件環(huán)境</p><p>  CUP:至少PentiumIII800

28、以上</p><p>  內存:至少128M以上</p><p>  硬盤:至少20G硬盤空間以上</p><p><b>  顯示器:15顯示器</b></p><p>  2.1.2 軟件環(huán)境</p><p>  運行環(huán)境: Windows 7</p><p>  開發(fā)

29、工具: MyEclipse8.6</p><p>  數據庫: MySQL5.5</p><p>  Web服務器: Tomcat6.0.32</p><p>  瀏覽器: IE 8.0</p><p>  2.2 相關技術簡介</p><p>  2.2.1JAVA EE概述</p><p&g

30、t;  J2EE是美國Sun公司推出的一種全新概念的應用程序模型,是一套全然不同于傳統(tǒng)應用開發(fā)的技術架構,包含許多組件,主要可簡化且規(guī)范應用系統(tǒng)的開發(fā)與部署,進而提高可移植性、安全與再用價值。與傳統(tǒng)的互聯網應用程序模型相比有著不可比擬的優(yōu)勢。</p><p>  目前,Java 2平臺有3個版本,它們是適用于小型設備和智能卡的Java 2平臺Micro版(Java 2 Platform Micro Edition

31、,J2ME)、適用于桌面系統(tǒng)的Java 2平臺標準版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務器應用程序和服務的Java 2平臺企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關的復雜問題的體系結構。Java語言相對于windows變成語言來說,最大優(yōu)勢在java語言是跨平

32、臺的,而widows的編程通常都是針對windows系統(tǒng)來開發(fā),可移植性遠不及Java。J2EE技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版中的許多優(yōu)點,例如"編寫一次、隨處運行"的特性、方便存取數據庫的JDBC(Java DataBase Connectivity)應用程序接口(API, Application Program Interface)技術以及能夠在In</p

33、><p>  2.2.2 Struts 2框架與MVC簡介</p><p>  Struts 2是Struts的下一代產品,是在 struts 和WebWork的技術基礎上進行了合并的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構的差別巨大。Struts 2以WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業(yè)務邏輯控制器能夠與

34、Servlet API完全脫離開,所以Struts 2可以理解為WebWork的更新產品。雖然從Struts 1到Struts 2有著太大的變化,但是相對于WebWork,Struts 2只有很小的變化,如圖2-1所示:</p><p>  圖2-1 Struts的工作原理圖</p><p>  MVC模式英文即Model-View-Controller,即把一個應用的輸入、處理、輸出流程

35、按照Model、View、Controller的方式進行分離,這樣一個應用被分成三個層——模型層、視圖層、控制層。</p><p>  視圖(View)代表用戶交互界面,對于Web應用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應用的復雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。</p><p>  模型(Model):就是業(yè)務流程/狀態(tài)的處理以及業(yè)務規(guī)則的

36、制定。業(yè)務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數據,并返回最終的處理結果。業(yè)務模型的設計可以說是MVC最主要的核心。</p><p>  控制(Controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄祿幚怼?lt;

37、/p><p>  模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數據,所有其它依賴于這些數據的視圖都應反映到 這些變化。因此,無論何時發(fā)生了何種數據變化,控制器都會將變化通知所有的視圖,導致顯示的更新。這實際上是一種模型的變化-傳播機制[5]。如圖2-2所示:</p><p>  圖2-2 MVC的原理圖</p><p&

38、gt;  2.2.3 Hibernate與ORM簡介</p><p>  對象-關系映射(Object/Relation Mapping,簡稱ORM),是隨著面向對象的軟件開發(fā)方法發(fā) 展而產生的。面向對象的開發(fā)方法是當今企業(yè)級應用開發(fā)環(huán)境中的主流開發(fā)方法,關系數據庫是企業(yè)級應用環(huán)境中永久存放數據的主流數據存儲系統(tǒng)。對象和關系數 據是業(yè)務實體的兩種表現形式,業(yè)務實體在內存中表現為對象,在數據庫中表現為關系數據。內存

39、中的對象之間存在關聯和繼承關系,而在數據庫中,關系數據無法 直接表達多對多關聯和繼承關系。因此,對象-關系映射(ORM)系統(tǒng)一般以中間件的形式存在,主要實現程序對象到關系數據庫數據的映射。</p><p>  Hibernate是輕量級Java EE應用的持久層解決方案,Hibernate不僅管理Java類到數據庫表的映射(包括Java數據類型到SQL數據類型的映射),還是提供數據查詢和獲取數據的方法,可以大幅度

40、縮短使用JDBC處理數據持久化的時間。</p><p>  目前的主流數據庫依然是關系型數據庫,而Java語言則是面向對象的編程語言[6],當把二者結合在一起使用時相當麻煩,而Hibernate則減少了這個問題的困擾,它完成對象模型和基本SQL的關系模型的映射關系。</p><p>  因為有Hibernate的支持,使得Java EE應用的OOA(面向對象分析)、OOD(面向對象設計)、

41、OOP(面向對象編程)三個過程一脈相承,成為一個整體。</p><p>  由于Hibernate是一個和JDBC密切關聯的框架,所以Hibernate的兼容性和JDBC驅動,和數據庫都有一定的關系,但是和使用它的JAVA程序,和App Server沒有任何關系,也不存在兼容性問題。如圖2-3所示:</p><p>  圖2-3 Hibernate體系總覽圖</p><

42、p>  由于Hibernate比較復雜,提供了好幾種運行方式。在輕型體系中,應用程序自己提JDBC連接,并自行管理事務。這種方式使用了Hibernate API的一個最小子集。如圖2-4所示:</p><p>  圖2-4 Hibernate輕型應用體系</p><p>  在前面解決體系中,對于應用程序來說,所有的底層JDBC/JTA API都被抽象了,Hibernate會替你照管

43、好所有的細節(jié)。本文中所用到的就是這種體系。如圖2-5所示:</p><p>  圖2-5 Hibernate全面應用解決體系</p><p>  以下是圖中一些對象的定義:</p><p>  1)SessionFactory</p><p>  對屬于單一數據庫的編譯過的映射文件的一個線程安全的,不可變的緩存快照。它是Session的工廠,

44、是ConnectionProvider的客戶。可能持有一個可選的二級數據緩存,可以在進程級別后集群級別保存可以在事務中重用的數據。</p><p>  2)Session 會話</p><p>  Session是生命周期的單線程對象,代表應用程序和持久層之間的一次對話。封裝了一個JDBC連接,也是Transaction的工廠。保存有必需的(第一級)持久化對象的緩存,用于遍歷對象圖或通過標

45、識符查找對象。</p><p>  3)持久化對象(Persistent Object)及其集合(Collection)</p><p>  生命周期短的單線程對象包含了持久化狀態(tài)和商業(yè)功能。它們可能是普通的JAVABeans/POJOs,唯一特別的是他們現在都從屬于且僅從屬于一個Session。一旦Session關閉,他們都將從Session中取消聯系,可以在任何程序層自由使用。<

46、/p><p>  4)事務(Transaction)</p><p>  事務也是生命周期短的單線程對象,應用程序用它來表示一批工作的原子操作。是底層的JDBC,JTA或者CORBA事務的抽象。一個Session某些情況下可能跨越多個事務。</p><p>  2.2.4 Spring簡介</p><p>  Spring 是一個開源 框 架,是

47、為了解決企業(yè) 應 用程序開發(fā)復雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構,分層架構允許您選擇使用哪一個組件,同時為J2EE 應用程序開發(fā)提供集成的框架。Spring 框架的功能可以用在任何J2EE 服務器中,大多數功能也適用于不受管理 的環(huán)境。Spring 的核心要點是:支持不綁定到特定J2EE 服務的可重用業(yè)務和數據訪問對象。這樣的對象可以在不同J2EE 環(huán)境(Web 或EJB )、獨立應用程序、測試 環(huán)境之間重用[7],如圖2-

48、6所示:</p><p>  圖2-6 Spring框架的組成結構圖</p><p>  組成Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯合實現。每個模塊的功能如下: </p><p>  核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要組件是BeanFactory ,它是工廠模式的實現。BeanFactory

49、使用控制反轉 (IOC ) 模式將應用程序的配置和依賴性規(guī)范與實際的應用程序代碼 分 開。 </p><p>  Spring 上下文:Spring 上下文是一個配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企業(yè)服務,例如JNDI 、EJB 、電子郵件、國際化、校驗和調度功能。 </p><p>  Spring AOP : 通過配置管理特性,Spring AOP

50、模塊直接將面向方面的編程 功 能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何對象支持AOP 。Spring AOP 模塊為基于Spring 的應用程序中的對象提供了事務管理服務。通過使用Spring AOP ,不用依賴EJB 組件,就可以將聲明性事務管理集成到應用程序中。 </p><p>  Spring DAO :JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構

51、來管理異常處理和不同數據庫 供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,并 且極大地降低了需要編寫 的異常代碼數量(例如打開和關閉連接)。Spring DAO 的面向JDBC 的異常遵從通用的DAO 異常層次結構。 </p><p>  Spring ORM :Spring 框架插入了若干個ORM 框架,從而提供了ORM 的對象關系工具,其中包括JDO 、Hibernate 和iBatis SQL Map

52、。所有這些都遵從Spring 的通用事務和DAO 異常層次結構。 </p><p>  Spring為企業(yè)應用的開發(fā)提供了一個輕量級的解決方案。該解決方案包括:基于依賴注入的核心機制,基于AOP的聲明式事務管理,與多種持久層技術的整合,以及優(yōu)秀的Web MVC 框架等。Spring致力于Java EE 應用各層的解決方案,而不是僅僅專注于某一層的方案。</p><p>  2.2.5 JS

53、P技術簡介</p><p>  JSP技術提供了一種簡單快速的方法來創(chuàng)建顯示動態(tài)生成內容的Web頁面。也就是在MVC中充當V(View)的角色。由業(yè)界處于領先地位的Sun公司制定了相關的JSP技術規(guī)范,該規(guī)范定義了如何在服務器和JSP頁面間進行交互,還描述了頁面的格式和語法[8]。</p><p>  JSP頁面使用XML標簽和scriptlets(一種使用JAVA語言編寫的腳本代碼),封

54、裝了生成頁面內容的邏輯。它將各種格式的標簽(HTML或者XML)直接傳遞回響應頁面。通過這種方式,JSP頁面實現了頁面邏輯與其設計和顯示的分離。</p><p>  JSP技術是JAVA系列技術的一部分。JSP頁面被編譯成servlet,并可能調用JAVABeans組件(beans)或Enterprise JAVABeans組件(企業(yè)beans),以便在服務器端處理。因此,JSP技術在構建可升級的基于web的應用

55、程 序時扮演了重要角色。 </p><p>  JSP頁面并不局限于任何特定的平臺或web服務器上。JSP規(guī)范在業(yè)界有著廣泛的適應性。 </p><p>  JSP技術是行業(yè)協(xié)作的結果,它的設計是開放的,符合行業(yè)標準的,并支持絕大多數的服務器、瀏覽器和相關工具。由于使用可重用的組件和標簽取代了對頁面本身腳本語言的嚴重依賴,JSP技 術大大加快了開發(fā)的速度。所有JSP的實現均支持以JAVA編

56、程語言為基礎的腳本語言,它有與生俱來的可適應性,支持復雜的操作。</p><p>  2.2.6 MySQL數據庫簡介</p><p>  MySQL是一個小型關系型數據庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracle收購。MySQL是一種關聯數據庫管理系統(tǒng),關聯數據庫將數據 保存在不同的表中,而不是將所有數據放在一

57、個大倉庫內。這樣就增加了速度并提高了靈活性。MySQL的SQL“結構化查詢語言”。SQL是用于訪問數據庫的最常用標準化語言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫[9]。</p><p>  與其他的大型數據庫例如Oracle、DB2、SQL Server等相比,MyS

58、QL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。</p><p><b>  3 系統(tǒng)分析</b></p><p>  3.1系統(tǒng)功能需求分析<

59、;/p><p>  現代化學校應該有個現代化的管理系統(tǒng)去管理學校內的各項事物,學校是一個數據量比較大的單位,如何去管理及查詢學校內的數據就成為了一項及為重要的問題,同時,學生選課、教務人員排課這項工作是教學管理中很重要的一個環(huán)節(jié),所以開發(fā)出一個選排課系統(tǒng)就是現在及為重要的事情,從而選排課系統(tǒng)的重要性就不言而喻了[10]。</p><p>  本系統(tǒng)的設計目的是要將學生選擇課程和教務管理人員的編

60、排課程通過網絡進行管理。為學生、教師和教務管理人員提供便利。系統(tǒng)的用戶有4種類型,分別為系統(tǒng)管理員、系教務管理員、學生、教師,系統(tǒng)對于一個用戶只允許以一種身份登錄。系統(tǒng)管理員登錄后可以對系統(tǒng)進行信息管理,其主要操作是維護學生、教師和課程的基本信息。學生登錄后的主要操作是選課和查看教師主頁以及查看通知和發(fā)布留言。教師登錄后主要操作是查看課表以及個人信息的維護、留言等功能。</p><p>  將系統(tǒng)需求加以總結,得

61、出系統(tǒng)具有如下幾個功能:</p><p>  系統(tǒng)可以運行在Windows操作系統(tǒng)平臺上,并具有友好的用戶界面。</p><p>  系統(tǒng)用戶類型為:系統(tǒng)管理員、教務人員、學生、教師。</p><p>  系統(tǒng)對于一個用戶只允許以一種身份登錄。</p><p>  只有系統(tǒng)管理員可以維護學生、教師和課程的基本信息。</p>&l

62、t;p>  學生可以選課、查看教師主頁并留言。</p><p>  教師可以選擇查看課表、修改個人信息并增刪改留言。</p><p><b>  3.2 可行性分析</b></p><p>  可行性分析(Feasibility Analysis)也稱為可行性研究,任何一個基于計算機的系統(tǒng),都會受到時間和資源上的限制。必須根據客戶可能提供

63、的時間和資源條件進行可行性研究。它可以避免人力、物力和財力上的浪費。對該系統(tǒng)的開發(fā)從經濟、技術、操作三方面進行分析和研究[11]。</p><p>  可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個方面的內容。</p><p>  3.2.1經濟可行性分析</p><p>  確定開發(fā)項目的開發(fā)成本以及估算開發(fā)

64、項目所能夠產生的經濟效益:該系統(tǒng)目前在校園里受到一致好評,在方便高效快捷的基礎上,有助于學生學習、教師工作及有效的管理的應用價值,有很好的實用和發(fā)展前景。所以本系統(tǒng)在經濟上是可行的。</p><p>  3.2.2技術可行性分析</p><p>  確定現有的技術是否能解決本該開發(fā)項目:本系統(tǒng)主要采用Struts2+Hibernate+Spring架構,使用JAVA語言,和MySql數據庫

65、等主要技術,整個平臺構建于JAVA EE之上,比較容易實現。所以在技術上也是可行的。</p><p>  3.2.3操作可行性分析</p><p>  確定軟件產品是否能夠被最終的用戶所接受,用戶是否能操作最終的產品:本系統(tǒng)采用B/S架構,客戶端采用瀏覽器的形式,操作簡單,方便使用。所以在操作上也是可行的。</p><p>  綜上所述,此系統(tǒng)開發(fā)目標已明確,在技術

66、和經濟,操作三方面都可行,并且投入少、見效快。因此系統(tǒng)的開發(fā)是完全可行的。</p><p><b>  4 系統(tǒng)總體設計</b></p><p>  4.1 系統(tǒng)功能總體框架</p><p>  本系統(tǒng)主要有教務管理員、教師、學生和系統(tǒng)管理員四種用戶組,功能都是圍繞這四個個用戶組設計的。</p><p>  教務管理員相

67、關的功能結構圖如圖4-1所示:</p><p>  4-1系教務管理員功能結構圖</p><p>  教師相關的功能結構圖如圖4-2所示:</p><p>  4-2教師功能結構圖</p><p>  學生相關的功能結構圖如圖4-3所示:</p><p>  4-3學生功能結構圖</p><p>

68、;  系統(tǒng)管理員相關的功能結構圖如圖4-4所示:</p><p>  系統(tǒng)總體的功能結構圖如圖4-5所示:</p><p><b>  4-5系統(tǒng)結構圖</b></p><p>  4.2 系統(tǒng)各功能模塊設計</p><p>  經過詳盡的需求分析,確定各功能模塊內容大致如下:</p><p> 

69、 4.2.1系教務管理員功能模塊</p><p>  系教務管理員注冊、登錄(注冊需要經過認證)后,能自動生成該教務管理員主頁,教務管理員應具有根據學生選課信息進行排課(手動和自動)、調課,并生成相應的排課表及可以在自己的主頁上發(fā)布、刪除、修改自己的通知與查看留言等功能。</p><p>  4.2.2 教師功能模塊</p><p>  教師注冊、登錄、修改個人信息

70、(注冊需要經過認證)后,能自動生成該教師主頁,教師可以查看本學期個人課表及系總課表及可以在自己的主頁上可以發(fā)布、刪除、修改自己的留言。</p><p>  4.2.3 學生功能模塊</p><p>  學生注冊、登錄后,能自動生成該學生主頁,學生可以查看訪問教師個人主頁,針對不同教師、不同課程(同一名教師的同一門課程,最多人數為35人),學生可以自由選課及留言。</p>&l

71、t;p>  4.2.4后臺管理功能模塊</p><p>  后臺管理:系統(tǒng)管理員應具有對數據進行添加、刪除、更改等維護功能。</p><p>  4.3 系統(tǒng)總體及各實體用例圖設計</p><p>  系統(tǒng)總體例圖如圖4-6所示:前端用戶包括教務管理員、教師、和學生。</p><p>  圖4-6 系統(tǒng)總體用例圖</p>

72、<p><b>  5 系統(tǒng)詳細設計</b></p><p>  5.1系統(tǒng)設計的原則和目標</p><p>  本系統(tǒng)的設計目標是借助互聯網為學校建立的一個選向課程網站,是針對在校學生和教師使用的一個選排課系統(tǒng),該系統(tǒng)能方便學生的選課,教務管理員對學生選課信息進行排課、調課,學校的教務管理。最終實現了用戶和課程的信息化管理。</p><

73、p>  5.2 系統(tǒng)體系結構的設計</p><p>  系統(tǒng)依據MVC模式可分為視圖層、控制層、模型層。從程序分布位置角度,系統(tǒng)依次分布在瀏覽器、應用服務器、數據庫系統(tǒng)三層,如圖5-1所示:</p><p>  圖5-1 系統(tǒng)體系構架圖</p><p><b>  5.3 數據庫設計</b></p><p>  5

74、.3.1 數據庫概念結構設計</p><p>  概念結構的設計是將系統(tǒng)需求分析得到的用戶需求抽象為信息結構過程。概念結構設計的結果是數據庫的概念模型。只有將系統(tǒng)應用需求為信息世界的結構,才能轉化為機器翻譯世界中的數據模型,并用DBMS實現這些需求。</p><p>  按照自頂向下分析需求與自底向上設計概念結構方法,概念結構的設計可分為兩步:第一步是抽象數據并設計局部視圖;第二步是集成局

75、部視圖,得到全局的概念結構。</p><p>  利用數據抽象的方法可以對現實世界抽象得出概念模型的子集及屬性,概念結構設計是利用抽象機制對需求分析階段悼念到的數據進行分類、組織(聚集),形成實體集、屬性和碼,確定實體集之間的聯系類型,進而設計E-R圖。</p><p>  5.3.1.1各實體及其屬性</p><p>  本系統(tǒng)總共有以下9個實體:</p&g

76、t;<p>  系統(tǒng)管理員(ID號,用戶名,密碼)。</p><p>  教務管理員(ID號,用戶名,密碼,編號,真實姓名,身份認證)。</p><p>  教師(ID號,用戶名,密碼,編號,真實姓名,所在系,身份認證)。</p><p>  學生(ID號,用戶名,密碼,編號,真實姓名,所在系,權限</p><p>  課程(I

77、D號,課程編號,課程名稱,課程類型)。</p><p>  選課(ID號,用戶名,課程名字)。</p><p>  留言(ID號,用戶名,內容,時間)。</p><p>  排課(ID號,編號,名字,教師名稱,學分,學時,地址,時間)。</p><p>  通知(ID號,標題,內容,時間)</p><p>  5.3.

78、1.2系統(tǒng)E-R圖</p><p>  系統(tǒng)的實體之間關系E-R圖如圖5-2、5-3所示</p><p>  圖5-2 課程-用戶</p><p>  圖5-3 用戶-通知-留言</p><p>  5.3.2 數據庫物理結構設計</p><p>  數據庫在系統(tǒng)中占有及其重要的地位,數據庫結構設計的好壞關系到系統(tǒng)的運

79、行效率、存儲數據的效率、系統(tǒng)的復雜程度等,合理的數據庫結構設計可以提高系統(tǒng)性能。</p><p>  據庫中的各個表的設計結果如下表所示(每個表格表示數據庫中的一個表)。</p><p><b>  (1)用戶信息表</b></p><p>  用戶信息表記錄了所有用戶的信息。其中包括用戶ID,用戶名,編號,性別,用戶真實姓名,權限,身份認證。

80、它們的屬性如表5-1所示。設置用戶ID為主鍵。</p><p>  表5-1用戶信息表(usertable)</p><p><b> ?。?)課程信息表</b></p><p>  課程信息表記錄了課程的所有信息,包括課程編號,課程名稱,課程類型,其屬性如表5-2示。設置課程ID為主鍵。</p><p>  表5-2課

81、程信息表(kecheng)</p><p><b> ?。?)排課信息表</b></p><p>  排課信息表記錄了排課的所有信息,包括課程編號,課程名稱,教師,學分,學時,上課地址,開課時間。其屬性如表5-3示。設置排課ID為主鍵。</p><p>  表5-3排課信息表(paike)</p><p><b&g

82、t; ?。?)選課信息表</b></p><p>  選課信息表記錄了選課的所有信息,包括選課ID,課程名稱,用戶名稱。其屬性如表5-4示。設置選課ID為主鍵。</p><p>  表5-4選課信息表(xuanke)</p><p><b> ?。?)留言信息表</b></p><p>  留言信息表記錄了留

83、言的所有信息,包括留言ID,用戶名稱,留言內容,留言時間。其屬性如表5-5示。設置留言ID為主鍵。</p><p>  表5-5留言信息表(liuyan)</p><p><b> ?。?)通知信息表</b></p><p>  通知信息表記錄了通知的所有信息,包括通知ID,通知標題,通知內容,發(fā)布時間。其屬性如表5-6示。設置通知ID為主鍵。

84、</p><p>  表5-6通知信息表(tongzhi)</p><p><b>  6 系統(tǒng)的實現</b></p><p>  6.1 系統(tǒng)實現的流程圖</p><p>  本系統(tǒng)共有系統(tǒng)管理員、教務管理員、教師和學生四種用戶,根據其功能需求,它們相關的系統(tǒng)流程圖如圖6-1所示:</p><p&g

85、t;<b>  圖6-1系統(tǒng)流程圖</b></p><p>  6.2 系統(tǒng)具體功能模塊的實現</p><p>  6.2.1用戶注冊設計模塊的實現</p><p>  用戶注冊頁面如圖6-2,圖6-3所示:</p><p>  圖6-2 用戶注冊選擇注冊身份頁面</p><p>  圖6-3 用

86、戶注冊頁面</p><p>  用戶選擇注冊的身份后并填入完必要信息后,點擊提交,將信息提交給zhuce.jsp進行操作。其相關代碼部分如下:</p><p>  <form name="zhuce" action="<%=path %>/userCreate.action" method="post">&

87、lt;/p><p>  用戶名:<input size=15 name="username" class="leftbox1"></p><p>  密 碼:<input type=password size=15 name="password"></p><p>  確認密碼:<

88、;input type=password size=15 name="passworda"></p><p>  <%String shenfen = request.getParameter("shenfen");</p><p>  if("學生".equals(shenfen)){ %></p>

89、<p>  學號:<input size=15 name="xuehao"></p><p><b>  <%} %></b></p><p>  真實姓名:<input size=15 name="zsxm" ></p><p>  性別:<inp

90、ut type="radio" name="sex" value="男" checked>男</p><p>  <input type="radio" name="sex" value="女">女</p><p>  <%if(!"教務

91、管理員".equals(shenfen)){ %></p><p>  所在系別:<input size=15 name="suozaixi" class="leftbox1"></p><p><b>  <%} %></b></p><p>  <inpu

92、t type="hidden" value="<%=shenfen %>" name="quanxian"/> </p><p>  <input type="submit" value="確定" name=Submit2 /> </p><p><b&

93、gt;  </form></b></p><p>  點擊確定按鈕后交給userCreate.action進行處理,</p><p>  UserCreateAction中相關代碼如下:</p><p>  public String createUser(){</p><p>  UserTable tUserTab

94、le = new UserTable();</p><p>  tUserTable.setUsername(username);</p><p>  tUserTable.setPassword(password);</p><p>  tUserTable.setXuehao(xuehao);</p><p>  tUserTable.s

95、etZsxm(zsxm);</p><p>  tUserTable.setSex(sex);</p><p>  tUserTable.setSuozaixi(suozaixi);</p><p>  tUserTable.setQuanxian(quanxian);</p><p>  if("學生".equals(q

96、uanxian)){</p><p>  tUserTable.setSfrz("1");</p><p><b>  }else{</b></p><p>  tUserTable.setSfrz("0");</p><p><b>  }</b></

97、p><p>  String result = getUserTableService().createUser(tUserTable);</p><p>  return result;</p><p><b>  }</b></p><p>  6.2.2用戶登陸設計模塊的實現</p><p> 

98、 用戶登陸頁面index.jsp如圖6-4所示:</p><p>  圖 6-4 用戶登陸頁面</p><p>  在index.jsp網頁填入用戶名的和密碼信息,點擊登陸。</p><p>  index.jsp中相關代碼如下:</p><p>  <form name="mylogin" action="

99、;<%=path%>/userLogin.action"</p><p>  method="post"></p><p><b>  ······</b></p><p>  <TD height=35></p>

100、<p>  <input type="submit" value="登錄" />&nbsp;&nbsp;&nbsp;</p><p>  <input type="button" name="zhuce" value="注冊" onClick=

101、"location.href='<%=path%>/shenfen.jsp'" /></p><p><b>  </TD></b></p><p><b>  </form></b></p><p>  點擊登錄后由userLogin.acti

102、on進行處理,</p><p>  UserLoginAction.java中相關代碼如下:</p><p>  public String loginUser(){</p><p>  if(getUserTableService().loginUser(getUsername(), getPassword(),getShenfen())){</p>

103、<p>  HttpServletRequest request = ServletActionContext.getRequest();</p><p>  HttpSession session=request.getSession();</p><p>  session.setAttribute( "username",username); se

104、ssion.setAttribute( "quanxian",getUserTableService()</p><p>  .getQuanxian(username));</p><p>  return "success";</p><p><b>  }else{</b></p>&

105、lt;p>  return "error";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //用戶登錄判斷</b></p><p>  public boolean loginUser(S

106、tring username,String password,String shenfen){</p><p>  Jdbc jdbc = new Jdbc();</p><p>  String sql = "select * from usertable where username='"+username+"'</p>&l

107、t;p>  and sfrz='1'";</p><p>  ResultSet rs = jdbc.query(sql);</p><p><b>  try{</b></p><p>  if(rs.next()){</p><p>  if(rs.getString(&quo

108、t;password").equals(password)&&</p><p>  rs.getString("quanxian").equals(shenfen)){</p><p>  return true;</p><p><b>  }else{</b></p><p&

109、gt;  return false;</p><p><b>  }</b></p><p><b>  }else{</b></p><p>  return false;</p><p><b>  }</b></p><p>  }catch(Ex

110、ception e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return false ;</p><p><b>  }</b></p><p>  用戶注冊后需要系統(tǒng)管理員的認證后才能登陸

111、成功。 </p><p>  用戶注冊中認證相關代碼如下:</p><p><b>  <%</b></p><p>  String path = request.getContextPath();</p><p>  request.setCharacterEncoding("utf-8")

112、;</p><p>  Jdbc jdbc = new Jdbc();</p><p>  String id = request.getParameter("id");</p><p>  String sql = "update usertable set sfrz='1' where id='"+

113、id+"'";</p><p>  int i = jdbc.update(sql);</p><p><b>  if(i==1){</b></p><p><b>  %></b></p><p><b>  <script></b&

114、gt;</p><p>  alert("已認證");</p><p>  window.location="<%=path%>/user/userTable.jsp";</p><p>  </script></p><p>  <%}else{%></p&

115、gt;<p><b>  <script></b></p><p>  alert("認證失敗");</p><p>  window.location="<%=path%>/user/userTable.jsp";</p><p><b>  </s

116、cript></b></p><p><b>  <%}%></b></p><p>  usercreateAction中控制用戶權限的相關代碼如下</p><p>  public String createUser(){</p><p><b>  ........</

117、b></p><p>  if("學生".equals(quanxian)){</p><p>  tUserTable.setSfrz("1");</p><p><b>  }else{</b></p><p>  tUserTable.setSfrz("0&q

118、uot;);</p><p><b>  }</b></p><p><b>  ........</b></p><p><b>  }</b></p><p>  6.2.3用戶留言模塊的實現</p><p>  用戶留言的界面如圖6-5:</

119、p><p><b>  圖6-5留言添加</b></p><p>  教務管理員、教師、學生都可以直接留言。留言框內加上需要留言的內容后系統(tǒng)將自動加上留言人的用戶名和留言日期。</p><p><b>  創(chuàng)建留言相關代碼:</b></p><p>  <form name="creat

120、eForm" action="<%=path %>/liuyanCreate.action" method="post" enctype="multipart/form-data"></p><p>  <table border="0" cellspacing="0" cellp

121、adding="0"></p><p><b>  <tr></b></p><p>  <td bgcolor="#F2F2F2" align="right"></p><p>  <span class="STYLE4">

122、;留言內容:</span></td></p><p>  <td align="left"></p><p>  <textarea name="context" rows="5" cols="30"></textarea></td><

123、;/p><p>  <td width="40%"></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p><b>  <td></b>

溫馨提示

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

評論

0/150

提交評論