




已閱讀5頁,還剩51頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
畢業設計說明書基于JAVA的排課教務系統的設計與實現題目用一號黑體字,一行排不下可排兩行,居中。學生姓名學號學院系名專業指導教師2015年5月信息商務學院計算機系計算機科學與技術基于JAVA的排課教務系統的設計與實現摘要選排課系統功能的設計上,學生選排課系統可以分為登錄、排課和選課3個子系統。登錄子系統區分排課者也即系統的管理者、教師和學生這三者的不同身份,給出不同的權限,在頁面中根據身份判斷其相應具有的功能來使用這套系統。排課子系統主要供排課者使用,排課者可以在這里進行一切與排課有關的活動。選課系統主要供學生選課使用,在這里可以進行與選課有關的活動;教師可在教師反饋系統中對排課者提出反饋意見,供排課者在排課時可參考使用。學生排課系統使用RATIONALROSE進行UMI。建模;過程選擇使用JSP編寫腳本,在數據庫上考慮到快捷、有效,同時考慮到多臺服務器共同使用同一個數據庫的情況,這里選擇SQLSERVER2000作為數據庫服務器;對于網頁的服務器平臺,這里選擇使用TOMCAT5O作為INTERNET服務器。關鍵詞智能排課系統,UML,JSPINTHEPROCESSOFEDUCATIONALADMINISTRATIONMANAGEMENTABSTRACTTHEFUNCTIONALDESIGNOFSELECTEDARRANGEMENTSYSTEM,STUDENTSCHOOSEARRANGEMENTSYSTEMCANBEDIVIDEDINTOLOGIN,CURRICULUMANDELECTIVE3SUBSYSTEMSTHELOGINSUBSYSTEMDISTINGUISHCURRICULUMARRANGEMENTEG,SYSTEMADMINISTRATORS,TEACHERSANDSTUDENTSOFTHETHREEDIFFERENTIDENTITY,GIVEDIFFERENTPERMISSIONSONPAGEWITHTHEIRCORRESPONDINGIDENTITYJUDGMENTACCORDINGTOTHEFUNCTIONTOUSETHISSYSTEMMAINCOURSEFORTHEUSEOFTIMETABLINGSUBSYSTEM,CURRICULUMPERSONCANUNDERTAKEHEREANDALLTHEACTIVITIESRELATEDTOTHECOURSEMAINCOURSEFORSTUDENTSCOURSESYSTEM,HERECANBEUSEDWITHCOURSESRELATEDACTIVITIESTEACHERSCANBEINTEACHERSOFFEEDBACKSYSTEMS,THETIMETABLEFORFEEDBACKWHENTHECOURSECOURSEINREFERENCETOUSESTUDENTSCHOOSEARRANGEMENTSYSTEMRATIONALUMISTARTEDTOUSEMODELINGPROCESSCHOOSETOUSEJSPSCRIPTING,INADATABASEONCONSIDERATIONTOTHEQUICK,EFFECTIVE,ANDCONSIDERINGTHEMULTIPLESERVERSJOINTLYWITHTHESAMEDATABASE,HERETOCHOOSESQLSERVER2000ASDATABASESERVERFORWEBSERVERPLATFORM,HERETOCHOOSEUSETOMCAT5OASINTERNETSERVERKEYWORDSINTELLIGENTCOURSESARRANGINGMANAGEMENTSYSTEM,UML,JSP目錄摘要31系統概述411智能排課系統概述412智能排課系統的目的和意義42開發平臺的技術521JAVA簡介522JSP簡介623TOMCAT的介紹73系統分析531編程環境選擇532設計大綱74設計內容941實現功能1042功能與模塊的設計1043數據庫設計1044數據表設計115系統流程圖設計與分析1451登陸系統流程圖1452主界面中課表生成部分流程圖14521班級管理流程圖14522班級課程處理流程圖15523課表生成部分流程圖16524報表輸出功能1753其它模塊設計說明186系統設計197結論和總結20致謝22參考文獻23附件程序清單1系統概述11智能排課系統概述智能排課系統是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,所以智能排課系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人工的方式管理文件排課,這種管理方式存在著許多缺點,如效率低、保密性差,另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對排課信息進行管理,具有著手工管理所無法比擬的優點。例如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高智能排課的效率,也是企業的科學化、正規化管理,與世界接軌的重要條件。12智能排課系統的目的和意義終上所述,開發這樣一套智能排課軟件成為很有必要的事情。我們所開發的這智能排課軟件歸納起來,好處大約有以下幾點1可以存儲歷屆的排課,安全、高效;2只需一到二名排課錄入員即可操作系統,節省大量人力;3可以按照錄入人員的輸入來自動生成課程表,并盡量減少沖突等情況發生。排課系統的設計分析根據實際情況,我們使用原型法(RAPIDPROTOTYPING)即以少量代價快速地構造一個可執行的軟件系統模型。使用戶和開發人員可以較快地確定需求,然后采用循環進化的開發方式,對系統模型作連續的精化,將系統需具備的性質逐漸增加上去,直到所有的性質全部滿足。此時模塊也發展成為最終產品了。2開發平臺的技術21JAVA簡介JAVA是目前最常用的計算機編程語言,也是主要的網絡開發語言之一。JAVA具有面向對象、分布式和多線程等先進高級計算機語言的特點,同時它還因可移植、安全性能高和網絡移動性等逐漸成為一種行業標準。對于初次接觸計算機編程語言的人來說,JAVA語言簡單易學,不需要長時間的培訓就可以編寫出適合現在企業或個人需要的程序。JAVA的特點1平臺無關性平臺無關性是指JAVA能運行于不同的平臺。JAVA引進虛擬機原理,并運行于虛擬機,實現不同平臺的JAVA接口之間。使用JAVA編寫的程序能在世界范圍內共享。JAVA的數據類型與機器無關,JAVA虛擬機(JAVAVIRTUALMACHINE)是建立在硬件和操作系統之上,實現JAVA二進制代碼的解釋執行功能,提供于不同平臺的接口的。2安全性JAVA的編程類似C,學習過C的讀者將很快掌握JAVA的精髓。JAVA舍棄了C的指針對存儲器地址的直接操作,程序運行時,內存由操作系統分配,這樣可以避免病毒通過指針侵入系統。JAVA對程序提供了安全管理器,防止程序的非法訪問。3面向對象JAVA吸取了C面向對象的概念,將數據封裝于類中,利用類的優點,實現了程序的簡潔性和便于維護性。類的封裝性、繼承性等有關對象的特性,使程序代碼只需一次編譯,然后通過上述特性反復利用。程序員只需把主要精力用在類和接口的設計和應用上。JAVA提供了眾多的一般對象的類,通過繼承即可使用父類的方法。在JAVA中,類的繼承關系是單一的非多重的,一個子類只有一個父類,子類的父類又有一個父類。JAVA提供的OBJECT類及其子類的繼承關系如同一棵倒立的樹形,根類為OBJECT類,OBJECT類功能強大,經常會使用到它及其它派生的子類。4分布式JAVA建立在擴展TCP/IP網絡平臺上。庫函數提供了用HTTP和FTP協議傳送和接受信息的方法。這使得程序員使用網絡上的文件和使用本機文件一樣容易。5鍵壯性JAVA致力于檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。JAVA自己操縱內存減少了內存出錯的可能性。JAVA還實現了真數組,避免了覆蓋數據的可能。這些功能特征大大提高了開發JAVA應用程序的周期。JAVA提供NULL指針檢測、數組邊界檢測、異常出口、BYTECODE校驗。22JSP簡介JSP是SUN公司推出的新一代網站開發語言,SUN公司借助自己在JAVA上的不凡造詣,將JAVA從JAVA應用程序和JAVAAPPLET之外,又有新的碩果,就是JSP,JAVASERVERPAGE。JSP可以在SERVERLET和JAVABEAN的支持下,完成功能強大的站點程序。使用JSP技術,WEB頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來產生頁面上的動態內容。產生內容的邏輯被封裝在標識和JAVABEANS群組件中,并且捆綁在小腳本中,所有的腳本在服務器端執行。如果核心邏輯被封裝在標識和BEANS中,那么其它人,如WEB管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的產生。在服務器端,JSP引擎解釋JSP標識,產生所請求的內容(例如,通過存取JAVABEANS群組件,使用JDBC技術存取數據庫),并且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這有助于作者保護自己的代碼,而又保證任何基于HTML的WEB瀏覽器的完全可用性。絕大多數JSP頁面依賴于可重用且跨平臺的組件(如JAVABEANS或者ENTERPRISEJAVABEANS)來執行應用程序所要求的更為復雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者或者用戶團體所使用。基于組件的方法加速了總體開發過程,并且使得各種群組織在他們現有的技能和優化結果的開發努力中得到平衡。WEB頁面開發人員不會都是熟悉腳本語言的程序設計人員。JAVASERVERPAGE技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容產生所需要的。標準的JSP標識能夠存取和實例化JAVABEANS組件,設定或者檢索群組件屬性,下載APPLET,以及執行用其它方法更難于編碼和耗時的功能。通過開發定制化標識庫,JSP技術是可以擴展的。今后,第三方開發人員和其它人員可以為常用功能建立自己的標識庫。這使得WEB頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來工作。JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,并且擴展到能夠支持企業級的分布式應用。作為采用JAVA技術家族的一部分,以及JAVA2EE的一個成員,JSP技術能夠支持高度復雜的基于WEB的應用。由于JSP頁面的內置腳本語言是基于JAVA程序設計語言的,而且所有的JSP頁面都被編譯成為JAVASERVLET,JSP頁面就具有JAVA技術的所有好處,包括健壯的存儲管理和安全性。作為JAVA平臺的一部分,JSP擁有JAVA程序設計語言“一次編寫,各處執行”的特點。隨著越來越多的供貨商將JSP支持加入到他們的產品中,您可以使用自己所選擇的服務器和工具,修改工具或服務器并不影響目前的應用。23TOMCAT的介紹TOMCAT是APACHEJAKARTA軟件組織的一個子項目,TOMCAT是一個JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVASERVERWEBDEVELOPMENTKIT)基礎上發展起來的一個JSP和SERVLET規范的標準實現,使用TOMCAT可以體驗JSP和SERVLET的最新規范。經過多年的發展,TOMCAT不僅是JSP和SERVLET規范的標準實現,而且具備了很多商業JAVASERVLET容器的特性,并被一些企業用于商業用途。粗略地可以將SERVLET容器分為如下幾類獨立的SERVLET容器內置有WEB服務器的一部分。指當使用基于JAVA的WEB服務器的情形,例如SERVLET容器是JAVAWEBSERVER的一個部分。獨立的SERVLET容器是TOMCAT的默認模式。大多數的WEB服務器并非基于JAVA,因此,我們可以得出如下兩種容器的模式。進程內的SERVLET容器SERVLET容器作為WEB服務器的插件和JAVA容器的實現。WEB服務器插件在內部地址空間打開一個JVMJAVAVIRTUALMACHINE使JAVA容器得以在內部運行如有某個需要調用SERVLET的請求,插件將取得對此請求的控制并將他傳遞使用JNI給JAVA容器。進程內容器對于多線程,單進程的服務器非常合適并且提供很好的運行速度,但伸縮性有所不足。進程外的SERVLET容器SERVLET容器運行于WEB服務器之外的地址空間且作為WEB服務器的插件和JAVA容器的實現的結合WEB服務器插件和JAVA容器JVM使用IPC機制通常是TCP/IP進行通訊當一個調用SERVLET的請求到達時,插件將取得對此請求的控制并將其傳遞使用IPC等給JAVA容器,進程外容器的反應時間或進程外容器引擎不如進程內容器,但進程外容器引擎在許多其他可比的范圍內更好伸縮性,穩定性等。TOMCAT既可作為獨立的容器主要是用于開發與調試又可作為對現有服務器的附加當前支持APACHE,IIS和NETSCAPE服務器即任何時候配置TOMCAT你都必須決定如何應用他,如選擇第二或第三種模式,你還需要安裝一個WEB服務器接口。3系統分析31編程環境選擇編程環境的選擇微軟公司的JSP是WINDOWS應用程序開發工具,使目前最為廣泛的、易學易用的面向對象的開發工具。JSP提供了大量的控件,這些控件可用于設計界面和實現各種功能,減少了編程人員的工作量,也簡化了界面設計過程,從而有效的提高了應用程序的運行效率和可靠性。故而,實現本系統VB是一個相對較好的選擇。關系型數據庫的實現SQLSERVER2000就是關系數據庫開發工具,數據庫能匯集各種信息以供查詢、存儲和檢索。SQLSERVER的優點在于它能使用數據表示圖或自定義窗體收集信息。數據表示圖提供了一種類似于EXCEL的電子表格,可以使數據庫一目了然。另外,SQLSERVER允許創建自定義報表用于打印或輸出數據庫中的信息。SQLSERVER也提供了數據存儲庫,可以使用桌面數據庫文件把數據庫文件置于網絡文件服務器,與其他網絡用戶共享數據庫。SQLSERVER是一種關系數據庫工具,關系數據庫是已開發的最通用的數據庫之一。如上所述,SQLSERVER作為關系數據庫開發具備了許多優點,可以在一個數據包中同時擁有桌面數據庫的便利和關系數據庫的強大功能。二者的結合(DBA)微軟的JET數據庫引擎提供了與數據庫打交道的途徑,我們是通過它以及JSP來訪問數據庫并對其進行各種操作。JSP、SQLSERVER以及其他微軟的軟件產品都是通過共用JET數據庫引擎,從而給用戶提供了豐富的數據類型。當今的微軟對數據庫中的ADO比較注視,并在NET上使用了ADONET技術,鑒于ADO在很多程序里的廣泛應用,使用ADO來連接數據庫將是最為適用的,并且在定義了ADO的連接模塊后,對于將來的升級也會很方便,只要修改一下連接源,就可以輕松的更換后臺。在使用JSP語言進行編程時還有有如下的優點JSP應用程序不同于其他語言開發的單一性程序。使用JSP編程時,必須首先確定應用程序如何與用戶交互,如鼠標單擊,用戶必須編寫代碼控制這些事件的響應方法。使用JSP開發數據庫應用程序的一般步驟如下所示(1)建立數據庫(2)建立用戶界面(3)編寫代碼(4)調試運行(5)編譯應用程序(6)發布應用程序界面設計(1)控件的位置(2)界面元素的一致性(3)保持界面的簡明(4)使用顏色和圖像增加視覺的感染力(5)圖像和圖標增加應用程序的視覺上的趣味(6)選取字體JSP應用程序的結構由于JSP應用程序是基于對象的,所以應用程序的代碼結構就是該程序在屏幕上物理表示的模型。根據定義,對象包含數據和代碼。在屏幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和內在特性。本設計主要是運用ADO來連接和操作數據庫。附ADO技術簡介ADO是MICROSOFT目前主要的數據存取技術,從1997年MICROSOFT推出ADO的第一個版本之后,ADO的整體架構并沒有太大的改變。不過在每一個新的ADO版本之中,MICROSOFT不斷地改善ADO的執行效率,提供更多的功能,持續增加ADO的穩定性,并且讓ADO能夠存取更多種類的數據源。ADO是MICROSOFT提出的各種數據存取技術的演化結果,因為隨著數據日益復雜,數據存取技術也必須不斷地進步以適應應用系統的需求。目前,雖然ADO是WINDOWS平臺存取數據的標準技術,不過ADO也將會繼續演變。要了解ADO為什么會成為目前的標準,可以從WINDOWS平臺數據存取技術的進化而得知。1ODBC1992年MICROSOFT和SYBASE、DIGITAL共同制定了ODBC標準接口,以單一的ODBCAPI來存取各種不同的數據庫。隨后ODBC便獲得了許多數據庫廠商和THIRDPARTY的支持而逐漸成為標準的數據存取技術。ODBC以當時的業界標準規范X/OPENCALLLEVELINTERFACECLI和ISO/IEC90753CALLLEVELINTERFACESQL/CLI為涵蓋的范圍,因而支持了廣闊的數據庫。雖然ODBC在初期的版本中執行效率不佳,而且功能有限,因此也為人們所貶低。但是,隨著MICROSOFT不斷地改善ODBC,使ODBC的執行效率不斷增加,ODBC驅動程序的功能也日漸齊全。到目前,ODBC已經是一個穩定并且執行效率良好的數據存取引擎。不過ODBC僅支持關系數據庫,以及傳統的數據庫數據類型,并且只以C/C語言API形式提供服務,因而無法符合日漸復雜的數據存取應用,也無法讓腳本語言使用。因此MICROSOFT除了ODBC之外,也推出了其他的數據存取技術以滿足程序員不同的需要。2DAO1993年MICROSOFT為了讓程序員能夠存取SQLSERVER數據庫,使用OLEAUTOMATION技術封裝了JETENGINE。這些使用JETENGINE存取SQLSERVER數據庫的OLEAUTOMATIONOBJECT便稱為DATASQLSERVEROBJECTDAO。DAO能夠存取XBASE的數據庫以及EXCEL文件,并且能夠結合ODBC存取關系數據庫。但是DAO畢竟主要的設計目的是存取SQLSERVER數據庫,因此DAO在存取SQLSERVER數據庫時非常有效率,但是在存取其他的數據源時卻表現得不怎么好。目前DAO已經慢慢接近維護的狀態。3RDO由于DAO在結合ODBC存取關系數據庫時表現得并不好,因此在1995年MICROSOFT同樣以OLEAUTOMATION技術直接封裝ODBCAPI,讓程序員能夠存取關系數據庫。這種數據存取技術便稱為REMOTEDATAOBJECTRDO。MICROSOFT之所以推出RDO,是因為ODBCAPI是非常復雜的API,許多程序員無法直接使用ODBCAPI來開發應用程序,因此MICROSOFT以簡化的RDO對象讓程序員能夠較為簡單存取數據。此外,通過RDO,VB和腳本語言也能夠存取各種關系數據庫。不過目前RDO也已經逐漸地被放棄了。4OLEDB隨著數據源日益復雜化,現今的應用程序很可能需要從不同的數據源取得數據,加以處理,再把處理過的數據輸出到另外一個數據源中。更麻煩的是這些數據源可能不是傳統的關系數據庫,而可能是EXCEL文件,EMAIL或INTERNET/INTRANET上的電子簽名信息。MICROSOFT為了讓應用程序能夠以統一的方式存取各種不同的數據源,在1997年提出了UNIVERSALDATASQLSERVERUDA架構。UDA以COM技術為核心,協助程序員存取企業中各類不同的數據源。UDA以OLEDB屬于操作系統層次的軟件作為技術的骨架。OLEDB定義了統一的COM接口作為存取各類異質數據源的標準,并且封裝在一組COM對象之中。藉由OLEDB,程序員就可以使用一致的方式來存取各種數據。5ADOADOACTIVEXDATAOBJECT是微軟新近推出的新一代數據訪問規范,其使用簡便功能強大,在DELPHI中其地位等同于一個和BDE并列的數據庫引擎。ADO是MDAC的應用程序設計接口,從它的字面意思上可以看出,ADO和ACTIVEX技術密不可分,而ACTIVEX技術又和OLE,COM組件對象模型,也由微軟提出,旨在實現軟件組件化等技術有深厚的歷史淵源。OLEDB則是系統級的接口,定義了一套從關系數據庫及文件系統訪問數據的COM接口。32設計大綱經過慎重考慮,并盡量使排課的速度加快,因此對各位教師和各班級都建立一個占用表,首先計算當前要排課程的老師的已排課程占用情況,將其與排課班級的占用表進行對比,獲取有用空間,即得到的空間都會適合,這樣使用隨機推舉的方式來自動生成一個新位置,達到排課效果,并且不會造成沖突等情況的發生。排課作為系統的主要重點,在編寫中就要盡量避免各種各樣的沖突和錯誤發生,因此也需要經過投入長時間的測試與使用才能使程序的功能達到最好,速度最快。在課程表輸出方面,將采用目前最常用的報表形式來進行輸出,并且同時使用VB中操作EXECL的方法將課程表輸出到EXECL自制的課程表模板文件中,并且同時可以實現打印,這樣用戶如果在認為報表輸出的格式并不能讓您滿意的話,就可以根據自己的需要來修改EXECL的模板,達到課程表的完美輸出。4設計內容41實現功能1掌握學校所有的課程和教師的信息。包括每門課程的時間、班級以及任課老師的姓名等。2針對不同的人員授予不同的權限。提供靈活的瀏覽、查詢功能。可以查看某個系、某個班級所有課程的信息。3可以對一個或多個班級進入課程管理與排課表管理,可以不限次的生成該班級課程表。4可以對課程進行變動管理。既可以手工排課,又可以實現自動排序功能。5幫助系統維護可以實現操作日志、重新登錄、打印設置(包括統計各種報表及打印等)、退出等操作。6提供一種或多種課程表輸出功能,并使用活動的模板輸出功能,輸出樣式可以由用戶自定義。7實現功能全面化,由于每個學校或班級的每天課程數目或時間都不太一樣,實現智能計算總課程數目和管理對應的時間段,并且根據每門課程的獨立分布式來進行排列(例如大學語文自動排列的分布方式可以是周一至周六,那么系統就會自動將其平均分布在周一至周六這些天里)8用戶管理設置兩個級別用戶管理員和普通用戶,管理員有權限操作系統中的所有數據,普通用戶只能以執行查詢,輸出之類的功能,無法對系統進行實質性的操作,用戶使用本系統之前必須先通過身份認證(用戶級別、用戶名和密碼,密碼輸入有次數限制,連續三次輸入錯誤密碼則鎖定該用戶)42功能與模塊的設計421設計思想本系統采用各班級獨立劃分管理,所有教師均可為任何班級服務,各班級根據每天課程數目來進行自動排序,同時各教師允許教學多門課程,因此為了每名教師配置了時間占用表,只要與班級對應的時間空間表未被占用,都可以參與排課,并根據用戶定義的要求排出課程。數據管理類由于班級,時間,教師,課程等信息都需要一個活動的管理過程,因為在節省資源的情況下,將各數據所需要的代碼合并在一起進行編寫和使用。排課系統系統還原班級管理課程管理時間段設置用戶管理課表生成離開系統圖421排課系統實體圖422各模塊設計與分析此處中各模塊的設計與分析在以下各模塊數據流圖與程序中同步講解。423系統ER圖班級班級名稱輔導員教室號課程課程名教師姓名臨時生成課表時間段星期一星期二星期三星期四星期五星期六星期日班級自動編號班級課程信息課程名課節數每周課數需要周數任課老師兩節課累排課程分布所屬班級1N1N1N從屬從屬從屬圖423系統ER圖系統ER圖說明本系統是一個智能排課系統,主要是根據班級為單位,利用班級與課程來進行排課。班級與課程是一對多的關系,班級不能重復,但是課程可以隨意出現任何班級。班級與班級課程信息之間也是一對多的關系,一個班級,可以有很多不同的課程。班級與臨時生成課表是一對多的關系,一個班級,只能有一個課程表,而排列的方式都同樣由班級獲得。其余的數據庫建立都是在讓系統方便使用的基礎上建立的,還有一個無需用戶手動添加數據的,做為內部參數來使用的表,這里就不用標出的了。424數據字典數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實完善的。明確地需求收集和分析作為數據庫設計的第一階段是十分重要的。這一階段收集到的基礎數據(用數據字典來表達)和一組數據流程圖(DATAFLOWDIAGRAM,簡稱DFD)是下一步進行概念設計的基礎。以下是本系統的數據結構,因實現使用方便的特點,數據庫中的各字段列表直接用中文來表示,所以數據字典在以下數據庫設計中已經沒有什么太大的必要。詳見數據庫的設計43數據庫設計數據庫的概念數據庫是一種存儲數據并對數據進行操作的工具。數據庫的作用在于組織和表達信息,簡而言之,數據庫就是信息的集合。計算機的數據庫可以分為兩類非關系數據庫(FLATFILE)和關系數據庫(RELATIONAL)。關系數據庫中包含了多個數據表的信息,數據庫含有各個不同部分的術語,像記錄、域等。新建一個數據庫創建任何一個數據庫的第一步是仔細的規劃數據庫,設計必須是靈活的、有邏輯的。創建一個數據庫結構的過程被認為是數據模型設計。創建一個數據庫的大體思路如下1標識需要的數據;2收集被標識的字段到表中;3標識主關鍵字字段;4繪制一個簡單的數據圖表;5規范數據;6標識指定字段的信息;7創建物理表。32修改已建的數據庫數據庫的修改分為添加、編輯和刪除記錄。這三種操作均可由JSP創建的程序來完成,下面的章節將詳細描述實現的具體方法。實現數據庫之間的聯系數據庫之間的關系指明兩個庫之間共享一個共同的關鍵字值。一個連接是指一種虛擬的表,這種表是在當用戶要求從相互關聯的各個不同的表中獲取信息時建立的,關鍵字段用于在相互連接的不同表中查找匹配的記錄。一個更高級的連接形式稱為自連接。這種連接是指一個表被連接到它自己的一個字段,或在不同的紀錄中由重復數據的組合字段。數據庫中有三種不同類型的關鍵字主關鍵字、組合關鍵字和外關鍵字。在表中使用的關鍵字類型用于描述數據庫表示什么以及在數據庫中如何與其它的庫建立關系。在眾多的數據庫中,MICROSOFT的SQLSERVER是操作最簡單,使用最為廣泛的一種數據庫軟件,在單機上運行有著方便、實用、操作員要求低等特點。在這里,我選擇了使用SQLSERVER數據庫管理系統,來開發一個小型的銷售管理系統。在系統的數據庫設計中,應遵守以下的原則數據結構的合理性。即數據文件的合理組織,數據元素的合理歸類和劃分,以及數據項的合理描述。數據存儲的安全性。提高安全性的最為有效的措施是增加數據的冗余,而數據的大量冗余往往為維護數據的一致性帶來了困難。對此,根據實際需要進行合理取舍,在盡量降低冗余的前提下,確保數據的安全性和可靠性。維護和管理方便。存儲結構的設計,首先應保證對數據進行管理和維護上的方便,它是提高系統運行效率的基礎。44數據表設計在使用SQLSERVER創建“智能排課系統”數據庫系統中需要建立的數據表有441登錄表字段數據類型字段大小必填字段索引允許為空用戶名文本50是無否密碼文本50否有無重復否權限文本50是無否442課程表字段數據類型字段大小必填字段索引允許為空課程名文本4否有無重復是教師姓名文本50是無否443課程信息表字段數據類型字段大小必填字段索引允許為空課程名文本50否有無重復否課節數數字長整型是無是每周課數數字長整型是無否需要周數數字長整型是有有重復否任課老師文本50否無否兩節課累排文本50否無否課程分布文本50否無否所屬班級文本50否無否444臨時生成表字段數據類型字段大小必填字段索引允許為空時間段文本50是無是星期一文本50否無是星期二文本50否無是星期三文本50否無是星期四文本50否無是星期五文本50否無是星期六文本50否無是星期日文本50否無是所屬班級文本50否無是自動編號自動編號是無否續444臨時生成表平445課程占用表字段數據類型字段大小必填字段索引允許為空班級文本50是無否占用文本50否有無重復否446系統日志表字段數據類型字段大小必填字段索引允許為空用戶名文本50是無否時間文本50否無否操作記錄文本255否無否447系統設定表字段數據類型字段大小必填字段索引允許為空每天課數數字長整型是無否448占用表字段數據類型字段大小必填字段索引允許為空教師姓名文本50是無否占用文本50否無否5系統流程圖設計與分析51登陸系統流程圖登陸界面輸入用戶名和密碼退出系統驗證帳號和密碼登入排課主界面YN3圖51登錄系統流程圖設計說明進入主界面后,等待操作用戶輸入用戶名和密碼,在輸入之后按確定進入,驗證用戶名和密碼,實現流程1檢測數據庫中有無管理員帳號,如果有,則等待用戶輸入用戶名和密碼,否則按程序本身自動執行插入命令,新建一個管理員用戶,并等待用戶輸入2驗證用戶名和密碼是否正確,錯誤次數不能超過三次,超過三次則退出系統登陸界面3當驗證通過后,檢測該登陸用戶的管理權限,并設置變量傳值給主窗體52主界面中課表生成部分流程圖521班級管理流程圖班級管理添加保存修改刪除返回輸入數據驗證重復執行保存圖521班級管理流程圖模塊設計說明班級的操作部分是排課程序正常執行的重要部分,班級的添加不允許有同名的班級出現,而修改也不能做到修改班級名,班級名稱將作為不可修改的數據部分,而刪除部分,在刪除之前必須保證該班級的課表是否已經生成,如果是,則需要注銷課程表,這樣做是讓該班級生成的課表占用教師空間的部分全部返回,這樣不會使教師的空間被反復占用,而最終導致錯誤發生。522班級課程處理流程圖班級課程處理添加保存修改刪除輸入數據驗證重復執行保存課程是否生成提示并返回操作YN圖522班級課程處理流程圖模塊設計說明課程數據的添加,修改或刪除都會影響到已生成課程表的返回,因為在操作之前必要保證課程表屬于未生成狀態,如果當前為生成狀態,則需要注銷課程表,這樣才可以繼續操作。注已生成課程表的返回由于課程表排列好后,對應的課程后教師的排課占用表都會有標記標明,如果這時修改了某此數據后,這教師的占用表并沒有恢復到未生成狀態,這樣就會導致不可預知的錯誤發生。523課表生成部分流程圖生成課表顯示課程A注解A每周課程數是否大于課程表的表格數B退回以前曾生成的課程表,此操作達到將各位老師和該班級的排課占用情況返回到未生成狀態B進入排課循環排課完成并退出Y退出N排課循環CC當前所排課程與當前班級的可排課位置生成D獲取隨機生成的位置對應值,并利用獲取的值來計算課程表上對應的橫向與縱向坐標F根據用戶的設置來確定允許排課的課節數(例如允許同一課程兩節課連排,則可以進行某個操作步驟),根據當前需求,目前只開發2節課連排與單節課排列。G在當前課程當前節排列成功后,將會為該課程的教師的課程占用情況與班級的占用作修改,做個標記DF2節課連排單節課排列G次數取決于課程總數是否再次循環允許幾節連排退出圖523課表生成部分流程圖模塊設計說明此處將執行的數據分成很多小部分來執行,這樣做可以在測試中便如發現問題,因為排課系統的要求非常高,所以在程序實現方面是以由簡到繁的過程。1排課中要求的每周課程數相加不能超出定義的課表范圍,否則也將會出現死循環。2列出對應課程教師的未被占用的排課列表和班級的課程占用表。3窮舉法列出以上兩者之間的共通點,可用點。4最后通過循環隨機選擇來實現課程的定位與排列。5課程定位中不允許每天有相同的課程重復,并按規定來執行按什么樣的格式來排列,例如兩節連排,也就是說可以把該課程在同一天排在一起,可以實現兩節課連上,這是大學課表里最常用的一個功能。524報表輸出功能表524報表輸出功能表報表輸出AA通過班級來獲取對應的生成課程表數據并賦值給某個打印變量或數據集B打開MDI窗體,并在其中顯示報表窗體,將該報表的數據源定義為A所賦值的語句變量B打印退出EXECL模板輸出A獲取模板并復制數據填入臨時文件保存臨時文件是否打印打印返回操作YN模塊設計說明此處采用了兩種輸出方式,第一種是普通的報表方式輸出,可以實現一般的打印預覽等功能,第二種則是采用模板功能,用戶可以自由修改模板,前提是不可以更改數據位,其它的部分無論如何修改都沒有關系。53其它模塊設計說明(用戶管理模塊,時間段模塊,課程管理模塊)此處幾個模塊是經過資源優化將其與班級管理整合在一起的,此處工作流程基本上與班級管理的流程相同。54調課功能實現及設計說明由系統自動排課生成的并不一定能完全達到用戶所想需要的效果,雖然在程序中解決了系統沖突的出現,但是因為某些原因而出現臨時的原因都需要進行調課,因此排課系統中除了自動生成課表還必須有很靈活的調課功能才能讓系統更完整,也便如使用調課查詢可調點使可調位置變色獲取課程資料獲取教師對應資源圖54調課功能圖此處調課是事先獲取系統有用資源空間,并在圖表中進行背景色變色顯示,提示用戶該門課程可以調動至變色顯示的地方,主要是通過班級的課程占用與該教師的排課占用情況進行對比,尋找有利和適用的位置,并等待用戶進行調課操作執行調課在進行以上操作后,計算機自動等待用戶選擇系統列出的調課點,在選擇某調課點后,系統自動清除數據庫的中該課程的教師與當前班級該處資源占用情況,并同時清除圖表中的資料,將其重新放置到新位置,并修改新地點的資源占用情況,最后將圖表的可調位置背景色還原回正常狀態6系統設計1管理員登陸管理員登入,輸入相應的用戶名和密碼,程序中采用一個判斷,如果兩個其中一個為空或者填錯都不能成功登入。界面和部分代碼如下圖61管理員登錄圖代碼如下STRINGSQL“SELECTFROMT_ADMINWHEREUSERNAMEANDUSERPW“OBJECTPARAMSUSERNAME,USERPWDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSTRYRESULTSETRSMYDBGETRSBOOLEANMARKRSNULL|RSNEXTFALSETRUEIFMARKFALSERESULT“NO“ELSERESULT“YES“TADMINADMINNEWTADMINADMINSETUSERIDRSGETINT“USERID“ADMINSETUSERNAMERSGETSTRING“USERNAME“ADMINSETUSERPWRSGETSTRING“USERPW“WEBCONTEXTCTXWEBCONTEXTFACTORYGETHTTPSESSIONSESSIONCTXGETSESSIONSESSIONSETATTRIBUTE“USERTYPE“,0SESSIONSETATTRIBUTE“ADMIN“,ADMINRSCLOSECATCHSQLEXCEPTIONESYSTEMOUTPRINTLN“登錄失敗“EPRINTSTACKTRACEFINALLYMYDBCLOSED2系統首頁后臺系統首頁面,其中采用了最新型的網頁“后退”,”前進”刷新”,直接利用網頁代碼進行操作。左邊是功能的目錄。界面和部分代碼如下圖62系統首頁圖代碼如下/ADMIN/TOPJSP“NAME“TOPFRAME“SCROLLING“NO“NORESIZE“NORESIZE“ID“TOPFRAME“/ADMIN/CENTERJSP“NAME“MAINFRAME“ID“MAINFRAME“/ADMIN/DOWNJSP“NAME“BOTTOMFRAME“SCROLLING“NO“NORESIZE“NORESIZE“ID“BOTTOMFRAME“/3管理員修改密碼管理員如要修改密碼,必須記住原先的密碼,程序中采用了一個判斷機制,如果原密碼輸入錯誤,則不能修改密碼。進一步提供了網站的安全。界面和部分代碼如下圖63管理員修改密碼圖代碼如下WEBCONTEXTCTXWEBCONTEXTFACTORYGETHTTPSESSIONSESSIONCTXGETSESSIONTADMINADMINTADMINSESSIONGETATTRIBUTE“ADMIN“STRINGSQL“UPDATET_ADMINSETUSERPWWHEREUSERID“OBJECTPARAMSUSERPWNEW,ADMINGETUSERIDDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSRETURN“YES“4專業管理專業管理功能,即可以添加專業名稱和簡單的介紹,也可以對原有的記錄進行修改和編輯,界面和部分代碼如下圖64專業管理圖代碼如下STRINGNAMEREQGETPARAMETER“NAME“STRINGJIESHAOREQGETPARAMETER“JIESHAO“STRINGDEL“NO“STRINGSQL“INSERTINTOT_ZHUANYEVALUES,“OBJECTPARAMSNAME,JIESHAO,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“ZHUANYETYPEZHUANYEMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES5班級管理班級管理模塊,是一個兩個表相關聯的模塊,專業表和班級表。選擇相應的專業添加相應的班級,界面和部分代碼如下圖65班級管理圖代碼如下PUBLICVOIDBANJIADDHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGNAMEREQGETPARAMETER“NAME“STRINGZHUANYE_IDREQGETPARAMETER“ZHUANYE_ID“STRINGDEL“NO“STRINGSQL“INSERTINTOT_BANJIVALUES,“OBJECTPARAMSNAME,ZHUANYE_ID,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“BANJITYPEBANJIMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RESPUBLICVOIDBANJIDELHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGSQL“UPDATET_BANJISETDELYESWHEREID“INTEGERPARSEINTREQGETPARAMETER“ID“OBJECTPARAMSDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“BANJITYPEBANJIMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES6課程管理課程管理功能,即可以添加課程名稱和簡單的介紹,也可以對原有的記錄進行修改和編輯,界面和部分代碼如下圖66課程管理圖代碼如下PUBLICVOIDKECHENGADDHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGNAMEREQGETPARAMETER“NAME“STRINGJIESHAOREQGETPARAMETER“JIESHAO“STRINGDEL“NO“STRINGSQL“INSERTINTOT_KECHENGVALUES,“OBJECTPARAMSNAME,JIESHAO,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“KECHENGTYPEKECHENGMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RESPUBLICVOIDKECHENGDELHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGSQL“UPDATET_KECHENGSETDELYESWHEREID“INTEGERPARSEINTREQGETPARAMETER“ID“OBJECTPARAMSDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“KECHENGTYPEKECHENGMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES7老師管理老師管理功能模塊,即可以要輸入相應的教師號,姓名等信息進行添加,也可以對原有的記錄進行修改和編輯,界面和部分代碼如下圖67老師管理圖代碼如下PUBLICVOIDTEAADDHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGBIANHAOREQGETPARAMETER“BIANHAO“STRINGNAMEREQGETPARAMETER“NAME“STRINGSEXREQGETPARAMETER“SEX“SYSTEMOUTPRINTLNREQGETPARAMETER“AGE“TRIMINTAGEINTEGERPARSEINTREQGETPARAMETER“AGE“STRINGDEL“NO“STRINGSQL“INSERTINTOT_TEAVALUES,“OBJECTPARAMSBIANHAO,NAME,SEX,AGE,DELDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“TEATYPETEAMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RESPUBLICVOIDTEADELHTTPSERVLETREQUESTREQ,HTTPSERVLETRESPONSERESSTRINGSQL“UPDATET_TEASETDELYESWHEREID“INTEGERPARSEINTREQGETPARAMETER“ID“OBJECTPARAMSDBMYDBNEWDBMYDBDOPSTMSQL,PARAMSMYDBCLOSEDREQSETATTRIBUTE“MESSAGE“,“操作成功“REQSETATTRIBUTE“PATH“,“TEATYPETEAMANA“STRINGTARGETURL“/COMMON/SUCCESSJSP“DISPATCHTARGETURL,REQ,RES8學生管理學生管理功能模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售目標達成情況表-銷售目標達成統計
- 勞動能力與收入狀況確認書(5篇)
- 文化創意產業文化產品分類表
- 第6課《個性化網頁設計》課件 2024-2025學年嶺南美版初中美術九年級下冊
- 2025年北京東城區九年級中考二模數學試卷試題(含答案詳解)
- 玫紅青扁平風網絡安全教育模板
- 預測分析與數據科學提升商業決策的準確性
- 音樂節目的舞臺燈光色彩設計與觀眾互動
- 非物質文化遺產在小學生心中的價值與意義
- 防災科技在災害應對中的應用
- 排水管網檢測投標方案(技術方案)
- 飛天威亞應急預案
- environment 環境 主題英文課件
- 體育館施工組織設計
- 華為H12-611 V1.0 HCIA-openEuler認證備考試題庫及答案(高分刷題版)
- 郵輪乘務員職業道德與素養PPT完整全套教學課件
- 有限責任公司章程兩個及以上股東樣本
- 健康管理服務營銷PPT完整全套教學課件
- 丙烷儲存應急預案
- 山東開放大學工作人員招聘考試真題2022
- 夏季預防中暑及中暑急救培訓PPT
評論
0/150
提交評論