版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫原理課程設(shè)計任務(wù)書PAGE21數(shù)據(jù)庫原理課程設(shè)計任務(wù)書班級:學(xué)號:姓名:成績:電子與信息工程學(xué)院計算機科學(xué)系題目名稱某中學(xué)的排課管理系統(tǒng)系統(tǒng)概述排課管理系統(tǒng)屬于數(shù)字化校園系統(tǒng)的一部分。它依靠計算機來完成復(fù)雜的排課部分,避免了手工排課產(chǎn)生的老師上課時間沖突和教室沖突。本系統(tǒng)用的前臺開發(fā)語言是VB,SQLSERVER做后臺數(shù)據(jù)庫。重點介紹自動排課系統(tǒng)的設(shè)計構(gòu)思和實現(xiàn)過程。排課是教學(xué)管理中一項重要而且復(fù)雜的基本工作,其實質(zhì)就是為學(xué)校所設(shè)置的課程安排一組適當?shù)慕虒W(xué)時間與空間(教室),從而使整個教學(xué)活動能夠有計劃、有秩序地進行。在中學(xué)中,排課具有很多的約束條件,其中包括教室、班級、學(xué)生、課程上課時間等多種因素,結(jié)構(gòu)和過程也相當復(fù)雜,課程表的編排及管理是高校教學(xué)管理工作中最為基本又極其重要的一項工作?;谀壳芭耪n管理系統(tǒng)存在的問題,為了實現(xiàn)科學(xué)合理排課,充分利用教學(xué)資源,研究與實現(xiàn)適合我國教學(xué)的智能化、人性化的排課管理系統(tǒng)就顯得尤為重要。本系統(tǒng)是針對中學(xué)教育教學(xué)的特點而開發(fā)設(shè)計的,實現(xiàn)了班級、課程等基本信息的管理,學(xué)生、教師信息的管理,班級課程及課程的任課教師和排課管理,課表查詢統(tǒng)計等功能模塊的設(shè)計。通過測試與運行,表明系統(tǒng)能滿足成教教學(xué)工作實際需求且編碼簡單,并為類似的問題提供了一種可行的解決方案。系統(tǒng)的實施對合理利用成教有限的教學(xué)資源,保障正常的教學(xué)秩序和提高教學(xué)管理水平發(fā)揮了重要作用。系統(tǒng)功能模塊設(shè)計(畫出功能模塊圖,并對每個模塊功能簡單說明)排課管理系統(tǒng)排課管理系統(tǒng)教師學(xué)生信息管理教師信息管理課程信息管理學(xué)生信息管理學(xué)生課表生成學(xué)生信息查詢教師課表查詢教師信息查詢本系統(tǒng)主要實現(xiàn)教師學(xué)生信息管理、教師信息管理、學(xué)生信息管理、課程信息管理,其中教師信息管理有教師姓名、教師工號、教師職稱、教師所屬單位;學(xué)生信息管理有學(xué)生姓名、學(xué)生學(xué)號和學(xué)生所在年級;課程信息管理有課程名稱、學(xué)分、上課地點、已選人數(shù)、課程性質(zhì)、開課班級、課程人數(shù)等。(1)教師學(xué)生信息管理是由管理員對教師和學(xué)生的基本信息進行修改、刪除、新增等功能,實現(xiàn)非本人的操作。(2)學(xué)生信息模塊完成學(xué)生的登陸,然后根據(jù)各位同學(xué)所在的系不同,調(diào)出相應(yīng)的課程模塊。其中學(xué)生登錄模塊的功能是驗證登錄人員確實是本校的學(xué)生,學(xué)生啟動本系統(tǒng)后,系統(tǒng)提示輸入學(xué)生學(xué)號碼和密碼,驗證后進入主控操作界面。(3)教師信息模塊完成教師的登陸,然后根據(jù)各位教師所在的單位不同,教師所教的課程不同,調(diào)出要排課的課程。其中教師登陸模塊的功能是驗證登錄人員確實是本校的教師,教師啟動本系統(tǒng)后,系統(tǒng)提示輸入教師工號和密碼,驗證后進入主控操作界面。(4)課程信息管理包括必修課程和選修課程,學(xué)生必需先登陸才能進行對課程查詢。管理員可以通過超級用戶身份登錄,對系統(tǒng)進行全面的管理,對新用戶的添加,刪除,對信息進行管理。管理員可以對老師及同學(xué)的帳戶進行管理,老師、學(xué)生不同身份的用戶進入不同的界面,進行不同的操作。教師可以發(fā)布自己本學(xué)期所要教的課程。同學(xué)可以通過查詢本學(xué)期所開設(shè)課程進行了解課程安排。數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(畫出E-R圖)mn1n1n11教師課程學(xué)生主講學(xué)習(xí)指導(dǎo)教師姓名mn1n1n11教師課程學(xué)生主講學(xué)習(xí)指導(dǎo)教師姓名教師工號教師職稱所屬單位課程名臣、學(xué)分上課地點課程人數(shù)學(xué)號姓名性別上課時間年齡成績課程號班級屬于班級名稱班級人數(shù)任課教師課程號數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(確定每個關(guān)系模式及其主外鍵,并根據(jù)規(guī)范化理論進行優(yōu)化)教師(教師工號,教師姓名,教師職稱,所屬單位)教師工號為主鍵學(xué)生(學(xué)號,姓名,性別,年齡)學(xué)號為主鍵課程(課程號,課程名,學(xué)分,上課地點,上課時間,任課教師,課程人數(shù))課程號為主鍵班級(班級名稱,班級人數(shù))班級名稱為主鍵學(xué)習(xí)(學(xué)號,課程號,成績)學(xué)號和課程號作為聯(lián)合主鍵7.5數(shù)據(jù)庫物理設(shè)計(數(shù)據(jù)庫中每個表結(jié)構(gòu)以數(shù)據(jù)字典表形式給出,為哪個表建立了何種索引要加以說明,如果使用視圖、存儲過程、觸發(fā)器等可用SQL腳本提供)學(xué)生表Student字段名字段類型是否為小數(shù)是否主鍵是否為空是否外鍵備注SnoIDChar(10)否是否否否SnameIDChar(20)否否否否uniqueSsexChar(2)否否否否否SageSMALLINT否否否否否SgradeChar(20)否否否否否班級表class字段名字段類型是否為小數(shù)是否主鍵是否為空是否外鍵備注Cl_nameIDChar(10)否是否否班級名稱Cl_numChar(5)否否否否班級人數(shù)課程表lesson字段名字段類型是否為小數(shù)是否主鍵是否為空是否外鍵備注Les_nameIDChar(20)否是否否課程名稱Les_tcnameIDChar(8)否否否否老師名稱Les_numChar(4)否否否否每周課時數(shù)Rom_typeChar(2)否否否否教室類型Cl_nameChar(10)否否否是班級名稱教室表classroom字段名字段類型是否為小數(shù)是否主鍵是否為空是否外鍵備注Rom_nameIDChar(10)否是否否教室名稱Rom_numint(10)否否否否教室座位數(shù)Rom_typeChar(2)否否否是教室類型各班周課程表字段名字段類型是否為小數(shù)是否主鍵是否可以為空是否外鍵備注TimeIDChar(10)否是是否如上午一二節(jié)MonChar(20)否否是否星期一課程Tc1Char(8)否否是否該課程老師名字Rom1Char5否否是否該課程安排的教室TusChar(20)否否是否星期二課程Tc2Char(8)否否是否該課程老師名字Rom2Char5否否是否該課程安排的教室WedChar(20)否否是否星期三課程Tc3Char(8)否否是否該課程老師名字Rom3Char5否否是否該課程安排的教室TesChar(20)否否是否星期四課程Tc4Char(8)否否是否該課程老師名字Rom4Char5否否是否該課程安排的教室FriChar(20)否否是否星期五課程Tc5Char(8)否否是否該課程老師名字Rom5Char5否否是否該課程安排的教室
各老師周課程時間安排表字段名字段類型是否為小數(shù)是否主鍵是否為空是否外鍵備注TimeIDChar2否是否否如上午一二節(jié)MonVarchar50否否否否星期一課程TusVarchar50否否否否星期二課程WedVarchar50否否否否星期三課程TesVarchar50否否否否星期四課程FriVarchar50否否否否星期五課程
排課算法中的主要的沖突是教室沖突和教室沖突。我將再通過存儲過程的來解決這樣的沖突,下面介紹一學(xué)期16周,某一門課程32課時為例。存儲過程名為DetectArrangeCollisionCREATEPROCEDUREDetectArrangeCollision@SureCourseIDint,@RoomIDint,@TimeIDint,@TermIDintasdeclare@Arrange_idintdeclare@UserIDchar(10)select@UserID=ChooseCourse.UserIDfromTimetabelinnerjoinChooseCourseonTimetabel.SureCourseID=ChooseCourse.SureCourseIDwhereChooseCourse.SureCourseID=@SureCourseIDselect@Arrange_id=Arrange_idfromTimetabelwhere((RoomID=@RoomIDandTimeID=@TimeID)or(Timetabel.SureCourseIDin(selectSureCourseIDfromChooseCoursewhereUserID=@UserID)andTimeID=@TimeID))/*檢查教室和教師沖突*/if@Arrange_id<>nullbeginselect*fromTimetabelwhereArrange_id=@Arrange_id/*查詢出數(shù)據(jù)*/endelsebegindeclare@currentIDintselect@currentID=count(*)fromTimetabelwhereSureCourseID=@SureCourseIDandTermID=@TermIDif(@currentID<=0)/*查看數(shù)據(jù)庫中是否有重復(fù)*/insertintoTimetabelvalues(@TermID,@SureCourseID,@RoomID,@TimeID)select*fromTimetabelwhereArrange_id=0endGO程序運行環(huán)境和開發(fā)環(huán)境系統(tǒng)開發(fā)環(huán)境包括硬件平臺和軟件平臺兩種。硬件平臺是指開發(fā)與運行所需要的硬件環(huán)境,主要包括計算機機型及硬件配置。由于本系統(tǒng)是一個小型的MIS管理系統(tǒng),因此對計算機硬件的要求不高,比較經(jīng)濟,只要配備有PII300處理器(或以上)、64M內(nèi)存(或以上)、20G硬(或以上)的普通微機即可順利運行。軟件平臺是指系統(tǒng)開發(fā)與運行的軟件環(huán)境。本系統(tǒng)在開發(fā)時選用了穩(wěn)定性較強的WindowsXP和VisualBasic6.0作為開發(fā)語言,同時選用了SQLSERVER2000數(shù)據(jù)庫,由于這些軟件產(chǎn)品都是Microsoft公司的產(chǎn)品,因此彼此之間的兼容性較好,開發(fā)出的應(yīng)用系統(tǒng)穩(wěn)定性較高。VisualBasic6.0具有可視化的開發(fā)環(huán)境,可以快速完成系統(tǒng)的開發(fā),內(nèi)部集成的數(shù)據(jù)庫訪問通道,使得可以輕松方便的對數(shù)據(jù)庫管理。數(shù)據(jù)庫采用MICROSOFTSQLServer2000,并且它所支持的數(shù)據(jù)類型十分豐富,維護簡便,費用較低,容易升級。主要模塊程序流程圖1系統(tǒng)總體模塊分析如下開始開始輸入各類信息,進行信息管理輸入各類信息,進行信息管理輸入排課所需的信息,進行排課輸入排課所需的信息,進行排課輸出已排課表輸出已排課表結(jié)束結(jié)束開始開始出現(xiàn)登陸界面出現(xiàn)登陸界面學(xué)生登陸管理員登陸教師登陸學(xué)生登陸管理員登陸教師登陸登陸后注銷登陸后注銷結(jié)束結(jié)束結(jié)束結(jié)束2登陸子模塊分析如下結(jié)束登錄校驗成功?用戶進入功能界面用戶輸入用戶名、密碼,選擇自己的角色用戶進入登陸界面開始結(jié)束登錄校驗成功?用戶進入功能界面用戶輸入用戶名、密碼,選擇自己的角色用戶進入登陸界面開始NNYY3管理員子模塊分析如下根據(jù)需要刪除信息信息存在?結(jié)束輸入關(guān)鍵字查詢管理員添加信息開始根據(jù)需要刪除信息信息存在?結(jié)束輸入關(guān)鍵字查詢管理員添加信息開始NNYY4教師子模塊分析如下結(jié)束教師進入功能界面,查看課程表教師輸入用戶名、密碼開始結(jié)束教師進入功能界面,查看課程表教師輸入用戶名、密碼開始5注銷子模塊分析如下結(jié)束返回登錄界面登陸完畢,注銷用戶輸入用戶名、密碼,選擇自己的角色用戶進入登陸界面開始結(jié)束返回登錄界面登陸完畢,注銷用戶輸入用戶名、密碼,選擇自己的角色用戶進入登陸界面開始主要功能實現(xiàn)的程序段1.本學(xué)期課程設(shè)置模塊設(shè)計本系統(tǒng)只提供最多十門的課程設(shè)置,用戶可以根據(jù)自己的實際需要來編排里面的課程內(nèi)容,對于中學(xué)來說,十門應(yīng)該足夠了。本模塊界面如下所示:主要代碼如下所示:PrivateSubcn_Click(IndexAsInteger)'OnErrorGoToex:DimlcntAsIntegerDimstrTxtAsStringSelectCaseIndexCase0:CanSave(True)Case1:con.Execute("delete*fromsubject")Forlcnt=0To9strTxt=Trim$(LTrim$(Txt(lcnt).Text))IfLen(strTxt)>0Thenrs.AddNewrs!csjname=strTxtrs.UpdateEndIfNextlcntCanSave(False)Case2:Forlcnt=0To9Txt(lcnt)=str(lcnt)NextlcntCanSave(False)EndSelectExitSubex:MsgBox"databaseerror",vbOKOnly+vbExclamation,"error"EndSub2.教師入庫信息模塊設(shè)計本模塊主要對教師信息的錄入,以便清楚知道教師的情況,所以教師管理這個模塊是比不可少的。光對教師的資料了解便清楚知道,某個老師是能勝任的課程。本模塊主要界面如下所示:主要代碼如下所示:PrivateSubCommand2_Click(IndexAsInteger)OnErrorGoToerrDealIfIndex=0OrIndex=2ThenCanSave(True)ElseCanSave(False)EndIfSelectCaseIndexCase0:rs.AddNewCalltoNullCase1:j=MsgBox("你確定要刪除本記錄嗎?",vbYesNo+vbQuestion,"刪除")Ifj=vbYesThenrs.DeleteCalltoNullEndIfCase2:rs.Deleters.AddNewCase3:IfLen(LTrim$(RTrim$(Text1(0).Text)))>0Then'rs.AddNewFori=0To2IfLen(LTrim$(RTrim$(Text1(i).Text)))>0Thenrs.Fields(i)=Text1(i).TextEndIfNextirs.UpdateElseMsgBox"姓名不得為空",vbOKOnly+vbExclamation,"Error"EndIfCase4:Fori=0To2Text1(i).Text=strBak(i)NextiCallCommand2_Click(3)EndSelectExitSuberrDeal:MsgBox"databaseError",vbExclamation+vbOKOnly,"error"'okEnd:EndSub3.課程安排管理模塊設(shè)計本模塊可以安排一個星期五天的課程,教師可以根據(jù)實際情況制定課程表,并可安排任課老師的安排,課程的安排方便課程查詢時需要。以便及時發(fā)現(xiàn)錯誤能及時修改。下面的年級班數(shù),可以根據(jù)實際情況而定。本模塊界面如下圖所示:主要代碼如下所示:PrivateSubcb_Click(IndexAsInteger)Me.MousePointer=11OnErrorGoToerrDealSelectCaseIndexCase0:ClassCode=Trim(Combo1(0).Text)&"."&Trim(Combo1(1).Text)IfLen(Trim(Combo1(0).Text))>0AndLen(ClassCode)>1ThenCalldisplayInfocb(1).Enabled=TrueEndIfCase1:cb_Click(0)EnableSave(True)cb(1).Enabled=FalseCase2:IfTrChangedThenstrSql="delete*fromtrclasswherecclasscode='"&ClassCode&"'"conn.ExecutestrSqlDimstrTrNameAsStringFori=0TosjCnt-1strTrName=Trim(Combo2(i).Text)IfLen(strTrName)>0ThenstrSql="insertintotrclassvalues('"&ClassCode&"',"+"'"+Trim(Label2(i).Caption)+"',"+"'"+Trim(Combo2(i).Text)+"')"'me.caption=strSqlconn.ExecutestrSqlEndIfNextiTrChanged=FalsersTrAry.Requerycb(1).Enabled=FalseEndIfIfClassChangedThenconn.Execute"delete*fromclassarraywherecclasscode='"&ClassCode&"'"DimX,YAsIntegerFori=0To49Y=iMod5+1X=Int(i/5)+1IfLen(Trim(Combo3(i).Text))>0ThenstrSql="insertintoclassarrayvalues('"&ClassCode&"',"&Y&","&X&",'"&Trim(Combo3(i).Text)&"')"'me.caption=strSqlconn.ExecutestrSqlEndIfNextiClassChanged=FalsersClassAry.RequeryEndIfEnableSave(False)Case3:Fori=0TosjCnt-1Combo2(i).Text=Combo2(i).TagNextiFori=0To49Combo3(i).Text=Combo3(i).TagNextiEnableSave(False)cb(1).Enabled=FalseEndSelectGoTookerrDeal:MsgBox"ErrorUnknown"ok:Me.MousePointer=0EndSub4.課程查詢模塊設(shè)計本模塊主要是方便學(xué)生及教師能很快的查詢,什么時間該上什么課,由哪個老師上等信息。本模塊界面圖如下所示:主要代碼如下所示:PrivateSubCommand1_Click()OnErrorGoTobnEndMe.MousePointer=11DimsSqlAsStringDimdgUseAsDataGet'SelectCaseIndex'Case0:CallClearCombostrName=LTrim$(RTrim$(Combo1.Text))IfLen(strName)>0ThensSql=strSql&"'"&st
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024天津旅游度假區(qū)土地承包使用權(quán)出租協(xié)議3篇
- 2024-2030年中國多層押出與切斷機商業(yè)計劃書
- 2024-2030年中國垃圾焚燒發(fā)電行業(yè)當前經(jīng)濟形勢及投資建議研究報告
- 2024-2030年中國噴霧通風(fēng)玻璃鋼冷卻塔項目投資風(fēng)險分析報告
- 2024年戰(zhàn)略合作:全方位市場營銷協(xié)議3篇
- 2024年度工程欠款結(jié)算付款合同3篇
- 2024年度國有企業(yè)內(nèi)部基礎(chǔ)設(shè)施建設(shè)無償借款合同3篇
- 2024年度健康食品原材料研發(fā)與生產(chǎn)合作合同3篇
- 微專題鋰離子電池-2024高考化學(xué)一輪考點擊破
- 馬鞍山學(xué)院《社會組織與社會治理》2023-2024學(xué)年第一學(xué)期期末試卷
- 管道爬壁機器人設(shè)計說明書
- 鉆井監(jiān)督工作總結(jié)-監(jiān)督工作總結(jié)
- 2022年清華班組長必修課程自測題目和答案解析
- 二年級安全教育期末測試題
- 北師大版九年級數(shù)學(xué)下冊《綜合與實踐》教案及教學(xué)反思
- 2022電大《建筑材料(A)》期末試題及答案
- 商務(wù)英語視聽說知到章節(jié)答案智慧樹2023年山東外國語職業(yè)技術(shù)大學(xué)
- 農(nóng)業(yè)經(jīng)濟學(xué)知到章節(jié)答案智慧樹2023年華南農(nóng)業(yè)大學(xué)
- 西班牙行程單(簽證)
- 2022年7月云南省普通高中學(xué)業(yè)水平考試物理含答案
- 慢性胃炎的中醫(yī)治療
評論
0/150
提交評論