版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)設(shè)計(論文)</p><p><b> ?。ǘ?屆)</b></p><p> 大學(xué)選課系統(tǒng)的分析、設(shè)計與實現(xiàn)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級 計算機科學(xué)與技術(shù) </p&g
2、t;<p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p> 摘要:隨著高校教學(xué)體制的改革和教務(wù)管理的信息化,通過網(wǎng)絡(luò)進行選課是現(xiàn)代高校教務(wù)管理應(yīng)實現(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)按用戶的使用功能劃分為三大模塊:管理員模塊、教師模塊和學(xué)生模塊。管理員通過該模塊實現(xiàn)對教師和學(xué)生的信息管理,以及學(xué)生選課管理;教師通過該模塊可以查看自己任教的課程的選課情況,錄入學(xué)生成績
4、以及修改個人信息;學(xué)生通過該模塊可以查詢課程、選課、退課、修改密碼等。通過本課題的研究,提高了教務(wù)管理工作的質(zhì)量與效率,對計算機應(yīng)用技術(shù)尤其是網(wǎng)絡(luò)技術(shù)在教務(wù)管理工作中的應(yīng)用與研究起到了積極的推動作用,從而全面提高選修課的管理質(zhì)量,使教務(wù)管理工作更加科學(xué)化、規(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)預(yù)期達到的目標(biāo)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 學(xué)生登陸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 學(xué)生表(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)秀的教學(xué)模式,結(jié)合國內(nèi)多年的辦學(xué)經(jīng)驗,逐步探索出適合中國特色的教學(xué)形式,
17、因此國家教育部面向各級各類學(xué)校開展了全面學(xué)分制改革。因此,各院校迫切學(xué)要對自己的現(xiàn)有教務(wù)管理系統(tǒng)進行改進和提高,根據(jù)國內(nèi)大學(xué)的現(xiàn)在管理模式,結(jié)合國際新的思想觀念,在校園網(wǎng)絡(luò)環(huán)境下建設(shè)先進的、與國際水平接軌的信息化管理平臺。提高學(xué)校管理工作的現(xiàn)代化水平,使之成為學(xué)校公共信息服務(wù)體系的重要組成部分。</p><p> 1.2 國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢</p><p> 我國高校都實行了學(xué)
18、分制,它的核心是允許學(xué)生自由選課,即把學(xué)習(xí)的自主權(quán)交給學(xué)生。在這里,學(xué)生選課時的制約因素比較復(fù)雜,工作量也很大,而且往往需要在較短的時間內(nèi)完成。運用計算機輔助選課,即能實時地對大量選課數(shù)據(jù)進行檢驗和統(tǒng)計,十分方便地輸出選課結(jié)果,同時也避免了人工處理時容易產(chǎn)生的錯誤。在高等學(xué)校的教務(wù)管理工作中,課程表的編排是一項十分復(fù)雜、棘手的工作。在排課過程中,除了滿足大量的制約條件以外,還必須解決許多沖突與矛盾,例如:兩位教師不能同一時間在同一班級上
19、課、一位教師不能在同一時間上兩門課等等。利用計算機輔助進行課表編排工作,既提高了排課工作的科學(xué)性,又可減輕管理人員的工作強度,提高工作效率,從而使學(xué)校教務(wù)管理現(xiàn)代化邁上了一個新臺階。</p><p> 國外的教學(xué)科研軟件與國內(nèi)相比開發(fā)的早而且比較成熟。早在七十年代末,美國就建成了NSFNET(國家科學(xué)基金網(wǎng)),其課題的申報及課題的進展情況匯報都在網(wǎng)上進行。其網(wǎng)上教學(xué)教務(wù)管理系統(tǒng)也十分完善,世界各地的學(xué)生可以坐在
20、家里通過互聯(lián)網(wǎng)完成入學(xué)報名、選課、考試、畢業(yè)論文、取得學(xué)位這一學(xué)習(xí)生活的全過程。目前,國際上已具規(guī)模的遠(yuǎn)程教育學(xué)校就有數(shù)百所之多,網(wǎng)上教育正在各地發(fā)揮著巨大的作用,為世界各國培養(yǎng)出大批人才。所有這些都表明,基于Internet的校園網(wǎng)的應(yīng)用已深入到校園內(nèi)的各個方面。</p><p> 1.3 系統(tǒng)預(yù)期達到的目標(biāo)</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)是必然,這樣學(xué)生無論身在何處,只要有可以上因特網(wǎng)的地方,就隨時可以登錄到選課系統(tǒng)進行選課。既增強了網(wǎng)上選課的靈活性,也減輕了服務(wù)器負(fù)載數(shù)據(jù)的負(fù)擔(dān)。</p><p> 利用移動通信技術(shù)的無線選課系統(tǒng)還是一個比較新的課題,這種通用WAP選課系統(tǒng),能夠在不改動原有選課系統(tǒng)的基礎(chǔ)上,增加一種新的業(yè)務(wù)功能模
22、塊,這種WAP選課系統(tǒng)比基于Web的選課系統(tǒng)最大的特點就是更加便捷,讓學(xué)生隨時隨地都能用上選課系統(tǒng)。這將是我們下一步要努力實現(xiàn)的目標(biāo)。</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ā)布,以及應(yīng)用程序服務(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)上的應(yī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應(yīng)用程序,并且SQL Server 2000支持English Query和Microsoft搜索服務(wù)等功能,在Web應(yīng)用程序中包含了用戶友好的查詢和強大的搜索功能。</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ù)庫引擎支持當(dāng)今苛刻的數(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ù)更新的完整性。復(fù)制同樣使您得以維護多個數(shù)據(jù)復(fù)本,同時確保單獨的數(shù)據(jù)復(fù)本保持同步??蓪⒁唤M數(shù)據(jù)復(fù)制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務(wù)器。</p><p> (4)易于安裝、部署和使用。SQL Server 2000中包括一
31、系列管理和開發(fā)工具,這些工具可改進在多個站點上安裝、部署、管理和使用SQL Server的過程。SQL Server 2000還支持基于標(biāo)準(zhǔn)的、與Windows DNA集成的程序設(shè)計模型,使SQL Server數(shù)據(jù)庫和數(shù)據(jù)倉庫的使用成為生成強大的可伸縮系統(tǒng)的無縫部分。這些功能使您得以快速交付SQL Server應(yīng)用程序,使客戶只需最少的安裝和管理開銷即可實現(xiàn)這些應(yīng)用程序。</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,所以對應(yīng)的容器采用Apache Tomcat 6.0。</p><p> 既然JSP/Servlet,那么它當(dāng)然是不能直接運行的,必須把它放到某種運行環(huán)境當(dāng)中,它才能發(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、理。同理,當(dāng)這些處理完成,又需要將這些java object轉(zhuǎn)換回HTTP協(xié)議下的數(shù)據(jù),反饋給客戶端(JSP/Servlet當(dāng)然存在與服務(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)資源小,擴展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。</p><p> Tomcat是一個輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場
38、合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴展,但它是獨立運行的,所以當(dāng)你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。</p><p> 這里的訣竅是,當(dāng)配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JS
39、P 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式。不過,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è)級應(yīng)用的規(guī)范。它提供了一個多層次的分布式應(yīng)用模型和一系列開發(fā)技術(shù)規(guī)范,與傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型相比有著不可比擬的優(yōu)勢。J2EE技術(shù)是一個開放的、基于標(biāo)準(zhǔn)的開發(fā)和部署的平臺,用于構(gòu)建N層、基于Web、以服務(wù)端計算為核心、模塊化的企業(yè)應(yīng)用。J2EE同時也是所有兼容J2EE標(biāo)準(zhǔn)的應(yīng)用服務(wù)器產(chǎn)品的統(tǒng)一標(biāo)識。</p><p> J2EE是
41、一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2平臺的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(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)提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費用和復(fù)雜性,同時提供對現(xiàn)有應(yīng)用程序集成強有力支持,完全支持Enterprise JavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強了安全機制,提高了性能。[9],[10]
43、,[11]</p><p> 2.3 采用JSP技術(shù)</p><p> JSP(全稱JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)和許多公司參與共同建立的一種使軟件開發(fā)者可以響應(yīng)客戶端請求,而動態(tài)生成HTML、XML或其他格式文檔的Web網(wǎng)頁的技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)是以Java語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器端的Java庫單元提供了一個接口來服
44、務(wù)于HTTP的應(yīng)用程序。</p><p> JSP使Java代碼和特定的預(yù)定義動作可以嵌入到靜態(tài)頁面中。JSP句法增加了被稱為JSP動作的XML標(biāo)簽,它們用來調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標(biāo)簽庫,然后像使用標(biāo)準(zhǔn)HTML或XML標(biāo)簽一樣使用它們。標(biāo)簽庫提供了一種和平臺無關(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ù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(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應(yīng)用程序的開發(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),主要針對高效學(xué)生教務(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)學(xué)生信息管理</b></p><p> 提供包括學(xué)生學(xué)籍的
50、管理,基本信息的查詢,成績查詢,選課查詢。</p><p><b> ?。╝)填寫學(xué)生信息</b></p><p><b> ?。╞)查詢學(xué)生信息</b></p><p><b> ?。╟)修改學(xué)生信息</b></p><p><b> (d)刪除學(xué)生信息</
51、b></p><p> ?。╡)實現(xiàn)選課,退課</p><p><b> (2)教師管理</b></p><p> 教師進行學(xué)生信息的查詢,任教科目查詢,成績錄入,教師基本信息查詢。</p><p><b> ?。╝)填寫教師信息</b></p><p><b
52、> (b)添加教師信息</b></p><p><b> ?。╟)修改教師信息</b></p><p><b> (d)刪除教師信息</b></p><p><b> (3)選課管理</b></p><p> 提供學(xué)生每學(xué)期的公選課的選擇。</p
53、><p> ?。╝)設(shè)定選課時間、人數(shù)</p><p> ?。╞)選上課的學(xué)生名單</p><p> 3.1.2 學(xué)生登陸</p><p> 學(xué)生通過該模塊,可以查詢課程、選課、退課、修改密碼等。</p><p><b> (1)網(wǎng)上選課</b></p><p> (
54、a)實現(xiàn)選課和退課</p><p><b> (2)個人信息</b></p><p><b> (a)查看個人信息</b></p><p> ?。╞)修改個人信息備注</p><p><b> (3)查詢</b></p><p><b>
55、 ?。╝)查詢開課信息</b></p><p><b> ?。╞)查詢所選課程</b></p><p><b> (4)個性服務(wù)</b></p><p> (a)查看系統(tǒng)通知信息</p><p><b> ?。╞)修改密碼</b></p><
56、p> 3.1.3 教師登錄</p><p> 查看自己任教的課程的選課情況,錄入學(xué)生成績以及修改個人信息。</p><p><b> (1)個人信息</b></p><p><b> ?。╝)查看個人信息</b></p><p> (b)修改個人信息備注</p><
57、;p><b> (2)成績錄入</b></p><p> ?。╝)教師根據(jù)課程錄入每個學(xué)生成績</p><p> ?。╞)教師根據(jù)學(xué)生錄入每個課程的成績</p><p><b> (3)個性服務(wù)</b></p><p> (a)可以發(fā)給學(xué)生系統(tǒng)通知</p><p>
58、;<b> (b)修改密碼</b></p><p><b> (4)查詢</b></p><p> ?。╝)老師根據(jù)課程查看學(xué)生選課名單</p><p> ?。╞)老師根據(jù)具體學(xué)號查看學(xué)生選課情況</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 學(xué)生表(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> --當(dāng)插入學(xué)生時,自動的在用戶(
61、admin)表中插入相應(yīng)的學(xué)生編號且級別為1、密碼為默認(rèn)值</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> --當(dāng)插入教師時,自動的在用戶(admin)表中插入相應(yīng)的教師編號且級別為3、密碼為默認(rèn)值</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> --當(dāng)插入管理員時,自動的在用戶(admin)表中插入相應(yīng)的管理員編號且級別為5、密碼為默認(rèn)值</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)學(xué)生及其處理類圖:</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)用即可,從而增加復(fù)用性。</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ù)器當(dāng)前時間</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> 說明:相應(yīng)的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)選課成功時,在當(dāng)前頁面顯示選課結(jié)果:</p><p> 當(dāng)學(xué)生選課成功時,下方顯示出學(xué)生選課的課程,開課的時間,上課的地點。如果學(xué)生操作失誤,可以退選。</p><p&
112、gt; 7.3 其他模塊圖:</p><p><b> (1)添加學(xué)生圖:</b></p><p> 管理員可以根據(jù)自己的權(quán)限添加學(xué)生。</p><p> (2)添加學(xué)生成功時,自動關(guān)閉窗口,并刷新父窗口:</p><p> 說明:相應(yīng)的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)學(xué)生,教師,管理員可修改登錄密碼:</p><p> 為了防止別人登陸自己的帳號,管理員,學(xué)生,教師可以修改自己的密碼。</p><p> (4)教師錄入成績:</p><p> 每學(xué)期末,教師可以根據(jù)學(xué)生成績依次把成績輸入到每個學(xué)生中。</p><p> (5)學(xué)生可查
119、詢成績,教師也可查詢成績,管理員可以查詢所有信息:</p><p> 學(xué)期結(jié)束后,學(xué)生可以自己登陸網(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)的應(yīng)將為學(xué)校管理部門提供一個全新的工作環(huán)境,為促進學(xué)校教育教學(xué)管理的科學(xué)化、規(guī)范化、信息化提供了有力的支持,提升了學(xué)校教學(xué)管理信息化的水平,從而使該系統(tǒng)成為學(xué)校日常管理工作中離不開的關(guān)鍵應(yīng)用,同時為日后的軟件維護提供了良好和完備的接口。</p
121、><p> 8.1.2 局限性</p><p> 設(shè)計剛開始是沒有很好分析系統(tǒng)功能、數(shù)據(jù)庫設(shè)計也存在問題。比如數(shù)據(jù)庫表設(shè)計不夠完善,在編碼階段,當(dāng)想到表中缺少某字段時才添加,此時程序也必須做相應(yīng)的修改,這樣很耽誤時間,有可能有沒考慮到的細(xì)節(jié)導(dǎo)致程序出錯。以此,編程啟動階段,系統(tǒng)功能圖、E-R模型、數(shù)據(jù)庫表及其屬性須考慮全面仔細(xì)。</p><p> 開發(fā)方法還采用
122、面前結(jié)構(gòu)化的開發(fā)方法;同時由于時間關(guān)系,框架使用還不成熟,所以采用jsp+javabean+servlet技術(shù)而沒有用struts+hibernate+spring當(dāng)前比較流行的框架來做,無論在開發(fā)效率、可移植性、可維護性還是面向市場性都不太適合當(dāng)前企業(yè)需求。希望畢業(yè)設(shè)計時,再用框架。</p><p> 8.2 實施過程中的一些體會</p><p> 為期多月的畢業(yè)設(shè)計已經(jīng)接近尾聲了
123、,本系統(tǒng)的整個實施過程中,遇到了很多很多的困難??粗约旱脑O(shè)計從無到有,從最初的雛形到如今的完整系統(tǒng),雖說算不上完善,但也基本符合需求,這不僅僅是自己這幾個月來辛勤勞動的結(jié)晶,更是對自己學(xué)習(xí)成果的一個檢驗。在最初選擇MyEclipse和SQL Server2000作為開發(fā)工具的時候,我考慮到MyEclipse具有強大性和適應(yīng)性的特點,以至于Web應(yīng)用軟件開發(fā)者的幾乎全部的平臺它都可以運行。另外,JSP.NET還具有簡單性和易學(xué)性。在我開
124、發(fā)的整個過程中我在不斷的學(xué)習(xí),一邊學(xué)一邊做,很多時候在一個問題上要花好幾個小時甚至一兩天,當(dāng)我好不容易將這個問題解決時才發(fā)現(xiàn)其實這是個很小的問題,也許只是由于不了解它的一個對象或者時一個函數(shù)的功能。但是,每當(dāng)我費盡心思解決了一個關(guān)鍵問題時,那種成功的喜悅和茅塞頓開的感覺是沒有辦法來形容的,它不僅讓我感受到自己知識的淺薄也會激勵我更加努力的去學(xué)習(xí)更多的東西,好把我的設(shè)計做的更完善更好,因為我根本就不會知道自己在接下來的設(shè)計中又會遇到怎樣的
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)選課系統(tǒng)的分析、設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 畢業(yè)設(shè)計---在線選課系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計----網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)
- 網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計基于web的選課系統(tǒng)設(shè)計與實現(xiàn)
- 基于java的學(xué)生選課系統(tǒng)設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(論文)+網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計---基于bs模式選課系統(tǒng)的設(shè)計與實現(xiàn)
- 基于ajax的學(xué)生選課系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 大學(xué)選課系統(tǒng)的分析、設(shè)計與實現(xiàn)【文獻綜述】
- 大學(xué)選課系統(tǒng)的分析、設(shè)計與實現(xiàn)【開題報告】
- 教務(wù)畢業(yè)設(shè)計選題與選課系統(tǒng)畢業(yè)設(shè)計
- 基于bs結(jié)構(gòu)的網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 學(xué)生選課系統(tǒng)畢業(yè)設(shè)計
- 選課系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)設(shè)計----網(wǎng)上選課系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計----學(xué)生選課管理系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計(論文)-學(xué)生選課系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計--學(xué)生選課管理系統(tǒng)
- 畢業(yè)設(shè)計---學(xué)生選課管理系統(tǒng)
評論
0/150
提交評論