【正文】
作風使我受益匪淺,對順利完成本課題起到了極大的作用。 5. 9考試結果 考試結果由頁面 現,該頁面實現了考試結果,考生在交卷后就能看到自己當前的考試成績。 第 22 頁 共 25頁 = AnswerID。 i 。函數代碼如下: private bool IsExistIndex(ArrayList IndexList,int index) { bool isExist = false。} } return(QuestionIDList)。 while(true) ///逐個生成每種題型 { for(int i = 0。///從數據庫中取到這套試卷所包含的題型及數量 ArrayList KindList = new ArrayList()。試卷隨機產生流程如圖 9 所示。 ArrayList aKindList = new ArrayList()。它調用數據訪問層 QuestionDB類的函數 GetSingleQuestion()從表 Questions獲取問題信息。} 事件 QuesKindList_SelectedIndexChanged()動態(tài)綁定試題列表框的數據,如試題名 稱,當試題類型下拉列表框選中的選擇試題種類發(fā)生改變時觸發(fā)該事件,此時頁面會重新綁定列表中的試題數據。修改試題頁面 調用函數 Page_Load()綁定試題種類、試題圖片和被修改問題。試題類別管理使用函數 BindQuesKindData(),該函數首先從 QuestionKinds表中獲取試題的種類數據,然后再把數據綁定到列表控件。添加后事件重新綁定用戶數據。因為具有管理員角色的用戶可以直接進入到系統(tǒng)后臺進行管理。 用戶登錄使用了兩個 TextBox控件作為輸入名稱和密碼,用戶單擊“確定”按鈕就可以登錄到系統(tǒng)。 5 系統(tǒng)詳細設計 5. 1 系統(tǒng)通用類設計 在應用程序開發(fā)過程中多處使用類,如數據庫通用類、應用數據通用類。 表 2 Roles表字段說明 編號 字段名稱 字段類型 字段說明 1 UserID Int 用戶表主鍵 2 UserName Varchar(50) 用戶名稱 3.考生表( Examinees) 考生表存儲參加考試的考生信息,該表引用了用戶表 Users 的主鍵 UserID作為該表的外鍵。該層直接與數據庫相關聯,同時又為業(yè)務邏輯層服務,所以數據庫訪問層設計的好壞關系到整個系統(tǒng)的成敗。考生登錄時,顯示生 成試卷等待頁面和在線答題頁面;系統(tǒng)管理登錄時,顯示系統(tǒng)維護頁面;管理員登錄則顯示題庫管理頁面。隨著信息量的逐步增加,繁雜的數據處理費時費力,單純以人力進行的駕駛員理論考試的考核已經不適合駕駛理論考試的現 狀。 用戶在登錄系統(tǒng)時,判斷用戶的權限,根據用戶的權限登錄到不同的頁面。同時把駕駛理論所有試題保存到數據庫,通過互聯網方便地進行模擬考試,還能讓學車的學員對交通規(guī)則和法律知識有更多的了解。 (2)顯示出整套試卷,依次答題,系統(tǒng)自動判斷該題是否正確。 Public SqlDataReader GetUserLogin(String nUserName,String sPassword)從用戶表 Users 中獲取用戶 ID,用于用戶登錄 。 8.試卷表( Papers) 試卷表存儲每一套試卷的信息,該表引用用戶表 Users 的 UserID、角色表Roles 的 RoleID,試卷表的字段說明如表 6所示。 類 SQLHelper 封裝 了 函 數 AddMyCommandParams() 和函 數AddDataAdapterParam(),添加了存儲過程的參數。該 事件調用了數據訪問層的函數 GetUserLogin()驗證用戶的輸入,如果是正確的 , 用戶 就 登錄到系統(tǒng)中。 單擊“/”按鈕即可添加新 用戶 。 5. 3. 3用戶密碼修改 修改密碼由 ,用戶修改自己的密碼時必須知道自己以前的密碼,否則不能修改密碼。單擊“上傳”按鈕即是添加新的圖片,添加圖片后,然后重新綁定數據。試題管理界面用戶函數Page_Load()進行初始化,函數 Page_Load()調用函數 BindQuesKindData()和BindQuestionData()函數。 因為頁面存在四個文本框 ,所以四次調用添加答案函數AddAnswerToDB()。添加新試卷包含:該試卷的總分數、所考核的內容、由那些種類的題組成以及每一個類型試題的數量。該事件調用函數 DeletePaperInfo()。int i = 0。應用程序在創(chuàng)建整套試題之前會檢查以上幾個參數是否匹配。 defficultParm += ((QuestionDetails)QuestionIDList[k]).Mark * ((QuestionDetails)QuestionIDList[k]).Defficult。 foreach(DataRow row in [0].Rows) //取到試題的 ID結果集 { if(row[KindID].ToString() == ()){break。 //創(chuàng)建問題的數據源 = questionList。并在函數的最后返回此對象 。以此類推,有多少道試題就執(zhí)行多少次,直到做完為止。 [3] 方睿 ,刁仁宏 ,吳四九 .網絡數據庫原理及應用 [M].成都: 四川大學出版社 ,。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學院。 for our ways are far and away betterthan any which at present exist anywhere in the world. Cle. Certainly. Ath. Thus far I too should agree with the many, that theexcellence of music is to be measured by pleasure. But the pleasuremust not be that of chance persons。 [5] 傅雯彬 ,蔡承書 .JavaScript動態(tài)網頁設計實務 [M].北京: 中國鐵道出版社 ,。事件代碼如下: private void QuestionList_ItemCommand(object source,DataGridArgs e) { if( 1) { Choose = 。函數 GetAnswers()屬于數據訪問層函數,它需要參數 QustionID從 Answers表取到屬于 QuestionID的問題答案,并把試題答案傳遞到應用程序的頁面呈現層。 // 設置控件的試題索引 ()。 i 。amp。隨機生成試卷的流程如圖 10所示。 (repc[TotalMark].ToString())。 if(() 0) {(())。其中數據綁定由函數 BindKindData()實現。 事件 AddAnserBtn_Click()通過函數 AddAnswerToDB()調用數據訪問層AnswerDB類的函數 AddAnswer()添加試題答案。還調用數據訪問層 QuestionKindDB類的函數 GetQuesKinds()從表 QuestionKinds中獲取試題種類數據;函數 BindQuestionData()綁定普通列表控件的數據,如試題內容。 5. 4. 3添加試題 添加試題功能由頁面 ,一個試題至少包含幾個屬性:試題的內容、試題的類型、試題所在的章節(jié)、試題的分值及試題的創(chuàng)建時間和添加的用戶用戶名稱。如果一致,就把新的密碼更新到數據庫 ,該事件調用數據訪問層 UserDB類的函數 UpdateUserPassword()修改表中的密碼。 單擊刪除 “ X” 按鈕實現刪除用戶的功能,該按鈕為圖像按鈕,單擊此按鈕觸發(fā)事件 deleteBtn_Click()。 函數 GetUserLogin()從數據庫獲取合法用戶的 ID數據 ,函數 GetUserLogin() 第 9 頁 共 25頁 調用存儲過程 Pr_GetUserLogin()訪問數據庫。 函數 GetCacheParameters(),該函數從 Caching對象中獲取緩存的數據庫參數。 4. 3 表關系設計 數據庫各個表之間的關系設計如圖 4 所示。 系統(tǒng)是由六個完整的功能實現的,根據這些功能,可以設計出系統(tǒng)的功能模塊,各個系統(tǒng)功能模塊之間的關系如圖 3 所示。 系統(tǒng)功能模塊劃分 系統(tǒng)整體設計如圖 2所示,此系統(tǒng)可以劃分為業(yè)務邏輯層、數據訪問層和數據庫。數據庫使用的是 SQL Server2021。 關鍵字: 駕駛理論 ; 考試模擬系統(tǒng) ; SQL Server2021 Theory Testing System of Driving School Based on .NET Abstract With the development of modern Inter and wide apllication of information technology, puter has been deeply used in every fileds. The online test system is widely applied thanks about its convenience and speediness. Driving theory test is a pracitcal application of online test. And now burdensome work such as the prepatation, printing, checking has been done by puter. This system has simulating function which achieves users management, test papers management, random test making and automatic checking. This system j udges user’s right when logging in and then directs the users to corresponding pages. After loging, according to the role of user, the system randomly chooses one set of exammination paper and the student finish this paper in limited time. The system finally automatically check the test paper and present the result. Thus it provides reasonable convenience for both students and teachers who check the paper. Key Words: driving theory。在這一條件下,我國的車輛逐漸增多,最近幾年,學車的人也是越來越多。其功能結構圖如圖 1所示。數據訪問層一般封裝數據庫的選擇、添加、更新、刪除等操作。 駕駛理論考試模擬系統(tǒng) 用戶登錄和注冊 用戶角色管理 用戶管理 試題管理 題庫管理 在線考試 第 5 頁 共 25頁 表 1 Users表字段說明 編號 字段名稱 字段類型 字段說明 1 UserID Int 用戶表主鍵 2 UserName Varchar(50) 用戶名稱 3 Password Varchar(50) 用戶密碼 4 Email Varchar(50) 用戶 Email 地址 5 RoleID Int 用戶所屬的角色 2.角色表( Roles) 角色表用于存儲用戶的角色信息。角色表中的RoleID 字段決定考生使用什么類型的試卷,試卷表中的 KindID 字段標識試卷組成的試題種類,該字段和試卷種類表相關聯。用戶登錄是應用程序的主要入口,用戶只有通過該入口才能進入系統(tǒng)。調用加密函數時,首先把加密字 符串編碼成 Uncode,然后使用系統(tǒng)的不對稱加密算法 MD5加密用戶密碼串。 單擊添加 “ /” 按鈕實現實現用戶添加功能,此按鈕為圖像按鈕,單擊此按鈕觸發(fā)事件 AddBtn_Click()。 5. 4. 1試題種類管理 試題 種類管理由頁面 ,試題種類管理實 現了試題種類的添加、修改、排序和刪除功能。 用戶單擊“確認提交”按鈕觸發(fā)事件 AddNewQuestion_Click(),該事件添加試題,在添加時獲取問題 ID和圖片 ID就可以成功的添加一道新的試題。如果已經選擇,則跳轉到試題答案添加頁面,否 則系統(tǒng) 將 提示你沒有選擇數據。 } 5. 4. 8試題答案修改 修改試題的答案由 ,界面同添加試題答案相似。 單擊“確認提交” 按鈕觸發(fā)事件 AddPaperBtn_Click(),即把設置的數據全部寫到數據庫 ,事件代碼如下: private void AddPaperBtn_Click(object sender, e) { PaperD