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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-基于net的駕校理論考試模擬系統(tǒng)(編輯修改稿)

2025-01-08 16:31 本頁(yè)面
 

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