2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p><b> ?。ǘ?屆)</b></p><p>  大學選課系統(tǒng)的分析、設(shè)計與實現(xiàn)</p><p>  所在學院 </p><p>  專業(yè)班級 計算機科學與技術(shù) </p&g

2、t;<p>  學生姓名 學號 </p><p>  指導教師 職稱 </p><p>  完成日期 年 月 </p><p>  摘要:隨著高校教學體制的改革和教務(wù)管理的信息化,通過網(wǎng)絡(luò)進行選課是現(xiàn)代高校教務(wù)管理應實現(xiàn)的一

3、項工作。本系統(tǒng)采用B/S體系結(jié)構(gòu),Win7作為服務(wù)器操作系統(tǒng),TOMCAT作為Web服務(wù)器,Microsoft SQL Server 2000作為數(shù)據(jù)庫服務(wù)器,用JSP開發(fā)動態(tài)網(wǎng)頁,中間組件用Java語言開發(fā),通過JDBC實現(xiàn)對數(shù)據(jù)庫的操作。網(wǎng)上選課系統(tǒng)按用戶的使用功能劃分為三大模塊:管理員模塊、教師模塊和學生模塊。管理員通過該模塊實現(xiàn)對教師和學生的信息管理,以及學生選課管理;教師通過該模塊可以查看自己任教的課程的選課情況,錄入學生成績

4、以及修改個人信息;學生通過該模塊可以查詢課程、選課、退課、修改密碼等。通過本課題的研究,提高了教務(wù)管理工作的質(zhì)量與效率,對計算機應用技術(shù)尤其是網(wǎng)絡(luò)技術(shù)在教務(wù)管理工作中的應用與研究起到了積極的推動作用,從而全面提高選修課的管理質(zhì)量,使教務(wù)管理工作更加科學化、規(guī)范化。</p><p>  關(guān)鍵詞:教務(wù)管理;網(wǎng)絡(luò)選課;B/S結(jié)構(gòu)</p><p>  The Analysis, Design an

5、d Implementation of College Courses Selection System</p><p>  ABSTRACT:With the structural reform of teaching and academic management of information technology, through a network of modern Educational Admini

6、stration Course is a task to be achieved. The system uses B / S architecture, Win7 as the server operating systems, TOMCAT as a Web server, Microsoft SQL Server 2000 as the database server, using JSP to develop dynamic w

7、eb pages, the middle component with the Java language development, through JDBC to the database operation. Online Course Selection by t</p><p>  Key words : Senate Administration ; Online Courses Selection;

8、B/S目錄</p><p><b>  1 引言1</b></p><p>  1.1 開發(fā)背景1</p><p>  1.2 國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢1</p><p>  1.3 系統(tǒng)預期達到的目標1</p><p>  2 系統(tǒng)開發(fā)工具及主要技術(shù)2</p>

9、<p>  2.1 開發(fā)工具2</p><p>  2.1.1 MyEclipse簡介2</p><p>  2.1.2 數(shù)據(jù)庫的選擇2</p><p>  2.1.3 JDK版本的選擇3</p><p>  2.1.4 容器3</p><p>  2.2 J2EE概述4</p&

10、gt;<p>  2.3 采用JSP技術(shù)4</p><p><b>  3 需求分析6</b></p><p>  3.1 功能需求6</p><p>  3.1.1 管理員登錄(功能基本實現(xiàn))6</p><p>  3.1.2 學生登陸6</p><p>  3

11、.1.3 教師登錄7</p><p>  3.2 功能概圖8</p><p>  4 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計9</p><p>  4.1 數(shù)據(jù)庫表如下:9</p><p>  4.1.1 登錄表(User):9</p><p>  4.1.2 管理員表(Admin):9</p>&l

12、t;p>  4.1.3 教師表(Teacher):9</p><p>  4.1.4 學生表(Student):9</p><p>  4.1.5 課程表(Course):9</p><p>  4.1.6 選課表(SelectCourse):9</p><p>  4.1.7 評教表(JudgeTeacher):1

13、0</p><p>  4.2 登錄用到的觸發(fā)器10</p><p>  5 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計11</p><p>  5.1 E-R模型11</p><p>  6 數(shù)據(jù)流圖及程序結(jié)構(gòu)框圖12</p><p>  6.1 核心模塊數(shù)據(jù)流圖12</p><p>  6.2

14、 程序結(jié)構(gòu)圖12</p><p>  7 程序源代碼及其說明15</p><p>  7.1 登錄模塊核心代碼:15</p><p>  7.2 網(wǎng)上選課系統(tǒng)選課模塊中能否選課時間的核心代碼17</p><p>  7.3 其他模塊圖:21</p><p><b>  8 結(jié)束語26&l

15、t;/b></p><p>  8.1 系統(tǒng)的特點與局限性26</p><p>  8.1.1 特點26</p><p>  8.1.2 局限性26</p><p>  8.2 實施過程中的一些體會26</p><p>  致 謝錯誤!未定義書簽。</p><p>&l

16、t;b>  參考文獻28</b></p><p><b>  1 引言</b></p><p><b>  1.1 開發(fā)背景</b></p><p>  目前國家的教育體制也正處在不斷改革、創(chuàng)新的階段,我國教育部門充分吸取國外優(yōu)秀的教學模式,結(jié)合國內(nèi)多年的辦學經(jīng)驗,逐步探索出適合中國特色的教學形式,

17、因此國家教育部面向各級各類學校開展了全面學分制改革。因此,各院校迫切學要對自己的現(xiàn)有教務(wù)管理系統(tǒng)進行改進和提高,根據(jù)國內(nèi)大學的現(xiàn)在管理模式,結(jié)合國際新的思想觀念,在校園網(wǎng)絡(luò)環(huán)境下建設(shè)先進的、與國際水平接軌的信息化管理平臺。提高學校管理工作的現(xiàn)代化水平,使之成為學校公共信息服務(wù)體系的重要組成部分。</p><p>  1.2 國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢</p><p>  我國高校都實行了學

18、分制,它的核心是允許學生自由選課,即把學習的自主權(quán)交給學生。在這里,學生選課時的制約因素比較復雜,工作量也很大,而且往往需要在較短的時間內(nèi)完成。運用計算機輔助選課,即能實時地對大量選課數(shù)據(jù)進行檢驗和統(tǒng)計,十分方便地輸出選課結(jié)果,同時也避免了人工處理時容易產(chǎn)生的錯誤。在高等學校的教務(wù)管理工作中,課程表的編排是一項十分復雜、棘手的工作。在排課過程中,除了滿足大量的制約條件以外,還必須解決許多沖突與矛盾,例如:兩位教師不能同一時間在同一班級上

19、課、一位教師不能在同一時間上兩門課等等。利用計算機輔助進行課表編排工作,既提高了排課工作的科學性,又可減輕管理人員的工作強度,提高工作效率,從而使學校教務(wù)管理現(xiàn)代化邁上了一個新臺階。</p><p>  國外的教學科研軟件與國內(nèi)相比開發(fā)的早而且比較成熟。早在七十年代末,美國就建成了NSFNET(國家科學基金網(wǎng)),其課題的申報及課題的進展情況匯報都在網(wǎng)上進行。其網(wǎng)上教學教務(wù)管理系統(tǒng)也十分完善,世界各地的學生可以坐在

20、家里通過互聯(lián)網(wǎng)完成入學報名、選課、考試、畢業(yè)論文、取得學位這一學習生活的全過程。目前,國際上已具規(guī)模的遠程教育學校就有數(shù)百所之多,網(wǎng)上教育正在各地發(fā)揮著巨大的作用,為世界各國培養(yǎng)出大批人才。所有這些都表明,基于Internet的校園網(wǎng)的應用已深入到校園內(nèi)的各個方面。</p><p>  1.3 系統(tǒng)預期達到的目標</p><p>  在信息技術(shù)高度發(fā)達的今天,互聯(lián)網(wǎng)技術(shù)已經(jīng)深入人們的日常

21、生活,鑒于選課系統(tǒng)的安全性,網(wǎng)上選課將不僅僅局限于校園局域網(wǎng),在互聯(lián)網(wǎng)上運行則基于J2EE的網(wǎng)上選課系統(tǒng)的研究與實現(xiàn)是必然,這樣學生無論身在何處,只要有可以上因特網(wǎng)的地方,就隨時可以登錄到選課系統(tǒng)進行選課。既增強了網(wǎng)上選課的靈活性,也減輕了服務(wù)器負載數(shù)據(jù)的負擔。</p><p>  利用移動通信技術(shù)的無線選課系統(tǒng)還是一個比較新的課題,這種通用WAP選課系統(tǒng),能夠在不改動原有選課系統(tǒng)的基礎(chǔ)上,增加一種新的業(yè)務(wù)功能模

22、塊,這種WAP選課系統(tǒng)比基于Web的選課系統(tǒng)最大的特點就是更加便捷,讓學生隨時隨地都能用上選課系統(tǒng)。這將是我們下一步要努力實現(xiàn)的目標。</p><p>  2 系統(tǒng)開發(fā)工具及主要技術(shù)</p><p><b>  2.1 開發(fā)工具</b></p><p>  本系統(tǒng)使用的開發(fā)工具,后臺Java代碼編寫使用MyEclipse Europa wo

23、rkbench 6.5,前臺頁面編輯使用DreamWaver 8。</p><p>  2.1.1 MyEclipse簡介</p><p>  MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應用程序服務(wù)器的整合方面極大的提高工作

24、效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts,JSF,CSS,Javascript,SQL,Hibernate。</p><p>  2.1.2 數(shù)據(jù)庫的選擇</p><p>  本系統(tǒng)采用SQL Server2000版本。</p><p>  SQL Server是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),

25、它最初是由Microsoft Sybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個OS/2版本。在Windows NT推出后,Microsoft與Sybase在SQL Server的開發(fā)上就分道揚鑣了。Microsoft將SQL Server移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server的Windows NT版本;Sybase則較專注于SQL Server在UNIX操作系統(tǒng)上的應用。在本

26、書中介紹的是Microsoft SQL Server以后簡稱為SQL Server或MS SQL Server。[1]</p><p>  SQL Server 2000是Microsoft公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng)的一個版本。該版本繼承了SQL Server 7.0版本的優(yōu)點同時又比它增加了許多更先進的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行Microsoft W

27、indows 98的電腦到運行Microsoft Windows 2000的大型多處理器的服務(wù)器等多種平臺使用。[2],[3]</p><p>  SQL Server 2000的特性包括:</p><p>  (1)Internet集成。SQL Server 2000數(shù)據(jù)庫引擎提供完整的XML支持。它還具有構(gòu)成最大的Web站點的數(shù)據(jù)存儲組件所需的可伸縮性、可用性和安全功能。SQL Ser

28、ver 2000程序設(shè)計模型與Windows DNA構(gòu)架集成,用以開發(fā)Web應用程序,并且SQL Server 2000支持English Query和Microsoft搜索服務(wù)等功能,在Web應用程序中包含了用戶友好的查詢和強大的搜索功能。</p><p>  (2)可伸縮性和可用性。同一個數(shù)據(jù)庫引擎可以在不同的平臺上使用,從運行Microsoft Windows 98的便攜式電腦,到運行Microsoft W

29、indows 2000數(shù)據(jù)中心版的大型多處理器服務(wù)器。SQL Server 2000企業(yè)版支持聯(lián)合服務(wù)器、索引視圖和大型內(nèi)存支持等功能,使其得以升級到最大Web站點所需的性能級別。</p><p>  (3)企業(yè)級數(shù)據(jù)庫功能。SQL Server 2000關(guān)系數(shù)據(jù)庫引擎支持當今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫引擎充分保護數(shù)據(jù)完整性,同時將管理上千個并發(fā)修改數(shù)據(jù)庫的用戶的開銷減到最小。SQL Server 20

30、00分布式查詢使您得以引用來自不同數(shù)據(jù)源的數(shù)據(jù),就好象這些數(shù)據(jù)是SQL Server 2000數(shù)據(jù)庫的一部分,同時分布式事務(wù)支持充分保護任何分布式數(shù)據(jù)更新的完整性。復制同樣使您得以維護多個數(shù)據(jù)復本,同時確保單獨的數(shù)據(jù)復本保持同步??蓪⒁唤M數(shù)據(jù)復制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務(wù)器。</p><p>  (4)易于安裝、部署和使用。SQL Server 2000中包括一

31、系列管理和開發(fā)工具,這些工具可改進在多個站點上安裝、部署、管理和使用SQL Server的過程。SQL Server 2000還支持基于標準的、與Windows DNA集成的程序設(shè)計模型,使SQL Server數(shù)據(jù)庫和數(shù)據(jù)倉庫的使用成為生成強大的可伸縮系統(tǒng)的無縫部分。這些功能使您得以快速交付SQL Server應用程序,使客戶只需最少的安裝和管理開銷即可實現(xiàn)這些應用程序。</p><p>  2.1.3 JDK

32、版本的選擇</p><p>  Java Development Kit(JDK)是Sun公司針對Java開發(fā)員的軟件開發(fā)工具包。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK(Software development kit)。</p><p>  本系統(tǒng)采用JDK 1.6.0版本。[4],[5]</p><p><b>  2.1.4

33、 容器</b></p><p>  本系統(tǒng)頁面采用JSP,所以對應的容器采用Apache Tomcat 6.0。</p><p>  既然JSP/Servlet,那么它當然是不能直接運行的,必須把它放到某種運行環(huán)境當中,它才能發(fā)揮它的作用。這個環(huán)境就是我們講的"容器"。容器也是java程序,它的主要功能除了為Servlet提供運行環(huán)境,還有更重要的,就是提

34、供網(wǎng)絡(luò)傳輸協(xié)議與java程序?qū)嶓w的相互轉(zhuǎn)換??蛻舳讼蚍?wù)器發(fā)送數(shù)據(jù),遵循的是HTTP協(xié)議的數(shù)據(jù)格式,服務(wù)器向客戶端發(fā)送數(shù)據(jù)也是遵循HTTP協(xié)議的。在客戶端和服務(wù)器端,可能存在著不同的編程語言編寫的程序,比如java,C++等等。各種語言都有自己用于處理HTTP協(xié)議數(shù)據(jù)的方法(類),為了使用java提供的各種HTTP處理相關(guān)的類,必須將HTTP協(xié)議下的數(shù)據(jù)做一定的轉(zhuǎn)換,轉(zhuǎn)換成一些java object,這樣才能使用java的方法進行數(shù)據(jù)處

35、理。同理,當這些處理完成,又需要將這些java object轉(zhuǎn)換回HTTP協(xié)議下的數(shù)據(jù),反饋給客戶端(JSP/Servlet當然存在與服務(wù)器端)。JSP/Servlet容器就扮演了完成這個雙向轉(zhuǎn)換的角色。</p><p>  Tomcat是由Apache軟件基金會下屬的Jakarta項目開發(fā)的一個Servlet容器,按照Sun Microsystems提供的技術(shù)規(guī)范,實現(xiàn)了對Servlet和JavaServer

36、Page(JSP)的支持,并提供了作為Web服務(wù)器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。由于Tomcat本身也內(nèi)含了一個HTTP服務(wù)器,它也可以被視作一個單獨的Web服務(wù)器。但是,不能將Tomcat和Apache Web服務(wù)器混淆,Apache Web Server是一個用C語言實現(xiàn)的HTTP web server;這兩個HTTP web server不是捆綁在一起的。Apache Tomcat包含

37、了一個配置管理工具,也可以通過編輯XML格式的配置文件來進行配置。</p><p>  Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務(wù)等開發(fā)應用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。</p><p>  Tomcat是一個輕量級應用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場

38、合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache服務(wù)器,可利用它響應對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。</p><p>  這里的訣竅是,當配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JS

39、P 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。[6],[7],[8]</p><p>  2.2 J2EE概述</p><p>  J2EE(Java 2 Platf

40、orm Enterprise Edition)是SUN公司定義的一個開發(fā)分布式企業(yè)級應用的規(guī)范。它提供了一個多層次的分布式應用模型和一系列開發(fā)技術(shù)規(guī)范,與傳統(tǒng)的互聯(lián)網(wǎng)應用程序模型相比有著不可比擬的優(yōu)勢。J2EE技術(shù)是一個開放的、基于標準的開發(fā)和部署的平臺,用于構(gòu)建N層、基于Web、以服務(wù)端計算為核心、模塊化的企業(yè)應用。J2EE同時也是所有兼容J2EE標準的應用服務(wù)器產(chǎn)品的統(tǒng)一標識。</p><p>  J2EE是

41、一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版中的許多優(yōu)點,例如"編寫一次、隨處運行"的特性,同時還提供了對EJ(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。其最終目的就是成為一個能夠

42、使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結(jié)構(gòu)。</p><p>  J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應用的費用和復雜性,同時提供對現(xiàn)有應用程序集成強有力支持,完全支持Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?,添加目錄支持,增強了安全機制,提高了性能。[9],[10]

43、,[11]</p><p>  2.3 采用JSP技術(shù)</p><p>  JSP(全稱JavaServer Pages)是由Sun Microsystems公司倡導和許多公司參與共同建立的一種使軟件開發(fā)者可以響應客戶端請求,而動態(tài)生成HTML、XML或其他格式文檔的Web網(wǎng)頁的技術(shù)標準。JSP技術(shù)是以Java語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器端的Java庫單元提供了一個接口來服

44、務(wù)于HTTP的應用程序。</p><p>  JSP使Java代碼和特定的預定義動作可以嵌入到靜態(tài)頁面中。JSP句法增加了被稱為JSP動作的XML標簽,它們用來調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標簽庫,然后像使用標準HTML或XML標簽一樣使用它們。標簽庫提供了一種和平臺無關(guān)的擴展服務(wù)器性能的方法。</p><p>  JSP被JSP編譯器編譯成Java Servlets。一個JSP編譯器

45、可以把JSP編譯成Java代碼寫的servlet然后再由JAVA編譯器來編譯成機器碼,也可以直接編譯成二進制碼。</p><p>  JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應用程序的開發(fā)變得迅

46、速和容易。</p><p>  Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。</p><p>  JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。

47、</p><p>  JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。[12

48、],[13],[14]</p><p><b>  3 需求分析</b></p><p><b>  3.1 功能需求</b></p><p>  本系統(tǒng)是一個網(wǎng)絡(luò)版的管理系統(tǒng),主要針對高效學生教務(wù)流程開發(fā)設(shè)計,系統(tǒng)提供了較好的功能擴充接口。</p><p>  下面簡要分析系統(tǒng)大致的功能需求。

49、</p><p>  3.1.1 管理員登錄(功能基本實現(xiàn))</p><p>  在管理員進入系統(tǒng)前,首先要求管理員進行登錄,防止非法用戶對系統(tǒng)進行操作,登錄時要驗證用戶名和密碼是否匹配,驗證通過后允許管理員進入本系統(tǒng)操作。</p><p><b>  (1)學生信息管理</b></p><p>  提供包括學生學籍的

50、管理,基本信息的查詢,成績查詢,選課查詢。</p><p><b> ?。╝)填寫學生信息</b></p><p><b>  (b)查詢學生信息</b></p><p><b> ?。╟)修改學生信息</b></p><p><b> ?。╠)刪除學生信息</

51、b></p><p> ?。╡)實現(xiàn)選課,退課</p><p><b>  (2)教師管理</b></p><p>  教師進行學生信息的查詢,任教科目查詢,成績錄入,教師基本信息查詢。</p><p><b>  (a)填寫教師信息</b></p><p><b

52、> ?。╞)添加教師信息</b></p><p><b> ?。╟)修改教師信息</b></p><p><b> ?。╠)刪除教師信息</b></p><p><b>  (3)選課管理</b></p><p>  提供學生每學期的公選課的選擇。</p

53、><p> ?。╝)設(shè)定選課時間、人數(shù)</p><p>  (b)選上課的學生名單</p><p>  3.1.2 學生登陸</p><p>  學生通過該模塊,可以查詢課程、選課、退課、修改密碼等。</p><p><b>  (1)網(wǎng)上選課</b></p><p> ?。?/p>

54、a)實現(xiàn)選課和退課</p><p><b>  (2)個人信息</b></p><p><b> ?。╝)查看個人信息</b></p><p>  (b)修改個人信息備注</p><p><b>  (3)查詢</b></p><p><b>

55、 ?。╝)查詢開課信息</b></p><p><b>  (b)查詢所選課程</b></p><p><b>  (4)個性服務(wù)</b></p><p> ?。╝)查看系統(tǒng)通知信息</p><p><b> ?。╞)修改密碼</b></p><

56、p>  3.1.3 教師登錄</p><p>  查看自己任教的課程的選課情況,錄入學生成績以及修改個人信息。</p><p><b>  (1)個人信息</b></p><p><b> ?。╝)查看個人信息</b></p><p> ?。╞)修改個人信息備注</p><

57、;p><b>  (2)成績錄入</b></p><p> ?。╝)教師根據(jù)課程錄入每個學生成績</p><p> ?。╞)教師根據(jù)學生錄入每個課程的成績</p><p><b>  (3)個性服務(wù)</b></p><p> ?。╝)可以發(fā)給學生系統(tǒng)通知</p><p>

58、;<b> ?。╞)修改密碼</b></p><p><b>  (4)查詢</b></p><p> ?。╝)老師根據(jù)課程查看學生選課名單</p><p>  (b)老師根據(jù)具體學號查看學生選課情況</p><p><b>  3.2 功能概圖</b></p>

59、<p>  4 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p>  4.1 數(shù)據(jù)庫表如下:</p><p>  4.1.1 登錄表(User):</p><p>  4.1.2 管理員表(Admin):</p><p>  4.1.3 教師表(Teacher):</p><p>  4.1.4 學生表(St

60、udent):</p><p>  4.1.5 課程表(Course):</p><p>  4.1.6 選課表(SelectCourse):</p><p>  4.1.7 評教表(JudgeTeacher):</p><p>  4.2 登錄用到的觸發(fā)器</p><p>  --當插入學生時,自動的在用戶(

61、admin)表中插入相應的學生編號且級別為1、密碼為默認值</p><p>  create trigger insert_student </p><p>  on student</p><p>  for insert</p><p><b>  as</b></p><p><b&g

62、t;  begin</b></p><p>  declare @id char(20),@name char(20)</p><p>  select @id=inserted.studentId,@name=inserted.studentName from inserted;</p><p>  if not exists(select userI

63、d from admin where userId=@id)</p><p>  insert into admin(userId,userJiBie,userName) values(@id,1,@name);</p><p><b>  end</b></p><p><b>  GO</b></p>&

64、lt;p>  --當插入教師時,自動的在用戶(admin)表中插入相應的教師編號且級別為3、密碼為默認值</p><p>  create trigger insert_teacher</p><p>  on teacher</p><p>  for insert </p><p><b>  as </b>&

65、lt;/p><p><b>  begin</b></p><p>  declare @id char(20),@name char(20)</p><p>  select @id=inserted.teacherId,@name=inserted.teacherName from inserted;</p><p> 

66、 if not exists(select userId from admin where userId=@id)</p><p>  insert into admin(userId,userJiBie,userName) values(@id,3,@name);</p><p><b>  end</b></p><p><b>

67、  GO</b></p><p>  --當插入管理員時,自動的在用戶(admin)表中插入相應的管理員編號且級別為5、密碼為默認值</p><p>  create trigger insert_administrator</p><p>  on administrator</p><p>  for insert</p

68、><p><b>  as</b></p><p><b>  begin</b></p><p>  declare @id char(20),@name char(20)</p><p>  select @id=inserted.adminId,@name=inserted.adminName f

69、rom inserted;</p><p>  if not exists(select userId from admin where userId=@id)</p><p>  insert into admin(userId,userJiBie,userName) values(@id,5,@name);</p><p><b>  end</

70、b></p><p><b>  GO</b></p><p>  5 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p><p>  5.1 E-R模型</p><p>  6 數(shù)據(jù)流圖及程序結(jié)構(gòu)框圖</p><p>  6.1 核心模塊數(shù)據(jù)流圖</p><p>  6.2 程序

71、結(jié)構(gòu)圖</p><p>  系統(tǒng)采用MVC設(shè)計模式,M(Model)模型層用javabean表示業(yè)務(wù)邏輯連接操作數(shù)據(jù)庫等,V(View)視圖層用jsp表示各用戶界面,C(Control)控制層用Servlet快速的控制反轉(zhuǎn)功能調(diào)用M業(yè)務(wù)邏輯層。[15]</p><p>  因此,系統(tǒng)程序結(jié)構(gòu)為(由于空間有限只列出了部分類的屬性和方法,其他都隱藏了):</p><p>

72、;  (1)用戶登錄及其處理類圖:</p><p><b>  (2)接數(shù)據(jù)庫類:</b></p><p>  (3)個性服務(wù)信息及其處理類圖:</p><p>  (4)管理員及其處理類圖:</p><p>  (5)課程及其處理類:</p><p>  (6)學生及其處理類圖:</p&g

73、t;<p>  (7)教師及其處理類圖:</p><p>  (8)評教及其處理類圖:</p><p>  (9)選課及其處理類:</p><p>  7 程序源代碼及其說明</p><p>  7.1 登錄模塊核心代碼:</p><p>  說明:a)網(wǎng)上選課系統(tǒng)中系統(tǒng)安全性方面非常重要,防止數(shù)據(jù)庫

74、注入漏洞,用戶名、密碼、級別分開判斷。</p><p>  b)創(chuàng)建系統(tǒng)失效時間,進一步增強安全性??稍趧偟卿涍M系統(tǒng)時為每個用戶創(chuàng)建一個Session,并設(shè)置失效時間。代碼如:</p><p>  HttpSession hs=request.getSession();</p><p>  hs.setMaxInactiveInterval(600);//600秒即

75、10分鐘</p><p>  然后在每個頁面判斷Session是否為空,若為空則回到登錄界面重新登錄。</p><p><b>  /**</b></p><p><b>  * 數(shù)據(jù)庫連接類</b></p><p>  * @author 張成昆 09/05/01</p><p

76、><b>  *</b></p><p><b>  */</b></p><p>  public class ConnectDB {</p><p>  private Connection ct=null;</p><p><b>  /**</b></p&g

77、t;<p><b>  * 數(shù)據(jù)庫連接方法</b></p><p>  * @author 張成昆 09/05/01</p><p>  * @return 連接Connection</p><p><b>  */</b></p><p>  public Connection ge

78、tConnection(){</p><p><b>  try{</b></p><p>  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");</p><p>  ct=DriverManager.getConnection("jdbc:

79、sqlserver://localhost:1500;DatabaseName=EMS",</p><p>  "zck", "583");</p><p>  }catch(Exception e){</p><p>  System.err.println("----------ConnectDB.ge

80、tConnection()--------------");</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return ct;</p><p><b>  }</b></p><p>&l

81、t;b>  }</b></p><p><b>  /**</b></p><p>  * function:完成用戶登錄驗證</p><p>  * @author 張成昆</p><p>  * @param user:用戶ID</p><p>  * @param pass

82、word:用戶密碼</p><p>  * @param grade:用戶級別</p><p>  * @return 用戶級別</p><p><b>  */</b></p><p>  public int checkUser(String user, String password, String grade)

83、{</p><p>  int b = -1; //用戶級別</p><p><b>  try{</b></p><p>  ct=new ConnectDB().getConnection();</p><p>  //單寫的ConnectDB類,其中g(shù)etConnection()用于與數(shù)據(jù)庫連接,以增加系統(tǒng)擴展性

84、</p><p>  ps=ct.prepareStatement("select rtrim(userPassword), "</p><p>  + "rtrim(userJiBie)"</p><p>  +" from admin where userId=?");</p><p

85、>  ps.setString(1, user);</p><p>  rs=ps.executeQuery();</p><p>  if(rs.next()){</p><p>  if(rs.getString(1).equals(password)){</p><p>  if(rs.getString(2).equals(&q

86、uot;" + grade)){</p><p>  b = Integer.parseInt(grade); //單獨判斷以防止注入數(shù)據(jù)庫漏洞</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&l

87、t;/p><p>  }catch(Exception e){</p><p>  System.err.println("----------checkUser出錯-------------");</p><p>  e.printStackTrace();</p><p><b>  }finally{</

88、b></p><p>  this.close(); //單寫的一個方法專用于關(guān)閉數(shù)據(jù)庫連接</p><p><b>  }</b></p><p><b>  return b;</b></p><p><b>  }</b></p><p>&

89、lt;b>  /**</b></p><p>  * fuction:用戶關(guān)閉數(shù)據(jù)庫連接</p><p>  * @author 張成昆</p><p><b>  */</b></p><p>  public void close(){</p><p><b>  

90、try {</b></p><p>  if(rs!=null){</p><p>  rs.close();</p><p><b>  rs=null;</b></p><p><b>  }</b></p><p>  if(ps!=null){</p

91、><p>  ps.close();</p><p><b>  rs=null;</b></p><p><b>  }</b></p><p>  if(ct!=null){</p><p>  ct.close();</p><p><b>

92、;  ct=null;</b></p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  System.err.println("----------close()出錯-------------");</p><p&g

93、t;  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  如果用戶非法登陸,界面如下:</p><p>  7.2 網(wǎng)上選課系統(tǒng)選課模塊中能否選課時間的核心代碼</p><p>&l

94、t;b>  說明:</b></p><p>  a)因為數(shù)據(jù)庫中設(shè)定日期時間格式為xxxx-xx-xx形式而Date類能轉(zhuǎn)換的形式是 xxxx/xx/xx所以要將其轉(zhuǎn)換,然后再比較。</p><p>  b)將此方法寫在單獨的日期處理類里,以便用的此方法時,直接調(diào)用即可,從而增加復用性。</p><p><b>  /**</b

95、></p><p>  * 選課時間處理方法:用于判斷是否能選課以及能否評教</p><p>  * @author 張成昆 </p><p>  * @param beginDate 開始選課時間</p><p>  * @param endDate 結(jié)束選課時間</p><p>  * @return 是否能

96、選課</p><p><b>  */</b></p><p>  public boolean dateJudge(String beginDate,String endDate){</p><p>  boolean b = false;</p><p>  Date nowTime = new Date();

97、//取得服務(wù)器當前時間</p><p>  beginDate = beginDate.replace('-', '/');//選課開始時間中"-"替換為"/"便于將字符串轉(zhuǎn)換成時間類</p><p>  endDate = endDate.replace('-&#

98、39;, '/');</p><p>  Date begindate = new Date(beginDate);//將字符型轉(zhuǎn)換成特定時間類</p><p>  Date enddate = new Date(endDate);</p><p>  if(nowTime.getTime()>=begindate.ge

99、tTime()&&nowTime.getTime()<=enddate.getTime()){ </p><p>  //比較是否能夠選課及評教,其中g(shù)etTime()返回自 1970年1月1日00:00:00GMT 以來此 Date 對象表示的毫秒數(shù)</p><p><b>  b=true;</b></p><p

100、><b>  }</b></p><p><b>  return b;</b></p><p><b>  }</b></p><p>  (1)沒到選課時間時,提示界面:</p><p>  說明:核心代碼如下:</p><p>  Stude

101、ntBeanCl sbc = new StudentBeanCl();</p><p>  String courseId = request.getParameter("courseId");</p><p>  String beginSelectCourseTime = scbc.getBeginSelectCourseTime(courseId).trim();

102、</p><p>  String endSelectCourseTime = scbc.getEndSelectCourseTime(courseId).trim();</p><p>  DateFunction df = new DateFunction();</p><p>  if(df.dateJudge(beginSelectCourseTime, e

103、ndSelectCourseTime)){</p><p>  String studentId = request.getParameter("studentId");</p><p>  SelectCourseBeanCl scbl = new SelectCourseBeanCl();</p><p>  ArrayList al = s

104、cbl.getAllOnlineCourse();</p><p>  ArrayList haveSelectCourseBeanList = scbl.getAllSelectCourse(studentId);</p><p>  request.setAttribute("haveSelectCourseBeanList", haveSelectCourseBe

105、anList);</p><p>  request.setAttribute("allCourse", al);</p><p>  request.getRequestDispatcher("student/student_selectCourse.jsp").forward(request, response);</p><

106、p><b>  }else{</b></p><p>  out.println("<script>window.alert(\"選課時間("+beginSelectCourseTime+"~"+endSelectCourseTime+")已過!\")</script>");<

107、/p><p><b>  }</b></p><p>  (2)管理員設(shè)置選課時間順序錯誤時:</p><p>  說明:相應的javascript代碼:</p><p>  <script type="text/javascript"></p><p>  funct

108、ion checkTime(){</p><p>  var start = selectCourseForm.beginSelectDay.value;</p><p>  var end = selectCourseForm.endSelectDay.value;</p><p>  var startDate = new Date(start.replace(

109、"-",",")).getTime();</p><p>  var endDate = new Date(end.replace("-",",")).getTime();</p><p>  if(startDate>endDate){</p><p>  alert("

110、;結(jié)束選課時間小于開始選課時間,請重新設(shè)置!");</p><p>  selectCourseForm.beginSelectDay.focus();</p><p>  return false;</p><p><b>  }</b></p><p>  return true;</p>&

111、lt;p><b>  }</b></p><p><b>  </script></b></p><p>  (3)選課成功時,在當前頁面顯示選課結(jié)果:</p><p>  當學生選課成功時,下方顯示出學生選課的課程,開課的時間,上課的地點。如果學生操作失誤,可以退選。</p><p&

112、gt;  7.3 其他模塊圖:</p><p><b>  (1)添加學生圖:</b></p><p>  管理員可以根據(jù)自己的權(quán)限添加學生。</p><p>  (2)添加學生成功時,自動關(guān)閉窗口,并刷新父窗口:</p><p>  說明:相應的javascript核心代碼:</p><p>

113、  <script type="text/javascript"></p><p>  function closewindow(){</p><p>  if(window.opener){</p><p>  window.opener.location.reload(true);</p><p>  wi

114、ndow.close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  function clock(){</p><p><b>  i = i -1;</b></p><p>  if(docu

115、ment.getElementById("info")){</p><p>  document.getElementById("info").innerHTML = "本窗口將在"+i+"秒后自動關(guān)閉";</p><p><b>  }</b></p><p>&

116、lt;b>  if(i > 0)</b></p><p>  setTimeout("clock();",1000);</p><p><b>  else</b></p><p>  closewindow();</p><p><b>  }</b>&

117、lt;/p><p>  var i = 6;</p><p><b>  clock();</b></p><p><b>  </script></b></p><p>  <div id="info">本窗口將在5秒后自動關(guān)閉</div><

118、;p></p><p>  (3)學生,教師,管理員可修改登錄密碼:</p><p>  為了防止別人登陸自己的帳號,管理員,學生,教師可以修改自己的密碼。</p><p>  (4)教師錄入成績:</p><p>  每學期末,教師可以根據(jù)學生成績依次把成績輸入到每個學生中。</p><p>  (5)學生可查

119、詢成績,教師也可查詢成績,管理員可以查詢所有信息:</p><p>  學期結(jié)束后,學生可以自己登陸網(wǎng)站查詢自己的成績。</p><p>  管理員可以查詢所有信息:</p><p><b>  核心代碼:</b></p><p><b>  8 結(jié)束語</b></p><p&

120、gt;  8.1 系統(tǒng)的特點與局限性</p><p><b>  8.1.1 特點</b></p><p>  該系統(tǒng)的應將為學校管理部門提供一個全新的工作環(huán)境,為促進學校教育教學管理的科學化、規(guī)范化、信息化提供了有力的支持,提升了學校教學管理信息化的水平,從而使該系統(tǒng)成為學校日常管理工作中離不開的關(guān)鍵應用,同時為日后的軟件維護提供了良好和完備的接口。</p

121、><p>  8.1.2 局限性</p><p>  設(shè)計剛開始是沒有很好分析系統(tǒng)功能、數(shù)據(jù)庫設(shè)計也存在問題。比如數(shù)據(jù)庫表設(shè)計不夠完善,在編碼階段,當想到表中缺少某字段時才添加,此時程序也必須做相應的修改,這樣很耽誤時間,有可能有沒考慮到的細節(jié)導致程序出錯。以此,編程啟動階段,系統(tǒng)功能圖、E-R模型、數(shù)據(jù)庫表及其屬性須考慮全面仔細。</p><p>  開發(fā)方法還采用

122、面前結(jié)構(gòu)化的開發(fā)方法;同時由于時間關(guān)系,框架使用還不成熟,所以采用jsp+javabean+servlet技術(shù)而沒有用struts+hibernate+spring當前比較流行的框架來做,無論在開發(fā)效率、可移植性、可維護性還是面向市場性都不太適合當前企業(yè)需求。希望畢業(yè)設(shè)計時,再用框架。</p><p>  8.2 實施過程中的一些體會</p><p>  為期多月的畢業(yè)設(shè)計已經(jīng)接近尾聲了

123、,本系統(tǒng)的整個實施過程中,遇到了很多很多的困難??粗约旱脑O(shè)計從無到有,從最初的雛形到如今的完整系統(tǒng),雖說算不上完善,但也基本符合需求,這不僅僅是自己這幾個月來辛勤勞動的結(jié)晶,更是對自己學習成果的一個檢驗。在最初選擇MyEclipse和SQL Server2000作為開發(fā)工具的時候,我考慮到MyEclipse具有強大性和適應性的特點,以至于Web應用軟件開發(fā)者的幾乎全部的平臺它都可以運行。另外,JSP.NET還具有簡單性和易學性。在我開

124、發(fā)的整個過程中我在不斷的學習,一邊學一邊做,很多時候在一個問題上要花好幾個小時甚至一兩天,當我好不容易將這個問題解決時才發(fā)現(xiàn)其實這是個很小的問題,也許只是由于不了解它的一個對象或者時一個函數(shù)的功能。但是,每當我費盡心思解決了一個關(guān)鍵問題時,那種成功的喜悅和茅塞頓開的感覺是沒有辦法來形容的,它不僅讓我感受到自己知識的淺薄也會激勵我更加努力的去學習更多的東西,好把我的設(shè)計做的更完善更好,因為我根本就不會知道自己在接下來的設(shè)計中又會遇到怎樣的

溫馨提示

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

最新文檔

評論

0/150

提交評論