【文章內(nèi)容簡介】
實驗老師3. course表:對應的是課程表,存儲的是課程對應的授課老師,所學班級,以及其實驗所屬的實驗類別,其結(jié)構如表43所示。表43 課程表字段名類型字段大小說明coursenumber數(shù)字長整型課程號coursename文本50課程名coursetecher文本50授課老師learnclass1文本50所學班級1learnclass2文本50所學班級2leibie文本50實驗類別4. kind表:對應的是實驗類別表,用于存儲相應的實驗類別可用的實驗室,其結(jié)構設計如表44所示。表44 實驗類別表字段名類型字段大小說明testkind文本50實驗類別room1文本50實驗室1room2文本50實驗室25. teacher表:對應的是教師授課表,存儲的是教師所教授的課程,其結(jié)構設計如表45所示。表45 教師授課表字段名類型字段大小說明id文本50教師id號teachername文本50教師姓名course1文本50所教課程1course2文本50所教課程26. time12表:對應的是上午一二節(jié)表,存儲的是所有的實驗室所對應的一周之內(nèi)周一到周五的上午前兩節(jié)的是否預約信息其結(jié)構設計如表46所示。表46 上午一二節(jié)表字段名類型字段大小說明testroom文本50實驗室monday文本50周一預約情況tuesday文本50周二預約情況wednesday文本50周三預約情況thursday文本50周四預約情況friday文本50周五預約情況7. time34表:對應上午三四節(jié)表,存儲的是所有的實驗室所對應的一周之內(nèi)周一到周五的上午后兩節(jié)的是否預約信息,結(jié)構設計如表47所示。表47 上午三四節(jié)表字段名類型字段大小說明testroom文本50實驗室monday文本50周一預約情況tuesday文本50周二預約情況wednesday文本50周三預約情況thursday文本50周四預約情況friday文本50周五預約情況8. time56表:對應下午五六節(jié)表,存儲的是所有的實驗室所對應的一周之內(nèi)周一到周五的下午前兩節(jié)的是否預約信息,結(jié)構設計如表48所示。表48 下午五六節(jié)表字段名類型字段大小說明testroom文本50實驗室monday文本50周一預約情況tuesday文本50周二預約情況wednesday文本50周三預約情況thursday文本50周四預約情況friday文本50周五預約情況9. time78表:對應下午七八節(jié)表,存儲的是所有的實驗室所對應的一周之內(nèi)周一到周五的下午后兩節(jié)的是否預約信息,結(jié)構設計如表49所示。表49 下午七八節(jié)表字段名類型字段大小說明testroom文本50實驗室monday文本50周一預約情況tuesday文本50周二預約情況wednesday文本50周三預約情況thursday文本50周四預約情況friday文本50周五預約情況第4章 詳細設計經(jīng)過全面的需求分析,精心的概要設計后,現(xiàn)在來闡明各部分功能模塊的具體實現(xiàn),包括登陸模塊,教師模塊,學生模塊,管理員模塊。本章將主要討論該系統(tǒng)所實現(xiàn)的各部分功能。 模板頁的設計現(xiàn)在眾多的網(wǎng)站中,模板已經(jīng)成為必不可少的網(wǎng)頁助手。有了模板,可以減少很多不必要的代碼,而且模板有助于保證整個網(wǎng)站外觀和風格的一致性。為了減少在網(wǎng)頁設計時出現(xiàn)的變一頁則動全網(wǎng)站的問題,可以把它想象為“網(wǎng)頁模板”。然而與“網(wǎng)頁模板”不同的是,開發(fā)者再也不必去更新每一個頁面了,只需修改一頁,所有的網(wǎng)頁都會改變,這一頁就是母版頁。本系統(tǒng)因為有三個用戶模塊,所以設計了三個模版頁,分別對應于不同的用戶。因為系統(tǒng)中的三個模板頁類似,只是菜單里的內(nèi)容不同,所以在此只介紹一個。模板頁的創(chuàng)建是在建立新頁面時建立的,在選擇“新建項目”時,在出來的對話框中選擇“模板頁”。模板頁視圖設計相對簡單,只有一個Menu菜單控件和一個Image控件。設置Image控件的ImageUrl屬性為圖片的絕對路徑。教師模板頁設計如圖41所示。圖 41 教師模板頁Menu控件中的MenuItem可以直接編寫代碼,但是Microsoft Visual Studio 2005提供了更為直觀的菜單設計工具:在頁面的設計視圖中,右擊Menu控件,然后選擇“編輯菜單項…”,就可以直接輸入菜單的每個欄目,并且欄目之間的級別關系也可以直接通過單擊移動控制按鈕實現(xiàn)。在“菜單項編輯器”對話框中,對菜單中每個欄目的“NavigateUrl”屬性進行設置,可以手動選擇要鏈接到的頁面,然后單擊“確定”即可完成菜單控件的編輯。 教師模塊教師模塊,用戶可以進行實驗的預約和查詢,也可以進行密碼修改。此模塊的核心部分就是預約功能的實現(xiàn),本系統(tǒng)的預約部分用類似課堂表的形式顯現(xiàn)出來,界面直觀。在此只介紹主要部分,預約和查詢。 預約界面預約功能的實現(xiàn)是系統(tǒng)的核心部分,相對來說比較復雜。此系統(tǒng)的預約部分為方便用戶界面直觀,但后臺代碼比較多。界面中用到了四個Datalist控件實現(xiàn)與數(shù)據(jù)庫中的各個時間段的實驗室表進行綁定,使用戶直觀地看到一周之內(nèi)實驗室的預約情況;也用到了Dropdownlist控件綁定來顯示用戶的一些信息。當跳轉(zhuǎn)此頁面時,關于用戶所教授的課程會自動出現(xiàn)在相應的下拉列表框中,當用戶單擊某一課程時,關于此課程對應的實驗項目,實驗室以及所學班級都會自動出現(xiàn),以方便用戶的操作和直觀性。由于綁定比較多,后臺代碼就比較復雜。其運行界面如圖42所示。圖42 預約頁面1. 要實現(xiàn)界面運行時自動出現(xiàn)相應的課程信息,則首先要在Page_Load事件中進行對所教課程的下拉列表框進行綁定。主要代碼如下:Dim sql As String = select * from teacher where teachername=39。 amp。 Session(usename) amp。 39。 Dim conn As New OleDbConnection(Provider=。Data Source= amp。 ()) Dim cmd As New OleDbCommand(sql, conn) () Dim dr As OleDbDataReader = () If () Then (0) (0).Text = (course1) (1) (1).Text = (course2) End If ()首先利用Connection對象建立和數(shù)據(jù)庫的連接,然后建立Command對象,打開數(shù)據(jù)庫,利用Command對象的ExecuteReader方法建立DataReader對象,執(zhí)行查詢語句命令,利用登陸界面中保存的用戶名在數(shù)據(jù)庫中進行查詢,在下拉列表框中動態(tài)添加教師所教授的課程。程序中利用If..Else語句將查詢到的記錄的課程字段動態(tài)添加到下拉列表框中。在循環(huán)輸出記錄的時候,如果正確讀出一條記錄,()=Ttue,執(zhí)行動態(tài)添加,如果沒有讀出記錄,則不添加。2. 當用戶點擊課程下拉列表框中的課程時,課程對應的實驗項目和所學班級以及實驗室都要顯現(xiàn)出來,這部分綁定代碼都在所教課程下拉列表框的ddlCourse_SelectedIndexChanged事件中實現(xiàn)。首先利用Connection對象建立和數(shù)據(jù)庫的連接,然后建立Command對象,執(zhí)行查詢語句命令select * from course where coursename=39。 amp。 str1 amp。 39。,從數(shù)據(jù)庫中的課程表course中查詢課程名為所教課程下拉列表框中的選定項的記錄。若查到則對實驗項目下拉列表框進行動態(tài)添加實驗項目。其代碼和課程下拉列表框的綁定代碼相似,只是在查詢之前要把課程下拉列表框選擇的課程用字符創(chuàng)變量str1記錄下來,即“str1 = ”以便查詢時用到。3. 實驗室下拉列表框的綁定。同樣也是先連接數(shù)據(jù)庫,用字符串變量str2將實驗項目下拉列表框中選定的項保存,然后用select * from kind where testkind=39。 amp。 str2 amp。 39。查詢語句從數(shù)據(jù)庫類別表kind中查詢實驗類別為實驗項目下拉列表框選定的項。查找到對實驗室下拉列表框動態(tài)添加項目。4. 班級下拉列表框的綁定。與前面的綁定一樣,和數(shù)據(jù)庫建立連接,利用select * from course where coursename=39。 amp。 str1 amp。 39。從數(shù)據(jù)庫課程表course中查詢課程名為所教課程下拉列表框選定的課程,查找到后對班級下拉列表框進行動態(tài)添加項。最后關閉數(shù)據(jù)庫。5. 查看實驗室按鈕的代碼實現(xiàn)。strusername = Dim strconn1 As String = Provider=。data source= amp。 ()Dim sql1 As String = select * from time12 where testroom=39。 amp。 strusername amp。 39。Dim conn1 As New OleDbConnection(strconn1) Dim cmd1 As New OleDbCommand(sql1, conn1)()Dim dr1 As OleDbDataReader = () = dr1()() = TrueDim dli As DataListItem = (0)Dim OptionRadio1 As RadioButton = (rblOption1)If = 是 Then = false = TrueEnd If當用戶單擊查看實驗室時,就會出現(xiàn)類似課程表的預約表。因為