![課程設(shè)計(jì)案例-教室管理信息系統(tǒng)_第1頁(yè)](http://file4.renrendoc.com/view/5d509ed390b8a5449c34ad34e7d5582d/5d509ed390b8a5449c34ad34e7d5582d1.gif)
![課程設(shè)計(jì)案例-教室管理信息系統(tǒng)_第2頁(yè)](http://file4.renrendoc.com/view/5d509ed390b8a5449c34ad34e7d5582d/5d509ed390b8a5449c34ad34e7d5582d2.gif)
![課程設(shè)計(jì)案例-教室管理信息系統(tǒng)_第3頁(yè)](http://file4.renrendoc.com/view/5d509ed390b8a5449c34ad34e7d5582d/5d509ed390b8a5449c34ad34e7d5582d3.gif)
![課程設(shè)計(jì)案例-教室管理信息系統(tǒng)_第4頁(yè)](http://file4.renrendoc.com/view/5d509ed390b8a5449c34ad34e7d5582d/5d509ed390b8a5449c34ad34e7d5582d4.gif)
![課程設(shè)計(jì)案例-教室管理信息系統(tǒng)_第5頁(yè)](http://file4.renrendoc.com/view/5d509ed390b8a5449c34ad34e7d5582d/5d509ed390b8a5449c34ad34e7d5582d5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)課程設(shè)計(jì)院別:信息科學(xué)與電氣工程學(xué)院班級(jí):計(jì)算181姓名:XXX學(xué)號(hào):XXXXXXX指導(dǎo)教師:XXX設(shè)計(jì)地點(diǎn):線上進(jìn)行時(shí)間:2020年6月8日2020年6月19日課程設(shè)計(jì)任務(wù)書題目教室管理信息系統(tǒng)系(部)信息科學(xué)與電氣工程學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)計(jì)算181學(xué)生姓名XXX學(xué)號(hào)XXXXXXXX6月8日至6月19日共2周指導(dǎo)教師(簽字)XXX院長(zhǎng)(簽字)2020年6月7日一、設(shè)計(jì)內(nèi)容及要求通過(guò)本次課程設(shè)計(jì)讓學(xué)生能夠綜合運(yùn)用所學(xué)的關(guān)系數(shù)據(jù)庫(kù)原理知識(shí)解決并能設(shè)計(jì)一個(gè)實(shí)際問(wèn)題,進(jìn)一步掌握數(shù)據(jù)庫(kù)原理的相關(guān)理論和數(shù)據(jù)庫(kù)的設(shè)計(jì)實(shí)現(xiàn)過(guò)程,進(jìn)一步提高學(xué)生的分析問(wèn)題和解決問(wèn)題的能力以及學(xué)生的動(dòng)手能力。要求:1.對(duì)各個(gè)系統(tǒng)進(jìn)行系統(tǒng)功能需求分析2.數(shù)據(jù)庫(kù)設(shè)計(jì)分析階段,進(jìn)行詳細(xì)的數(shù)據(jù)庫(kù)需求分析,進(jìn)行概念數(shù)據(jù)庫(kù)的設(shè)計(jì),畫出數(shù)據(jù)庫(kù)的E-R圖(局部和整體E-R圖)3.設(shè)計(jì)出詳細(xì)的邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu),將各個(gè)實(shí)體和聯(lián)系轉(zhuǎn)化為相應(yīng)的二維表即關(guān)系模式,指定各個(gè)關(guān)系的主關(guān)鍵字和外部關(guān)鍵字,并對(duì)各個(gè)關(guān)系的約束加以限定4.通過(guò)企業(yè)管理器或是查詢分析器實(shí)現(xiàn)各個(gè)二維關(guān)系(建議最好用SQL代碼實(shí)現(xiàn)),要求建立相關(guān)的索引5.根據(jù)系統(tǒng)功能需求設(shè)計(jì)相應(yīng)的查詢視圖6.要求根據(jù)系統(tǒng)功能需求建立存儲(chǔ)過(guò)程7.根據(jù)功能需求建立相應(yīng)的觸發(fā)器以保證數(shù)據(jù)的一致性8.通過(guò)建立用戶和權(quán)限分配實(shí)現(xiàn)數(shù)據(jù)庫(kù)一定的安全性,考慮數(shù)據(jù)庫(kù)的備份與恢復(fù)(此內(nèi)容選作)二、設(shè)計(jì)原始資料1、《數(shù)據(jù)庫(kù)原理與應(yīng)用》2、課程設(shè)計(jì)題目:機(jī)票預(yù)定信息系統(tǒng)、長(zhǎng)途汽車信息管理系統(tǒng)、人事信息管理系統(tǒng)、超市會(huì)員管理系統(tǒng)、客房管理系統(tǒng)、藥品存銷信息管理系統(tǒng)、學(xué)生選課管理信息系統(tǒng)、學(xué)生成績(jī)管理系統(tǒng)、網(wǎng)上書店管理信息、教室管理信息系統(tǒng)、職工考勤管理信息系統(tǒng)、個(gè)人信息管理系統(tǒng)、辦公室日常管理信息系統(tǒng)、轎車銷售信息管理系統(tǒng)等。題目具體內(nèi)容及要求見數(shù)據(jù)庫(kù)課程設(shè)計(jì)題目,鼓勵(lì)自選題目。三、設(shè)計(jì)完成后提交的文件和圖表1.計(jì)算說(shuō)明書部分2.圖紙部分:課程設(shè)計(jì)報(bào)告格式(附后):封面、題目、時(shí)間地點(diǎn)、目的及要求、內(nèi)容、詳細(xì)的步驟和代碼編寫過(guò)程、總結(jié)。設(shè)計(jì)報(bào)告格式:設(shè)計(jì)題目設(shè)計(jì)時(shí)間、地點(diǎn)系統(tǒng)需求分析數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)實(shí)現(xiàn)系統(tǒng)功能模塊實(shí)現(xiàn)設(shè)計(jì)總結(jié)(分析設(shè)計(jì)的得與失)心得體會(huì)封面格式如下(一定要有封面):四、進(jìn)程安排教學(xué)內(nèi)容學(xué)時(shí)地點(diǎn)備注分配任務(wù)與分組1天線上進(jìn)行系統(tǒng)功能需求分析1天線上進(jìn)行數(shù)據(jù)庫(kù)需求分析1天線上進(jìn)行邏輯數(shù)據(jù)庫(kù)結(jié)構(gòu)2天線上進(jìn)行查詢視圖、存儲(chǔ)過(guò)程、觸發(fā)器1天線上進(jìn)行編程2天線上進(jìn)行程序測(cè)試和成果驗(yàn)收2天線上進(jìn)行五、主要參考資料1.《數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用》沈祥玖張?jiān)乐袊?guó)水利水電出版社20162.《SQLServer數(shù)據(jù)庫(kù)配置與管理指南》劉奎
清華大學(xué)出版社20103.《SQL與關(guān)系數(shù)據(jù)庫(kù)理論》周成興清華大學(xué)出版社2010信息科學(xué)與電氣工程學(xué)院課程設(shè)計(jì)成績(jī)?cè)u(píng)定用表平時(shí)成績(jī)(30%)答辯成績(jī)(50%)報(bào)告成績(jī)(20%)總成績(jī)
目錄TOC\o"1-3"\h\u17359摘要 7193881系統(tǒng)需求分析 8106911.1系統(tǒng)整體需求 8177871.2系統(tǒng)功能模塊分析 842551.3教室管理系統(tǒng)功能模塊分析 9218242數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 11210922.1數(shù)據(jù)庫(kù)教室管理系統(tǒng)實(shí)體圖 115932.1.1實(shí)體1 1190042.1.2實(shí)體2 11313952.2數(shù)據(jù)庫(kù)E-R圖 1187873數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 13195763.1數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì) 1388433.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì) 14194444數(shù)據(jù)庫(kù)結(jié)構(gòu)實(shí)現(xiàn) 15240274.1數(shù)據(jù)庫(kù)表實(shí)現(xiàn) 15128474.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì) 16147944.2.1視圖 16279444.2.2存儲(chǔ)過(guò)程 16114374.2.3觸發(fā)器 18308985教室管理系統(tǒng)功能模塊實(shí)現(xiàn) 19283135.1數(shù)據(jù)庫(kù)連接實(shí)現(xiàn) 20209735.2教室管理系統(tǒng)功能實(shí)現(xiàn) 2082015.2.1教室預(yù)約 20143025.2.2修改信息模塊 22272856總結(jié) 308636參考文獻(xiàn) 30摘要本系統(tǒng)為教室管理系統(tǒng)著力于安排教師預(yù)訂教室。教師根據(jù)用戶名及密碼登錄教室管理系統(tǒng),登錄成功后可根據(jù)不同的情況查詢各個(gè)空閑教室的空閑情況,例如教室時(shí)間查詢,教室編號(hào)查詢,教室類型查詢以及教室容納人數(shù)查詢。教師可預(yù)訂每一時(shí)間段的空教室,也可以取消預(yù)訂某一時(shí)間段的空教室。同時(shí)教師可以修改自己已經(jīng)預(yù)訂的空教室。關(guān)鍵字:教室;預(yù)訂;查詢
1系統(tǒng)需求分析1.1系統(tǒng)整體需求實(shí)現(xiàn)教室信息的存儲(chǔ),學(xué)校任課教師信息的存儲(chǔ),教室安排信息存儲(chǔ)。在對(duì)這些數(shù)據(jù)進(jìn)行存儲(chǔ)后,更新數(shù)據(jù)庫(kù),之后,用戶就可以對(duì)學(xué)校教室的使用信息進(jìn)行查詢。本系統(tǒng)總體上說(shuō)涉及了教室的信息,教師的信息。教室信息,包括教室容納人數(shù)、教室空閑時(shí)間、教室設(shè)備等;教師信息,包括教師姓名、教授課程、教師職陳、安排上課時(shí)間等;教室安排信息,包括何時(shí)空閑、空閑的開始時(shí)間、結(jié)束時(shí)間等。按照一定條件查詢,統(tǒng)計(jì),將結(jié)果輸出。教室管理系統(tǒng)登錄模塊教室查詢模塊教室預(yù)約模塊修改信息模塊教室管理系統(tǒng)登錄模塊教室查詢模塊教室預(yù)約模塊修改信息模塊登錄模塊:教師根據(jù)用戶名以及密碼登錄教室管理系統(tǒng)。登陸失敗則可選擇重新登陸,登錄成功后根據(jù)權(quán)限進(jìn)行操作。教室查詢模塊:教師登錄成功后,可以選擇不同的查詢方式,例如教室時(shí)間查詢,教室容納人數(shù)查詢,教室設(shè)備查詢以及教師編號(hào)查詢。教師選擇查詢的條件,系統(tǒng)給出符合要求的空閑教室。教室預(yù)約模塊:教師選擇該模塊預(yù)約某一空閑教室,如果該時(shí)間段教室被使用,則預(yù)約失敗。如果沒被預(yù)約,則預(yù)約成功。修改信息模塊:教師可在登錄界面修改自己的密碼,也可修改自己已預(yù)約教室的時(shí)間信息及取消預(yù)約的教室。登錄模塊由崔鑫維負(fù)責(zé);教室查詢模塊由賈浩冉負(fù)責(zé);教室預(yù)約模塊以及修改信息模塊由欒銘浩負(fù)責(zé)。本系統(tǒng)選擇數(shù)據(jù)庫(kù)為SQLServer2019,開發(fā)語(yǔ)言選用的java教室預(yù)約模塊1.3教室管理系統(tǒng)功能模塊分析教室預(yù)約模塊選擇預(yù)約教室時(shí)間選擇預(yù)約教室時(shí)間教室是否被預(yù)約教室是否被預(yù)約未占用被占用未占用被占用預(yù)約成功預(yù)約失敗預(yù)約成功預(yù)約失敗教室預(yù)約模塊功能:教師選擇該模塊預(yù)約某一空閑教室,選擇教室編號(hào)以及預(yù)約教室的時(shí)間如果該時(shí)間段的此教室沒有被預(yù)約,則預(yù)約成功。如果該時(shí)間段的該教室被預(yù)約,則預(yù)約失敗。預(yù)約前或者預(yù)約完成后教師可點(diǎn)擊查詢,查看是否將預(yù)約記錄添加到數(shù)據(jù)庫(kù)中。修改信息模塊:信息修改模塊信息修改模塊修改預(yù)約的教室信息用戶密碼修改取消預(yù)約教室修改預(yù)約的教室信息用戶密碼修改取消預(yù)約教室信息修改模塊分為三部分:用戶密碼修改部分,教室取消預(yù)訂教室部分和修改預(yù)約教室信息部分。用戶密碼修改部分:用戶在登錄界面點(diǎn)擊修改密碼,用戶輸入用戶名,原密碼以及新密碼。如果原密碼正確則修改成功,否則修改失敗。原密碼正確,密碼修改成功。原密碼錯(cuò)誤,密碼修改失敗。用戶密碼修改信息修改模塊用戶密碼修改信息修改模塊判斷密碼是否正確判斷密碼是否正確原密碼正確原密碼正確原密碼錯(cuò)誤原密碼錯(cuò)誤修改失敗修改成功修改失敗修改成功教師取消預(yù)約教室輸入取消預(yù)約教室的信息教師取消預(yù)約教室輸入取消預(yù)約教室的信息修改成功也可以在該界面選擇查詢修改已預(yù)約教室信息部分:教師根據(jù)界面顯示的信息中選擇修改的信息。修改預(yù)約教室信息修改預(yù)約教室信息輸入修改的信息修改成功2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)2.1數(shù)據(jù)庫(kù)教室管理系統(tǒng)實(shí)體圖教師教師編號(hào)密碼教授課程教師教師編號(hào)密碼教授課程職稱姓名實(shí)體教師,包含五個(gè)屬性有教師編號(hào),姓名,密碼,教授課程,職稱。其中教室編號(hào)是主鍵。其他屬性都不為空。教室教室位置教室設(shè)備容納人數(shù)教室編號(hào)2.1.2教室教室位置教室設(shè)備容納人數(shù)教室編號(hào)實(shí)體教室,包含四個(gè)屬性有教室編號(hào),教室位置,教室設(shè)備以及教室容納人數(shù)。其中教師編號(hào)為主鍵并且其他屬性都不為空。2.2數(shù)據(jù)庫(kù)E-R圖兩個(gè)實(shí)體,一個(gè)是教師,一個(gè)是教室。教師可以預(yù)約多個(gè)教室,一個(gè)教室也可以被多個(gè)教師預(yù)約,因此教師和教室之間存在多對(duì)多的關(guān)系。教師教師教師編號(hào)密碼教授課程職稱姓名教室教室位置教室設(shè)備容納人數(shù)教室編號(hào)教室規(guī)定時(shí)間占用周期教室使用時(shí)間日期教室編號(hào)mmnn3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)教師信息表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1教師編號(hào)char(9)主鍵not
null2姓名varchar(20)not
null3職稱varchar(20)not
null4教授課程varchar(20)not
null教室信息表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1教室編號(hào)char(5)主鍵not
null2容納人數(shù)int1~150not
null3教室設(shè)備varchar(30),not
null4教室位置char(20)not
null教室使用情況表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1教室編號(hào)char(5)聯(lián)合主鍵,外鍵not
null2日期varchar(10)聯(lián)合主鍵,外鍵not
null3周期varchar(10)聯(lián)合主鍵,外鍵not
null4教室使用時(shí)間varchar(30)聯(lián)合主鍵,外鍵not
null5使用教師編號(hào)char(9)聯(lián)合主鍵,外鍵Notnull日期表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1星期varchar(20)UNIQUEnot
null周期表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1周varchar(20)UNIQUEnot
null教室時(shí)間分配表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1教室時(shí)間varchar(30)UNIQUEnot
null刪除記錄表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1操作人編號(hào)char(9)聯(lián)合主鍵,外鍵notnull2教室編號(hào)char(5)聯(lián)合主鍵,外鍵notnull3周期varchar(10)聯(lián)合主鍵,外鍵notnull4日期varchar(10)聯(lián)合主鍵,外鍵notnull5教室使用時(shí)間varchar(30)聯(lián)合主鍵,外鍵not
null修改記錄表編號(hào)字段名稱數(shù)據(jù)類型說(shuō)明是否為空1操作人char(9)聯(lián)合主鍵,外鍵notnull2教室編號(hào)char(5)聯(lián)合主鍵,外鍵notnull3周期varchar(10)聯(lián)合主鍵,外鍵notnull4日期varchar(10)聯(lián)合主鍵,外鍵notnull5教室使用時(shí)間varchar(30)聯(lián)合主鍵,外鍵not
null6操作時(shí)間timestamp聯(lián)合主鍵notnull3.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì)存儲(chǔ)過(guò)程:本系統(tǒng)中使用了八個(gè)存儲(chǔ)過(guò)程,分別為教師編號(hào)查詢的存儲(chǔ)過(guò)程,教室類型查詢的存儲(chǔ)過(guò)程,教室容納人數(shù)查詢的存儲(chǔ)過(guò)程,教室時(shí)間查詢的存儲(chǔ)過(guò)程,預(yù)約教室的存儲(chǔ)過(guò)程,取消預(yù)約教室的存儲(chǔ)過(guò)程,修改預(yù)約教室信息的存儲(chǔ)過(guò)程。這些存儲(chǔ)過(guò)程可實(shí)現(xiàn)用戶對(duì)空閑教室的查詢、預(yù)約、取消預(yù)約以及修改預(yù)約教室的信息。這些存儲(chǔ)過(guò)程在教室查詢模塊、教室預(yù)約模塊和信息修改模塊中使用。觸發(fā)器:本系統(tǒng)使用了三個(gè)觸發(fā)器。三個(gè)觸發(fā)器的功能分為兩類。第一類是用戶禁止修改自己的用戶名。另外一類是當(dāng)用戶取消預(yù)約教室和修改預(yù)約教室信息時(shí),將取消和修改的操作記錄下來(lái)。這些觸發(fā)器用在用戶登錄模塊和修改信息模塊中使用。視圖:本系統(tǒng)使用了一個(gè)視圖。該視圖功能是查詢所有的空教室。此視圖在教室查詢模塊中使用。4數(shù)據(jù)庫(kù)結(jié)構(gòu)實(shí)現(xiàn)4.1數(shù)據(jù)庫(kù)表實(shí)現(xiàn)CREATETABLE教師信息(教師編號(hào)char(9)PRIMARYKEYnotnull,CHECK(教師編號(hào)between'000000000'and'999999999'),姓名varchar(20),密碼varchar(10)notnull,職稱 varchar(20)notnull,教授課程 varchar(20)notnull,上課人數(shù)intCHECK(上課人數(shù)>0)notnull,)CREATETABLE教室信息(教室編號(hào) char(5)PRIMARYKEYNOTNULL,CHECK(教室編號(hào)between'00000'and'99999'),容納人數(shù) intCHECK(容納人數(shù)between'1'and'150')notnull,教室設(shè)備varchar(30)notnull,教室位置char(20)notnull,)CREATETABLE教室使用情況(教室編號(hào) char(5),周期varchar(10),日期varchar(10),教室使用時(shí)間varchar(30),PRIMARYKEY(教室編號(hào),周期,日期,教室使用時(shí)間),FOREIGNKEY(教室編號(hào))REFERENCES教室信息(教室編號(hào)),FOREIGNKEY(周期)REFERENCES周期(周),FOREIGNKEY(日期)REFERENCES日期(星期),FOREIGNKEY(教室使用時(shí)間)REFERENCES教室時(shí)間分配(教室時(shí)間),)CREATETABLE日期(星期varchar(10)UNIQUE
,)CREATETABLE周期(周varchar(10)UNIQUE
,)CREATETABLE教室時(shí)間分配(教室時(shí)間varchar(30)UNIQUE,)CREATETABLE修改記錄表(操作人編號(hào)char(9),教室編號(hào) char(5),周期varchar(10),日期varchar(10),教室使用時(shí)間varchar(30),操作時(shí)間timestamp,PRIMARYKEY(操作人編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間,操作時(shí)間),FOREIGNKEY(教室編號(hào))REFERENCES教室信息(教室編號(hào)),FOREIGNKEY(周期)REFERENCES周期(周),FOREIGNKEY(日期)REFERENCES日期(星期),FOREIGNKEY(教室使用時(shí)間)REFERENCES教室時(shí)間分配(教室時(shí)間),FOREIGNKEY(操作人編號(hào))REFERENCES教師信息(教師編號(hào)),)CREATETABLE刪除記錄表(操作人編號(hào)char(9),教室編號(hào) char(5),周期varchar(10),日期varchar(10),教室使用時(shí)間varchar(30),PRIMARYKEY(操作人編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間),FOREIGNKEY(教室編號(hào))REFERENCES教室信息(教室編號(hào)),FOREIGNKEY(周期)REFERENCES周期(周),FOREIGNKEY(日期)REFERENCES日期(星期),FOREIGNKEY(教室使用時(shí)間)REFERENCES教室時(shí)間分配(教室時(shí)間),FOREIGNKEY(操作人編號(hào))REFERENCES教師信息(教師編號(hào)),)4.2數(shù)據(jù)庫(kù)其他邏輯結(jié)構(gòu)設(shè)計(jì)4.2.1視圖:createview[dbo].[一學(xué)期所有教室使用情況]asselect周,星期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室時(shí)間from日期,周期,教室信息,教室時(shí)間分配4.2.2存儲(chǔ)過(guò)程:createprocedure?教室設(shè)備查詢@教室設(shè)備?char(30),@周varchar(10),@日期varchar(10)withencryptionasselect周,星期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室時(shí)間from日期,周期,教室信息,教室時(shí)間分配where教室設(shè)備=@教室設(shè)備and周=@周and星期=@日期EXCEPTselect周期,日期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室使用時(shí)間from教室信息,教室使用情況where教室信息.教室編號(hào)=教室使用情況.教室編號(hào)and教室設(shè)備=@教室設(shè)備and周期=@周and日期=@日期createprocedure?教室容納人數(shù)查詢@容納人數(shù)?char(30),@周varchar(10),@日期varchar(10)withencryptionasselect周,星期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室時(shí)間from日期,周期,教室信息,教室時(shí)間分配where容納人數(shù)>=@容納人數(shù)and周=@周and星期=@日期EXCEPTselect周期,日期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室使用時(shí)間from教室信息,教室使用情況where教室信息.教室編號(hào)=教室使用情況.教室編號(hào)and容納人數(shù)>=@容納人數(shù)and周期=@周and日期=@日期createprocedure?教室編號(hào)查詢@教室編號(hào)?char(5),@周varchar(10),@日期varchar(10)withencryptionasselect周,星期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室時(shí)間from日期,周期,教室信息,教室時(shí)間分配where教室編號(hào)=@教室編號(hào)and周=@周and星期=@日期EXCEPTselect周期,日期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室使用時(shí)間from教室信息,教室使用情況where教室信息.教室編號(hào)=教室使用情況.教室編號(hào)and教室信息.教室編號(hào)>=@教室編號(hào)and周期=@周and日期=@日期createprocedure?教室時(shí)間查詢@教室使用時(shí)間?varchar(30),@周varchar(10),@日期varchar(10)withencryptionasselect周,星期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室時(shí)間from日期,周期,教室信息,教室時(shí)間分配where教室時(shí)間=@教室使用時(shí)間and周=@周and星期=@日期EXCEPTselect周期,日期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室使用時(shí)間from教室信息,教室使用情況where教室信息.教室編號(hào)=教室使用情況.教室編號(hào)and教室使用時(shí)間=@教室使用時(shí)間and周期=@周and日期=@日期createprocedure?預(yù)訂空閑教室@教室編號(hào)char(5),@日期char(20),@周期char(10),@教室使用時(shí)間varchar(30)withencryptionasinsertinto教室使用情況VALUES(@教室編號(hào),@周期,@日期,@教室使用時(shí)間)createprocedure?取消預(yù)訂空閑教室@教室編號(hào)char(5),@周期char(10),@日期char(20),@教室使用時(shí)間varchar(30)withencryptionasDELETEFROM教室使用情況WHERE教室編號(hào)=@教室編號(hào)and周期=@周期and日期=@日期and教室使用時(shí)間=@教室使用時(shí)間createprocedure?空閑教室查詢withencryptionasselect周,星期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室時(shí)間from日期,周期,教室信息,教室時(shí)間分配EXCEPTselect周期,日期,教室信息.教室編號(hào),容納人數(shù),教室設(shè)備,教室位置,教室使用時(shí)間from教室信息,教室使用情況where教室信息.教室編號(hào)=教室使用情況.教室編號(hào)createprocedure?更新教室使用時(shí)間@更新后周期char(10),@更新后日期char(10),@更新后教室使用時(shí)間varchar(30),@教室編號(hào)char(5),@更新前周期char(10),@更新前日期char(10),@更新前教室使用時(shí)間varchar(30)asupdate教室使用情況set周期=@更新后周期,日期=@更新后日期,教室使用時(shí)間=@更新后教室使用時(shí)間where教室編號(hào)=@教室編號(hào)and周期=@更新前周期and日期=@更新前日期and教室使用時(shí)間=@更新前教室使用時(shí)間4.2.3觸發(fā)器:createtriggertri_noedit_nameon教師信息forupdateasifupdate(教師編號(hào))beginprint('不允許修改!')rollbacktranendCREATETRIGGERtr_product_uON教室使用情況AFTERupdateASif@@rowcount=0return/*更新前*/insertinto修改記錄表(操作人編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間,操作時(shí)間)Select使用教師編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間,getdate()fromdeleted/*更新后*/insertinto修改記錄表(操作人編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間,操作時(shí)間)select使用教師編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間,getdate()fromdeletedGoCREATETRIGGERtr_product_dON教室使用情況AFTERDELETEASif@@rowcount=0/*為了避免占用資源,當(dāng)影響行數(shù)為0時(shí),結(jié)束觸發(fā)器*/Begininsertinto刪除記錄表(操作人編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間)select使用教師編號(hào),教室編號(hào),周期,日期,教室使用時(shí)間,fromdeletedGO5教室管理系統(tǒng)功能模塊實(shí)現(xiàn)5.1數(shù)據(jù)庫(kù)連接實(shí)現(xiàn) Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://:1433;databaseName=教室管理信息系統(tǒng)"; Connectioncon=DriverManager.getConnection(url,"sa","123456");。5.2教室管理系統(tǒng)功能實(shí)現(xiàn)5.2.1教室預(yù)約:用戶選擇預(yù)約教室的教師編號(hào)和預(yù)約的時(shí)間。點(diǎn)擊確定,若此時(shí)間段教室沒有被預(yù)約在,則預(yù)約成功,否則預(yù)約失敗。用戶也可在預(yù)約界面選擇查詢,查詢此教室是否被預(yù)約或者預(yù)約完成后查看預(yù)約是否真正的成功。關(guān)鍵代碼:publicvoidactionPerformed(ActionEvente){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://:1433;databaseName=教室管理信息系統(tǒng)"; Connectioncon=DriverManager.getConnection(url,"sa","123456"); //連接數(shù)據(jù)庫(kù) Statementstmt=con.createStatement(); stmt.executeUpdate("insertinto教室使用情況values('"+comboBox.getSelectedItem().toString()+"','"+comboBox_1.getSelectedItem().toString()+"','"+comboBox_2.getSelectedItem().toString()+"','"+comboBox_3.getSelectedItem().toString()+"')"); //執(zhí)行的SQL語(yǔ)句 Dimensionxt=newDimension(300,30); javax.swing.JFramelogin2=newjavax.swing.JFrame(); login2.setSize(400,200); login2.setDefaultCloseOperation(3); login2.setLocationRelativeTo(null); login2.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 //創(chuàng)建組件 javax.swing.JPaneljp1=newJPanel(); javax.swing.JPaneljp2=newJPanel(); JLabelmessage=newJLabel("預(yù)定成功!"); message.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 message.setPreferredSize(xt); jp1.add(message); login2.getContentPane().add(jp1,BorderLayout.CENTER); JButtonclose=newJButton("確定"); close.setFont(newFont("宋體",Font.PLAIN,14)); //設(shè)置按鍵大小 close.setSize(xt); jp2.add(close); login2.getContentPane().add(jp2,BorderLayout.SOUTH); close.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { login2.dispose(); 預(yù)訂教室menu=new預(yù)訂教室();//返回預(yù)訂教室的界面 menu.setVisible(false); } }); login2.setResizable(false); login2.setVisible(true); //通過(guò)我們獲取的登錄界面對(duì)象,用dispose方法關(guān)閉它 } catch(Exceptionf){ Dimensionxt=newDimension(300,30); javax.swing.JFramelogin2=newjavax.swing.JFrame(); login2.setSize(400,200); login2.setDefaultCloseOperation(3); login2.setLocationRelativeTo(null); login2.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 //創(chuàng)建組件 javax.swing.JPaneljp1=newJPanel(); javax.swing.JPaneljp2=newJPanel(); JLabelmessage=newJLabel("預(yù)訂失敗"); message.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 message.setPreferredSize(xt); //將textName標(biāo)簽添加到窗體上 jp1.add(message); login2.getContentPane().add(jp1,BorderLayout.CENTER); JButtonclose=newJButton("確定"); close.setFont(newFont("宋體",Font.PLAIN,14)); //設(shè)置按鍵大小 close.setSize(xt); jp2.add(close); login2.getContentPane().add(jp2,BorderLayout.SOUTH); close.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { login2.dispose(); } }); login2.setResizable(false); login2.setVisible(true); }5.2.2修改信息模塊密碼修改部分:用戶在登錄界面,點(diǎn)擊修改密碼。用戶填寫修改界面的信息,填寫完成后點(diǎn)擊確定。若用戶輸入的密碼正確則修改成功,否則修改失敗。關(guān)鍵代碼:btnNewButton.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringxx=textField.getText(); Stringyy=textField_1.getText(); Stringzz=textField_2.getText();//獲取填寫信息 Dimensionxt=newDimension(300,30); //生成新界面 javax.swing.JFramelogin2=newjavax.swing.JFrame(); login2.setSize(400,200); login2.setDefaultCloseOperation(3); login2.setLocationRelativeTo(null); login2.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 //創(chuàng)建組件 javax.swing.JPaneljp1=newJPanel(); javax.swing.JPaneljp2=newJPanel(); qweconn=newqwe(); conn.getConnection(); Booleanflag=conn.checkAccount(xx,yy); if(flag) { JLabelmessage=newJLabel("修改成功!"); message.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 message.setPreferredSize(xt); jp1.add(message); login2.getContentPane().add(jp1,BorderLayout.CENTER); JButtonclose=newJButton("確定"); close.setFont(newFont("宋體",Font.PLAIN,14)); //設(shè)置按鍵大小 close.setSize(xt); jp2.add(close); login2.getContentPane().add(jp2,BorderLayout.SOUTH); try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://:1433;databaseName=教室管理信息系統(tǒng)"; Connectioncon=DriverManager.getConnection(url,"sa","123456"); Statementstmt=con.createStatement(); stmt.executeUpdate("update教師信息\r\n"+ "set密碼='"+zz+"'\r\n"+ "where教師編號(hào)='"+xx+"'and密碼='"+yy+"'"); } catch(Exceptionf){ System.out.println("數(shù)據(jù)庫(kù)連接失敗\n"+f.toString()); } close.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { login2.dispose(); 登錄界面menu=new登錄界面(); } }); login2.setResizable(false); login2.setVisible(true); //通過(guò)我們獲取的登錄界面對(duì)象,用dispose方法關(guān)閉它 主界面m=new主界面(); } else { JLabelmessage=newJLabel("原密碼錯(cuò)誤,修改失敗"); message.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 message.setPreferredSize(xt); //將textName標(biāo)簽添加到窗體上 jp1.add(message); login2.getContentPane().add(jp1,BorderLayout.CENTER); JButtonclose=newJButton("確定"); close.setFont(newFont("宋體",Font.PLAIN,14)); //設(shè)置按鍵大小 close.setSize(xt); jp2.add(close); login2.getContentPane().add(jp2,BorderLayout.SOUTH); close.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { login2.dispose(); } }); login2.setResizable(false); login2.setVisible(true); }}publicbooleancheckAccount(Stringusernumber,Stringuserpassword){//判斷輸入的密碼是否正確try{Statementstmt=con.createStatement();Stringsqlstmt="select密碼from教師信息where教師編號(hào)="+"'"+usernumber+"'";ResultSetresultSet=stmt.executeQuery(sqlstmt);StringpassWord="";while(resultSet.next()){passWord=resultSet.getString("密碼").trim();if(passWord==String.valueOf(userpassword)||passWord.equals(String.valueOf(userpassword))){returntrue;}elsereturnfalse;}}catch(SQLExceptione){e.printStackTrace();}returnfalse;}取消預(yù)約模塊:用戶打開此界面,可選擇取消預(yù)約教室的編號(hào)和時(shí)間,點(diǎn)擊確定即可取消預(yù)訂。同事,用戶可點(diǎn)擊界面中查詢按鈕,查看是否取消預(yù)約。關(guān)鍵代碼: btnNewButton.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://:1433;databaseName=教室管理信息系統(tǒng)"; Connectioncon=DriverManager.getConnection(url,"sa","123456"); Statementstmt=con.createStatement(); stmt.executeUpdate("DELETE\r\n"+ "FROM教室使用情況\r\n"+ "WHERE教室編號(hào)='"+comboBox.getSelectedItem().toString()+"'and周期='"+comboBox_1.getSelectedItem().toString()+"'and日期='"+comboBox_2.getSelectedItem().toString()+"'and教室使用時(shí)間='"+comboBox_3.getSelectedItem().toString()+"'\r\n"+ ""); Dimensionxt=newDimension(300,30); javax.swing.JFramelogin2=newjavax.swing.JFrame(); login2.setSize(400,200); login2.setDefaultCloseOperation(3); login2.setLocationRelativeTo(null); login2.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 //創(chuàng)建組件 javax.swing.JPaneljp1=newJPanel(); javax.swing.JPaneljp2=newJPanel(); JLabelmessage=newJLabel("取消預(yù)定成功!"); message.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 message.setPreferredSize(xt); jp1.add(message); login2.getContentPane().add(jp1,BorderLayout.CENTER); JButtonclose=newJButton("確定"); close.setFont(newFont("宋體",Font.PLAIN,14)); //設(shè)置按鍵大小 close.setSize(xt); jp2.add(close); login2.getContentPane().add(jp2,BorderLayout.SOUTH); close.addActionListener(newActionListener() { publicvoidactionPerformed(ActionEvente) { login2.dispose(); 預(yù)訂教室menu=new預(yù)訂教室(); menu.setVisible(false); } }); login2.setResizable(false); login2.setVisible(true); //通過(guò)我們獲取的登錄界面對(duì)象,用dispose方法關(guān)閉它 } catch(Exceptionf){ System.out.println("數(shù)據(jù)庫(kù)連接失敗\n"+f.toString()); } } }修改預(yù)約教室的信息:用戶根據(jù)界面顯得的信息進(jìn)行選擇,點(diǎn)擊確定即可修改預(yù)約教室的信息。關(guān)鍵代碼:btnNewButton.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Stringurl="jdbc:sqlserver://:1433;databaseName=教室管理信息系統(tǒng)"; Connectioncon=DriverManager.getConnection(url,"sa","123456"); Statementstmt=con.createStatement(); stmt.executeUpdate("update教室使用情況\r\n"+ "set周期='"+comboBox_4.getSelectedItem().toString()+"',日期='"+comboBox_5.getSelectedItem().toString()+"',教室使用時(shí)間='"+comboBox_6.getSelectedItem().toString()+"'\r\n"+ "where教室編號(hào)='"+comboBox.getSelectedItem().toString()+"'and周期='"+comboBox_1.getSelectedItem().toString()+"'and日期='"+comboBox_2.getSelectedItem().toString()+"'and教室使用時(shí)間='"+comboBox_3.getSelectedItem().toString()+"'"); Dimensionxt=newDimension(300,30); javax.swing.JFramelogin2=newjavax.swing.JFrame(); login2.setSize(400,200); login2.setDefaultCloseOperation(3); login2.setLocationRelativeTo(null); login2.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格,14號(hào)字體 //創(chuàng)建組件 javax.swing.JPaneljp1=newJPanel(); javax.swing.JPaneljp2=newJPanel(); JLabelmessage=newJLabel("修改成功!"); message.setFont(newFont("宋體",Font.PLAIN,14));//宋體,正常風(fēng)格
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球聯(lián)合收割機(jī)皮帶行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)智能睡眠盒行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球IP65工業(yè)顯示器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球固體激光剝離設(shè)備行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球溴代正癸烷行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 化工倉(cāng)庫(kù)短期租賃合同范本
- XX項(xiàng)目轉(zhuǎn)讓居間合同
- 物業(yè)委托經(jīng)營(yíng)管理合同范文
- 借款和欠款合同范本
- 2025建筑消防工程施工合同
- 中國(guó)儲(chǔ)備糧管理集團(tuán)有限公司蘭州分公司招聘筆試真題2024
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學(xué)年部編版七年級(jí)歷史下冊(cè)
- 【歷史】唐朝建立與“貞觀之治”課件-2024-2025學(xué)年統(tǒng)編版七年級(jí)歷史下冊(cè)
- 產(chǎn)業(yè)園區(qū)招商合作協(xié)議書
- 2024年廣東省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 2025新譯林版英語(yǔ)七年級(jí)下單詞默寫表
- 【正版授權(quán)】 ISO 15978:2002 EN Open end blind rivets with break pull mandrel and countersunk head - AIA/St
- 2024時(shí)事政治考試題庫(kù)(基礎(chǔ)題)
- 2024山西文旅投資集團(tuán)招聘117人公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 《社區(qū)康復(fù)》課件-第七章 腦癱患兒的社區(qū)康復(fù)實(shí)踐
- 光伏十林業(yè)可行性報(bào)告
評(píng)論
0/150
提交評(píng)論