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

正文內容

基于c的網上考試系統的設計與實現(編輯修改稿)

2026-01-11 02:28 本頁面
 

【文章內容簡介】 數據的各種操作和維護均是在服務器 (Server)端進行,而用戶在客戶端根據授權范圍來使用服務器 (Server)以及其上的各種數據,這樣為系統提供了強有力的數據安全保證。同時對數據的恢復及可靠性管理也帶來方便。 但是我們也可以清楚地看到其固有的局限性: 首先,在這里沒有“個入數據”的概念。所有 的數據都是集中在數據庫服務器中,客戶端只能根據需要從這個中心數據倉庫中存取數據,只能在總前提下完成自 8 己的功能要求。但是,我們也知道,對于各客戶端或企業(yè)內的各部門,他們除了必須有一套共享的資源,為系統內的所有客戶或部門共享外,同時,還由干各自本身的職能分工上的不同,他們又都有各自不同的需求,對干這種不同的特殊需求,在C/S 結構中,要么是以大局為重而有所忽略,要么是也歸入到服務器的中心數據倉庫中,這樣就會給服務器帶來極大的冗余空間,而降低了服務器的性能。 其次, C/S 結構在功能的分配問題上,數據的處理集中在服務 器上完成。一旦一個系統開發(fā)完成并開始運行,那么就須照既定的規(guī)定來運作:客戶端按分配的規(guī)則來存取數據,而服務器是最高能力的體現所在一旦應用程序須升級或倏改,那么各客戶端的應用程序都需作出相應的升級和維護,而不任是否有此要求。 系統的 模型結構 的概述 由于本系統采用三層 C/S 結構,下面主要介紹該系統 C/S 結構的工作原理。 5 圖 31 C/S 結構模型圖 (1) 用戶服務層 (考生機 ):負責表示邏輯,提供可視化界面,用戶通過可視化界面觀察信息和數據。用戶服務層向業(yè)務服務層發(fā) 出服務請求。在該系統中,用戶服務層就是考試系統的客戶端??忌ㄟ^客戶端,向服務器端提出服務請求。 (2) 業(yè)務邏輯層 (監(jiān)考機 ):將專門負責數據庫服務器與客戶端的連接工作。它一方面把客戶端請求傳送給數據庫服務器,另一方面把服務器的查詢結果回送給客戶端。數據庫服務器不再耗費資源用于處理與客戶端的連接,這樣數據庫服務器只需要專心于響應客戶端數據請求。這就大幅度減輕了數據庫服務器的負擔,從而提高了響應速度,提高了系統的整體效率。 另外,還可以將原先系統中使用的一些業(yè)務邏輯規(guī)則的處理工作 (既可在客戶端也可在服務器端實 現 )也分配給業(yè)務邏輯層完成,于是減輕了服務器端和客戶端程序的負擔。 在該系統中,業(yè)務邏輯層就是考生系統的服務器端,它負責處理從客戶端發(fā)送的請求和對數據庫的處理。 (3) 數據服務層:負責數據存取,實現所有的典型數據處理活動,包括數據的獲取、修改、更新及數據庫相關服務。在該系統中數據服務層是在 Access2021 上實現的。 考生機 c Database Server 監(jiān)考 服務 器 考生機 c 考生機 c 9 數據庫的需求分析及設計 (1) 本系統實現的是一個網絡考試系統,因此必須有一個完整的題庫來支持。 而且在整個系統中扮演著至關重要的作用,它直接影響考卷的質量。 (2) 由于每次考試 都會從題庫中安要求抽出考題,因此,必須有一張考卷表用來保存每份考卷中的考題。 (3) 在每次考試之前,教務處都會安排考試對象和考試地點,時間等與考試相關的信息,這些信息都必須保存在一張表中,以便以后查詢, (4) 在考試過程中考生的答案,是考試最重要的信息,因此,必須保存在一張表中以便老師閱卷和考試成績的登記。 數據需求分析圖如下: 學號 姓名 身份驗證 題庫抽題 提交 答案 圖 32 數據需求分析圖 根據以上數據 需求 分析, 特設計下列數據庫各表。 本數據庫包括 4 張表,下面列出了數據表,并具體闡述其字段及功能表述: 表 31 用戶管理信息表 字段名稱 數據類型 描述 學生姓名 文本 學生姓名 學號或密碼 文本 學號或密碼,主鍵 Not null 科目 文本 科目 等級 文本 等級 考 生 身份驗證 考試信息設置 答題,提交 組卷 學 生 信 息 表( 教務處) 考試信息表 題庫表 考卷信息表 學生答案表 10 表 32 試卷信息表 字段名稱 數據類型 描述 科目名稱 文本 科目名稱 創(chuàng)建考試時間 時間 /日期 創(chuàng)建考試時間 開始考試時間 時間 /日期 開始考試時間 結束考試時間 時間 /日期 結束考試時間 題庫集合 備注 題庫集合 監(jiān)考人 文本 監(jiān)考人 試卷狀態(tài) 文本 試卷狀態(tài) 題目數量 數字 題目數量 表 33 題庫表 字段名稱 數據類型 描述 科目名稱 文本 考試科目名稱 章節(jié)名稱 文本 考題章節(jié)名稱 題號 數字 各題題號 題目描述 備注 所考各題題目內容 A 文本 選項 A B 文本 選項 B C 文本 選項 C D 文本 選項 D 正確答案 文本 正確答案 難易等級 文本 難易等級 使用次數 數字 使用次數 表 34 學生試卷成績表 字段名稱 數據類型 描述 姓名 文本 姓名 考號 文本 考號 科目 文本 科目 考題序列 備注 考題序列 答案序列 備注 答案序列 試卷狀態(tài) 文本 試卷狀態(tài) 計算機 考試 系統 離不開數據庫系統的支持,不論是試題、答案,還是考生信息都需要存放在數據庫中 。 11 4 c/s 模式考試系統總體設計 服務器程序 : WinSocket32 的完成端口模型 (I/O pletion ports) 多線程技術 APIS 進行數據庫操作 客戶端程序 : Win32 API 函數構造主窗體和界面元素 服 務器端程序設計 網絡通信模塊的分析與設計 在 Windows 環(huán)境下,網絡通信模塊一般都是通過 Winsock 來實現的。 Winsock實際上是 Windows Socket,是 Windows 提供用戶使用 TCP/IP 協議的 API。 .NET 類庫對 Winsock 的封裝,使用 .NET 類在很大程度上降低了程序開發(fā)的難度,提高 了開發(fā)效率。 Winsock 通信有兩種主要方式: 第一種叫數據報方式,又稱無連接方式,這種方式對應的是 UDP 協議。這種方式不提供數據無錯保證。 第二種叫流方式,也稱面向連接的方式,對應的是 TCP 協議。 它的傳輸特點是通 信可靠性好,并按發(fā)送的順序接收數據。數據被看作是字節(jié)流,無長度限制。 在該系統中,為了取得較高的性能,支持更多的在線考生。使用了數據報的通信方式。 完成端口模型 完成端口模型 (I/O plrtion ports)是迄今為止最為復雜的一種 I/O 模型 ,假如一個程序需要管理為數眾多的套接字 ,那么采用這種模型往往可以達到最佳的系統性能 ,不幸的是該模型只適用與 WIN2021 和 WINNT 操作系統 ,因其設計的復雜性 ,只有在你的應用程序需要同時管理數百乃至上千個套接字的時 候 ,而且希望隨著系統內安裝的 CPU 的數量增多 ,應用程序的性能也可以線性的提升 ,才考慮采用”完成端口模型”(WEB 服務器便是這方面的典型例子 .), I/O plrtion ports 是唯一適用于高負載服務器的一個技術 ,它利用一些線程幫助平衡” I/O 請求”所引起的負載 ,這樣的構架特別適合應用在 SMP 系統中產生所謂的” Scalable”服務器 .(Scalable 是指能夠籍著增加 RAM 或磁盤空間 ,CPU 個數而提升應用程序效能的一種系統 ). 12 完成端口模型的具體實現 為了使用”完成端口模型” ,產生了一堆線程在端口上等待 ,線程數量 =CPU 個數 x2+2,本系統將每個客戶端產生的文件句柄與 I/O pletion ports 端口相關聯 ,建立了這種關系之后 ,任何客戶端發(fā)出操作請求 ,便會導致 I/O pletion packet 被送到”完成端口”去 ,這個步驟是操作系統完成的 ,為了回應 I/O pletion packet,本系統讓 I/O pletion釋放一個等待中的線程 ,如果目前沒有線程正在等待 ,它不會為這個客戶端 N 產生新的線程 , 當作用中的線程處理完畢相應客戶端的” overlapped I/O”后 ,將返回 I/O pletion 端口進行等待 . 客戶端 N 這時才能夠被處理 ,這樣就保證了本系統的 Workers 線程總是保持一個穩(wěn)定的數量 (CPU 個數 x2+2). 數據庫的操作實現 這部分功能主要是通過 WinSocket32 API 和 ODBC API 結合使用來實現的 ,服務端進入監(jiān)聽狀態(tài)后 ,為每個客戶端提供相應線程處理發(fā)過來的指令 ,通過分析指令 ,作出以下相應的操作 客戶端發(fā)送的指令 (自定義的 ): login: 登陸校驗 參數 :用戶名 ,科目 ,密碼 Srecv:ScanTm: 檢查服務器時間校對試卷修改試卷狀態(tài) ,拋出計數值 Srecv:GetSta: 獲取試卷狀態(tài) Srecv:GetRlt: 獲取上次做答 Srecv:GetNum:獲得試卷相關信息 (總題數 ,開考時間 ,結束時間 ) Srecv:GetQue: 獲取試卷題目內容 Srecv:SaveDt: 保存試卷 Srecv:ChanST: 修改試卷狀態(tài) 服務器 端詳細設計與實現 Server 端是整個系統的核心部分,它直接影響整個系統的可靠性和性能,在設計上盡量精化算法,降低復雜度。同時,又要提供完善的功能。其中涉及很多技術細節(jié),下面主要介紹關鍵部分的設計與實現: 在整個系統的設計當中 Server 端是最復雜的。在服務器端需要三個線程,即用戶界面線程,網絡服務線程,和數據處理線程。各線程的功能分別如下: 用戶界面線程:即主線程,負責接收和處理用戶的操作消息和界面的顯示,例 13 如考生狀態(tài)列表的顯示,參數的設置等操作消息。 網絡服務線程:負責收集所有考生機發(fā)向服務器端口的報文信息,將之保存到己接收報文列表中;并且還要負責從待發(fā)送報文列表中讀取報文,并向相應考生機發(fā)送回去。 數據處理線程:負責處理保存在已接收報文列表中的報文數據,刷新監(jiān)考程序界面上的考生機狀態(tài)列表,并根據不同的已接收報文數據,生成相應的回應報文,將回應報文保存到待發(fā)送報文列表中。 在考試服務器程序中,有三個列表可供各線程共享訪問,用以存儲不同的數據內容,其三個列表的功能分別如下: 已接收報文列表:以先進先出隊列形式存放學生機發(fā)送來的各種報文 。 待發(fā)送報文列表 :以先進先出隊列形式存放要發(fā)送給考生機的各種報文。 考生機狀態(tài)列表:保存所有考生機的當前狀態(tài)信息,井將其顯示到一個列表控件中。 這種網上監(jiān)考程序的功能流程如圖所示。 UDP 緩存 考生狀態(tài)列 表 刷新用戶界面 圖 41 監(jiān)考程序的流程圖 網絡服務器線程 考生機 考生機 考生機 待發(fā)送數據 數據處理線程 用戶界面線程 14 在監(jiān)考程序運行起來以后,將會根據用戶設置的端口號,生成一個網絡服務線程,采用 UDP 協議,網絡服務線程接收從考生機上發(fā)送來的報文,并不加處理的將之保存到己接收報文列表中。當待發(fā)送報文列表中有報文時,則將其中的報文發(fā)送到相應的考生機。 考生機發(fā)送來的報文有三種:即請求開始考試報文,答案報文和提交考卷報文。待發(fā)送報文有兩種:即同意開始考試報文和確認報文。數據處理線程也是在監(jiān)考服務器開始運 行時被創(chuàng)建,它不斷從已接收報文列表中讀取報文,并進行相應的處理。對于請求開始考試報文,則將其中的 UID,姓名,發(fā)送
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1