freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計-駕校理論考試模擬系統(tǒng)—論文(編輯修改稿)

2025-01-06 21:02 本頁面
 

【文章內(nèi)容簡介】 用程序首先從數(shù)據(jù)庫獲取該用戶的信息,如用戶名稱和用戶角色,然后再根據(jù)用戶的角色顯示用戶的下一步操作頁面。如果考生登錄,顯示生成等待頁面和在線答題頁面;如果管理登錄,顯示題庫頁面;如果系統(tǒng)管理員登錄,則顯示系統(tǒng)維護頁面。無論用戶是什么樣的角色登錄,系統(tǒng)都將保存該用戶的 ID 和角色 ID。 用戶單擊“確定”按鈕觸發(fā)事件 SureBtn_Click()來 實現(xiàn)用戶登錄驗證過 程。該 事件調(diào)用了數(shù)據(jù)訪問層的函數(shù) GetUserLogin()驗證用戶的輸入,如果是正確的 , 用戶 就 登錄到系統(tǒng)中。否則頁面 將 彈出錯誤信息的提示。 函數(shù) GetUserLogin()從數(shù)據(jù)庫獲取合法用戶的 ID數(shù)據(jù) ,函數(shù) GetUserLogin() 第 9 頁 共 25頁 調(diào)用存儲過程 Pr_GetUserLogin()訪問數(shù)據(jù)庫。 為了整個系統(tǒng)的安全性,在用戶表 Users中的存儲用戶的密碼 Password字段不是用戶密碼的真實值,而是加密后的密碼字符串。加密函數(shù) Encrypt()被定義為 UserDB類的靜態(tài)函數(shù)。調(diào)用加密函數(shù)時,首先把加密字 符串編碼成 Uncode,然后使用系統(tǒng)的不對稱加密算法 MD5加密用戶密碼串。 5. 2. 3用戶注冊 添加新的用戶有兩種方式,一種是從后臺的用戶管理中添加用戶,另一種是用戶注冊,用戶注冊方式只能添加考生。因為具有管理員角色的用戶可以直接進入到系統(tǒng)后臺進行管理。 用戶注冊 時 分別輸入用戶名稱、用戶密碼、確認密碼和用戶的電子郵箱信息即可 。 前 三個控件都用了驗證控件和一個正則表達式 , 電子郵箱 則 使用格式驗證。 單擊“確定”按鈕觸發(fā)事件 SureBtn_Click(),該事件調(diào)用數(shù)據(jù)訪問層函數(shù)AddUser()提交新用戶注冊信息 到表 Users中。 SureBtn_Click()事件調(diào)用函數(shù)AddUser(),AddUser()調(diào)用存儲過程 Pr_AddUser添加新用戶信息到 Users中。在添加的過程中,還查看 Users表中是否有同名稱用戶,有同名用戶就不添加當前的用戶。 5. 3 用戶 及其權(quán)限管理 5. 3. 1用戶管理 系統(tǒng)管理員可以對 用戶管理和 用戶 角色 分配 管理等功能,此功能的關(guān)系圖 5所示。 圖 5 用戶管理與角色管理關(guān)系流程圖 否 是 用戶管理和角色管理 用戶管理 角色權(quán)限管理 用戶角色分配 系統(tǒng)管理員否 開始 結(jié)束 第 10 頁 共 25頁 用戶 管理功能由頁面 ,用戶管理模塊實現(xiàn)了用戶的刪除、角色的分配、密碼的修改。界面設計如圖 6所示: 圖 6 用戶管理及角色管理 用戶列表框顯示系統(tǒng)當前包含 的 所有用戶,系統(tǒng)管理員單擊“ X”按鈕即可刪除當前列表框被選中的用戶。 單擊“/”按鈕即可添加新 用戶 。 用戶管理頁面初始化時,調(diào)用 BindData()實現(xiàn)綁定用戶列表控件,該函數(shù)調(diào)用數(shù)據(jù)訪問層UserDB類的函數(shù) GetUser()從用戶表中獲取用戶和用戶 ID等數(shù)據(jù)。 單擊刪除 “ X” 按鈕實現(xiàn)刪除用戶的功能,該按鈕為圖像按鈕,單擊此按鈕觸發(fā)事件 deleteBtn_Click()。該 事件調(diào)用數(shù) 據(jù)訪問層 UserDB類的函數(shù)DeleteUser()刪除數(shù)據(jù)庫中的用戶記錄。刪除列表中的用戶之后,該事件還要重新綁定用戶數(shù)據(jù)。 單擊添加 “ /” 按鈕實現(xiàn)實現(xiàn)用戶添加功能,此按鈕為圖像按鈕,單擊此按鈕觸發(fā)事件 AddBtn_Click()。用戶密碼同樣是采用 MD5加密函數(shù) Encry(),事件調(diào)用數(shù)據(jù)訪問層 UserDB類的函數(shù) AddUser()添加新的用戶到數(shù)據(jù)庫中。添加后事件重新綁定用戶數(shù)據(jù)。 5. 3. 2用戶角色管理 用戶角色管理實現(xiàn)用戶角色的分配功能。系統(tǒng)存在角色較多,不同的角色具有不同的操作權(quán)限。 如系統(tǒng)管理員具有該角色的用戶可以維護和管理整個系統(tǒng);第 11 頁 共 25頁 管理員角色的用戶可以管理整個系統(tǒng),如可以添加系統(tǒng)考試試題,創(chuàng)建不同類型的試卷;不同的考生分配不同的試卷,而且參加考試后只能看到自己的考試成績。用戶角色管理由頁面 。 用戶角色管理頁面初始化時調(diào)用函數(shù) BindUserData(),調(diào)用數(shù)據(jù)訪問層的UserDB類的函數(shù) GetUsers()從表中獲取用戶數(shù)據(jù),然后再綁定到用戶列表控件。函數(shù) BindRoleData()調(diào)用數(shù)據(jù)訪問層的 RoleDB類的函數(shù) GetGetRoles()從 表中獲取用戶數(shù)據(jù),然后再綁定數(shù)據(jù)到角色列表控件。函數(shù) BindUserRoleData()調(diào)用數(shù)據(jù)訪問層的 UserDB類的函數(shù) GetSingleUser()從表中獲取用戶數(shù)據(jù),然后再綁定到用戶角色控件。 用戶單擊“設為該用戶的角色”按鈕觸發(fā)事件,該事件實現(xiàn)用戶角色之間的關(guān)聯(lián)功能,事件調(diào)用函數(shù) UpdateUserRole()修改用戶表的角色字段值。 5. 3. 3用戶密碼修改 修改密碼由 ,用戶修改自己的密碼時必須知道自己以前的密碼,否則不能修改密碼。 單擊“確定”后 觸發(fā)事件 SureBtn_Click().先判斷新密碼的兩次輸入是否一致。如果一致,就把新的密碼更新到數(shù)據(jù)庫 ,該事件調(diào)用數(shù)據(jù)訪問層 UserDB類的函數(shù) UpdateUserPassword()修改表中的密碼。 此函數(shù)獲取用戶的名稱,用戶只能修改自己的密碼,不能更改名稱。 5. 4題庫設計 題庫設計主要是試題的添加、刪除和修改 ,試題圖片的添加、修改和刪除,試題種類的添加、修改、刪除排序及試題的答案添加 、 刪除和修改等。 5. 4. 1試題種類管理 試題 種類管理由頁面 ,試題種類管理實 現(xiàn)了試題種類的添加、修改、排序和刪除功能。頁面有“↑”“↓”“∕”“ X”和“增加新的試題種類”, 按鈕分別實現(xiàn)試題種類的上移、下移、修改、刪除和添加功能。試題類別管理使用函數(shù) BindQuesKindData(),該函數(shù)首先從 QuestionKinds表中獲取試題的種類數(shù)據(jù),然后再把數(shù)據(jù)綁定到列表控件。 用戶在文本框中輸入試題種類的名稱,然后單擊“增加新的試題種類”按鈕觸發(fā)事件 AddQuesKind_Click(),該函數(shù)添加新的試題種類,它調(diào)用數(shù)據(jù)訪問層的QuestionKindDB類的函數(shù) AddQuesKind(String sKindName,int nOrder)實現(xiàn)添加功能。 單擊“↑”“↓”“∕”、“ X”按鈕 都屬于 ImageButton類型按鈕,在此使用同一個函數(shù) MoveEdit_Click()實現(xiàn)所有按鈕的單擊事件,該函數(shù)通過參數(shù)CommandName區(qū)別是那個按鈕觸發(fā)的事件,然后再使用 switch語句調(diào)用不同的操第 12 頁 共 25頁 作函數(shù)。函數(shù) UpdateQuesKindName()和函數(shù) UpdateBtn_Click()實現(xiàn)試題種類的修改功能。函數(shù) UpdateQuesKindName()從試題種類表 QuestionKinds中獲取修改前試題種類名稱,并顯示在網(wǎng)頁上,函數(shù) UpdateBtn_Click()修改試題的種類名稱。 函數(shù) DeleteQuesKind()實現(xiàn)試題種類的刪除功能,該函數(shù)從試題種類表QuestionKinds中刪除選中的試題種類,然后 再 重新綁定試題種類數(shù)據(jù) 。 5. 4. 2試題圖片管理 試題圖片管理由頁面 ,試題圖片管理主要實現(xiàn)圖片的添加、刪除、修改等功能。界面設計如圖 7所示: 圖 7 試題圖片管理 試題圖片管理在初始頁面時調(diào)用函數(shù) BindPictureData(),該函數(shù)首先從表Pictures中獲取所有圖片的信息,然后再把數(shù)據(jù)綁定到列表控件。圖片都是上傳到系統(tǒng)的一個文件夾中,顯示圖片的時候都是從數(shù)據(jù)庫獲取該圖片的路徑,然后在顯示在頁面上。單擊“上傳”按鈕即是添加新的圖片,添加圖片后,然后重新綁定數(shù)據(jù)。單擊“ /”、“ X”此按鈕即可修改圖片信息和刪除圖片。 5. 4. 3添加試題 添加試題功能由頁面 ,一個試題至少包含幾個屬性:試題的內(nèi)容、試題的類型、試題所在的章節(jié)、試題的分值及試題的創(chuàng)建時間和添加的用戶用戶名稱。 添加試題頁面使用函數(shù) BindQuesKindData(),該函數(shù)首先從 QuestionKinds表中獲取試題種類的數(shù)據(jù),然后再把數(shù)據(jù)綁定到列表控件。函數(shù)BindQuesPictureData()首先從 Pictures表中獲取圖片信息,然后再把數(shù)據(jù)綁定到列表控件。 用戶單擊“確認提交”按鈕觸發(fā)事件 AddNewQuestion_Click(),該事件添加試題,在添加時獲取問題 ID和圖片 ID就可以成功的添加一道新的試題。 第 13 頁 共 25頁 5. 4. 4修改試題 修改試題由頁面 ,它的界面設計和添加試題相似。修改試題頁面 調(diào)用函數(shù) Page_Load()綁定試題種類、試題圖片和被修改問題。其中綁定試題種類和試題圖片同添加試題相似,綁定修改問題數(shù)據(jù)功能由函數(shù)BindQuestionData()實現(xiàn)。 用戶單擊“確認修改”按鈕觸發(fā)事件 UpdateQuestion_Click()實現(xiàn)試題的修改功能。該事件和添加試題事件有很多相同之處。 5. 4. 5刪除試題 刪除試題功能由頁面 , 刪除試題和修改試題實現(xiàn)有很多相同之處。用戶單擊“確認刪除”按鈕觸發(fā)事件 DeleteMyQuestion_Click(),該事件刪除選中的試題。 5. 4. 6試題答案設計 試題答案和試題是不可分割的,在此系統(tǒng)中,每個試題都有三個答案與之對應,只一個正確答案。試題答案設計 實現(xiàn)。在下拉列表選擇框中顯示試題種類,在普通列表框中顯示試題,單擊“添加試題答案”按鈕跳轉(zhuǎn)到答案添加頁面 。試題管理界面用戶函數(shù)Page_Load()進行初始化,函數(shù) Page_Load()調(diào)用函數(shù) BindQuesKindData()和BindQuestionData()函數(shù)。 函數(shù) BindQuesKindData()綁定下拉列表控件的數(shù)據(jù),如試題種類。還調(diào)用數(shù)據(jù)訪問層 QuestionKindDB類的函數(shù) GetQuesKinds()從表 QuestionKinds中獲取試題種類數(shù)據(jù);函數(shù) BindQuestionData()綁定普通列表控件的數(shù)據(jù),如試題內(nèi)容。該函數(shù)調(diào)用數(shù)據(jù)訪問層 QuestionDB類的 GetQuestions()函數(shù)從表 Questions中獲取試題信息。用戶單擊“添加問題答案”按鈕觸發(fā)事件 AddQuesAnswer_Click(),該事件首先判斷試題列表 中某個試題項。如果已經(jīng)選擇,則跳轉(zhuǎn)到試題答案添加頁面,否 則系統(tǒng) 將 提示你沒有選擇數(shù)據(jù)。 private void AddQuesAnswer_Click(object sender, e) { (~/Admins/?QuestionID= + )。} 事件 QuesKindList_SelectedIndexChanged()動態(tài)綁定試題列表框的數(shù)據(jù),如試題名 稱,當試題類型下拉列表框選中的選擇試題種類發(fā)生改變時觸發(fā)該事件,此時頁面會重新綁定列表中的試題數(shù)據(jù)。該事件代碼如下: private void QuesKindList_SelectedIndexChanged(object sender, System. EventArgs e) 第 14 頁 共 25頁 { BindQuestionData(())。 } 5. 4. 7試題答案添加 試題答案添加頁面 添加試題答案功能。每個試題都只 有一個正確的答案,選擇題有三個選項。如果是判斷題,只要輸入“正確”或“錯誤”即可。試題答案添加頁面包含 4 個文本框,前三個輸入框為問題的選項,最后一個是問題的答案。添加試題答案頁面的初始化函數(shù) Page_Load()調(diào)用數(shù)據(jù)訪問層的函數(shù)從表 Questions獲取試題的信息。函數(shù) BindQuestionData(int nQuestionID)綁定單個試題的數(shù)據(jù)信息,它調(diào)用數(shù)據(jù)訪問層 QuestionDB類的函數(shù)GetSingleQuestion()從 Questions表中獲取試題信息。 用戶單擊“確認提交”按鈕 觸發(fā)事件 AddAnswerBtn_Click(),該事件 將 添加試題的答案。 因為頁面存在四個文本框 ,所以四次調(diào)用添加答案函數(shù)AddAnswerToDB()。在添加過程中,系統(tǒng)默認第一個輸入框為“ A”,第二個輸入框為“ B”,每三個輸入框標題為“ C”,最后一個是正確的答案。 事件 AddAnserBtn_Click()通過函數(shù) AddAnswerToDB()調(diào)用數(shù)據(jù)訪問層AnswerDB類的函數(shù) AddAnswer()添加試題答案。函數(shù)代碼如下: private void AddAnswerToDB(int nQuestionID,String sTitle,String sBody,String sAnswerBody) { AnswerDB answer = new AnswerDB()。 (sTitle,sBody,sAnswerBody,nQuestionID,0)。 } 5. 4. 8試題答案修改 修改試題的答案由 ,界面同添加試題答案相似。 頁面初始化調(diào)用函數(shù) BindAnswerData()綁定修改試題答案數(shù)據(jù)功能。它調(diào)用數(shù)據(jù)訪問層 QuestionDB類的函數(shù) Ge
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1