考試管理系統(tǒng)(VB)設(shè)計(jì)論文_第1頁
考試管理系統(tǒng)(VB)設(shè)計(jì)論文_第2頁
考試管理系統(tǒng)(VB)設(shè)計(jì)論文_第3頁
考試管理系統(tǒng)(VB)設(shè)計(jì)論文_第4頁
考試管理系統(tǒng)(VB)設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、. . . . 1 / 29引言引言考試與我們的關(guān)系是非常密切的,考試的出題一直是一個(gè)比較麻煩的問題,要花費(fèi)大量的時(shí)間和精力;傳統(tǒng)的考試用的考卷,需要大量人工和打印機(jī)來印制試卷, 而對與計(jì)算機(jī)上機(jī)考試傳統(tǒng)的考試根本行不通,無紙化考試必將是以后考試的主要形式?;谝陨线@幾點(diǎn),為了解決考試試題的多樣性、隨機(jī)性和上述一些問題,編寫一套考試管理系統(tǒng)來是很有必要的。目目 錄錄第一章第一章 系統(tǒng)簡介系統(tǒng)簡介-第二章總體設(shè)計(jì)構(gòu)思第二章總體設(shè)計(jì)構(gòu)思-2.1 數(shù)據(jù)庫如何設(shè)計(jì)-2.1.1 考題數(shù)據(jù)庫-2.1.2 考生信息數(shù)據(jù)庫-2.1.3 用戶信息數(shù)據(jù)庫-2.2 如何通訊-. . . . 2 / 29-2.3 如

2、何生成考題-2.4 如何避免系統(tǒng)蹦潰后考生信息與題目信息丟失-2.5 如何計(jì)算總分-2.6 如何防止考生作弊-2.7 數(shù)據(jù)如何隱蔽-2.8 如何解決服務(wù)器傳輸文件多線程問題-2.9 如何實(shí)現(xiàn)加密算法-第三章第三章 主要模塊說明主要模塊說明-3.1 考試平臺(tái)-. . . . 3 / 29-3.2 服務(wù)器-第四章總結(jié)第四章總結(jié)-4.1 系統(tǒng)不足-4.2 心得體會(huì)-一一 簡簡 介介課題名課題名: :考試管理系統(tǒng)開發(fā)工具開發(fā)工具:Microsoft Visual Basic 6.0 中文版. . . . 4 / 29數(shù)據(jù)庫數(shù)據(jù)庫:Access運(yùn)行環(huán)境運(yùn)行環(huán)境: :Windows98/2000/XP/M

3、E,考試機(jī)房需連成局域網(wǎng)安裝安裝: :在機(jī)房中設(shè)一臺(tái)機(jī)器為服務(wù)器將服務(wù)器程序安裝到此機(jī)器中運(yùn)行即可.將考試平臺(tái)程序分別安裝到其他用機(jī)中運(yùn)行即可.功能說明功能說明: :考試管理系統(tǒng)是針對學(xué)校上機(jī)考試所編寫的管理軟件,系統(tǒng)分為兩部分一部分是管理考生,考題,考試類型,考試時(shí)間等信息,這部分由管理員(教師)進(jìn)行管理.另一部分是考試平臺(tái),是考生完成試卷的主要接口.考生登錄到考試平臺(tái)后,則系統(tǒng)則對該考生輸入的號發(fā)送到服務(wù)器進(jìn)行驗(yàn)證.驗(yàn)證成功則發(fā)送考題庫文件至考試平臺(tái)端.并通過考題庫文件隨機(jī)生成考題(考題分為填空題,單項(xiàng)選擇題,多項(xiàng)選擇題,操作題.)考生答卷后提交試卷,并提示考生未做的題目.如果無誤則系統(tǒng)算

4、出總分發(fā)送到服務(wù)器進(jìn)行儲(chǔ)存.二二 總體設(shè)計(jì)構(gòu)思總體設(shè)計(jì)構(gòu)思2.12.1 數(shù)據(jù)庫如何設(shè)計(jì)數(shù)據(jù)庫如何設(shè)計(jì)? ?2.1.12.1.1 考題數(shù)據(jù)庫考題數(shù)據(jù)庫(文件:examktl.dll) FillSubject 表單(填空題)字段名寬度類型說明SubjectMemo題目容FillPostion2Text填空位置標(biāo)記FillResultMemo正確答案FillSelectedMemo當(dāng)前選擇的答案FillNum2Integer需要填充的數(shù)量Key10Text密鑰ChoiceExercise 表單(單選題)字段名寬度類型說明SubjectMemo題目容ChoiceAMemo答案 AChoiceBMemo

5、答案 BChoiceCMemo答案 C. . . . 5 / 29ChoiceDMemo答案 DChoiceResult2Text當(dāng)前選擇的答案RightResult2Text正確答案Key10Text密鑰MultiChoice 表單(多選題)字段名寬度類型說明SubjectMemo題目容ChoiceAMemo答案 AChoiceBMemo答案 BChoiceCMemo答案 CChoiceDMemo答案 DChoiceEMemo答案 EChoiceFMemo答案 FChoiceResult10Text當(dāng)前選擇的答案(如:”DEF”)說明你選擇了 DEFRightResult10Text正確答案

6、Key10Text密鑰OperationSubject 表單(操作題)字段名長度類型說明SubjectMemo題目容2.1.22.1.2 考生信息數(shù)據(jù)庫考生信息數(shù)據(jù)庫(文件:examext.dll)Student 表單(考生信息)字段名長度類型說明ID20TEXT號. . . . 6 / 29Name16TEXT考生Class20TEXT考生班級PhotoBinary考生照片PointDouble考生分?jǐn)?shù)Examed1TEXT考試記錄2.1.32.1.3 用戶信息數(shù)據(jù)庫用戶信息數(shù)據(jù)庫(文件:examyh.dll)UserInfo 表單(用戶信息)字段名長度類型說明UserName20TEXT用

7、戶名UserPassword16TEXT用戶密碼UserType8TEXT用戶類型2.22.2 如何通訊如何通訊? ?可通過 Winsock 控件可實(shí)現(xiàn)通訊功能.服務(wù)器開放兩個(gè)端口來與客戶機(jī)進(jìn)行通訊,端口”10088”考生信息通道,”10087”文件傳輸通道,請求文件傳輸,服務(wù)器為該請求分配一個(gè)進(jìn)程對其進(jìn)行文件傳輸操作(這里的進(jìn)程其實(shí)就是將工程拆分成兩個(gè)工程,主工程調(diào)用專門對文件傳輸?shù)墓こ滩僮鳎?.32.3 如何生成考題如何生成考題?首先驗(yàn)證通過后獲得考試的信息(如填空題 10 題-每題 1 分,單選 30 題-每題 1 分,多選 5 題-每題 2 分,操作題目 5 題-每題 10 分),分別

8、存入變量中,通過下載過來的數(shù)據(jù)庫,與題目信息的變量做隨機(jī)抽取題目(此部分功能請參考模塊詳細(xì)說明模塊詳細(xì)說明)題目 1題目 2AEmpty題目 2題目 5CEmpty題目 3題目 6DEmpty數(shù)據(jù)庫題目索引數(shù)組正確答案數(shù)組選擇答案數(shù)組隨機(jī). . . . 7 / 29題目 4題目 1AEmpty題目 5題目 4BEmpty題目 6題目 3CEmpty:Empty題目 n題目 nAEmpty2.42.4 如何避免系統(tǒng)蹦潰后考生信息與題目信息丟失如何避免系統(tǒng)蹦潰后考生信息與題目信息丟失? ?可在考生登獲得考試信息并生成考題后把考生信息,服務(wù)器地址,考試題目信息,存入備份文件 Exambak.bak

9、中.每次異常退出后在運(yùn)行時(shí)讀文件的信息到程序中.2.52.5 如何計(jì)算總分如何計(jì)算總分? ?考生在提交試卷前,對所有題目進(jìn)行檢索發(fā)現(xiàn)考生為做的題目并給予提示.可將考生選擇的題目和正確答案放入兩個(gè)數(shù)組中.然后對兩個(gè)數(shù)組中的元素進(jìn)行比較一樣則總分+該題的分值A(chǔ)DEmptyABBDDAC:CDD循環(huán)比較D2.62.6 如何防止考生作弊如何防止考生作弊? ?通過隨機(jī)出題目加強(qiáng)系統(tǒng)防作弊功能,鎖定系統(tǒng)桌面.2.72.7 數(shù)據(jù)如何隱蔽?數(shù)據(jù)如何隱蔽?方案方案 1 1:禁止考生訪問瀏覽計(jì)算機(jī)容。方案方案 2 2: 更改數(shù)據(jù)庫擴(kuò)展名,把所有后綴為 MDB(ACCESS 數(shù)據(jù)庫文件)改成 DLL。讓想有僥幸心存

10、放選擇答案數(shù)組存放正確答案數(shù)組正確?正確:累加該題分值ZongFeng. . . . 8 / 29理查找數(shù)據(jù)庫的考生無從下手方案方案 3 3:即使找到數(shù)據(jù)庫并打開了數(shù)據(jù)庫,系統(tǒng)對數(shù)據(jù)庫里的容正確答案進(jìn)行了加密。即使找到正確答案也是亂碼看不懂容的含義。2.82.8 如何解決服務(wù)器文件傳輸多線程問題?如何解決服務(wù)器文件傳輸多線程問題?考場很多考生需要對考題進(jìn)行下載,而主進(jìn)程只能對 1 個(gè)請求進(jìn)行文件傳輸,因此只要有一個(gè)考生在下載考題,則其他考生則必須等待,因此需要實(shí)現(xiàn)多線程的操作,而要用 VB 實(shí)現(xiàn)多線程,是件比較繁瑣困難的事情,而且調(diào)試經(jīng)常使得 VB 崩潰。因此可將此部分拆分另一個(gè)工程。此工程是

11、專門傳輸文件的工作。通過主工程調(diào)用傳參數(shù)(服務(wù)地址+端口號+要傳輸?shù)奈募?。因此解決了文件傳輸?shù)?1 對多同步進(jìn)行的問題2.92.9 如何實(shí)現(xiàn)加密算法?如何實(shí)現(xiàn)加密算法?通過 VB 中的 XOR(位操作-異或)操作,明文對密鑰的 AscII 碼異或操作后得到密文。如果密鑰和明文一樣異或后則二進(jìn)制為 000.所以為了避免,則遇到一樣的用 Chr(128)如明文“ABCD”密鑰 “ZC”AZBCCD密文三三 主要模塊說明主要模塊說明3.13.1 考試平臺(tái)考試平臺(tái)3.1.13.1.1ExamManageSystem.FrmMainExamManageSystem.FrmMain 程序主窗口程序主

12、窗口文件名:文件名:FrmMain.frmFrmMain.frm本塊功能說明:本塊功能說明:是考試平臺(tái)的主要界面。Xor. . . . 9 / 29窗口界面模塊名模塊名: :Init參數(shù)參數(shù): 無功能功能: :窗口初始化設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :考試平臺(tái)運(yùn)行時(shí)初始化,通過查找 ExamBak.bak 文件來判斷程序運(yùn)行時(shí)是否要讀取備份文件如果則說明考生有異常退出發(fā)生,已經(jīng)登錄過則 UserLogin = True 在讀取備份文件模塊名模塊名: :LockPC參數(shù)參數(shù): : (locked As Boolean)功能功能:鎖定系統(tǒng)桌面設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :通過訪問 API 函數(shù) FindWindow

13、 找到任務(wù)欄上的開始按鈕,任務(wù)攔等句柄,并同過 ShowWindow來隱藏顯示窗口.通過 SystemParametersInfo 禁用 CTRL+ALT+Del ALT+F4 等系統(tǒng)鍵模塊名模塊名: :BakStudentInfo參數(shù)參數(shù): :無功能功能: :備份學(xué)生信息. . . . 10 / 29設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思:通過 WinAPI 函數(shù) WritePrivateProfileString 將學(xué)生信息以 INI 文件格式寫入ExamBak.bak 文件中.模塊名模塊名: :ResumeStudentInfo參數(shù)參數(shù): :無功能功能:還原學(xué)生信息設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :通過 WinAPI 函

14、數(shù) GetPrivateProfileString 將學(xué)生信息以 INI 文件格式從 ExamBak.bak 文件中讀取出來給系統(tǒng)變量模塊名模塊名: :Winsock1_DataArrival(Winsock 事件參數(shù)參數(shù): (ByVal bytesTotal As Long)系統(tǒng)給定功能功能: :獲得服務(wù)器傳送來的信息設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :服務(wù)器發(fā)送過來的信息是以 命令+容 發(fā)送過來,此模塊先讀取命令部分 在依據(jù)是先約定好的命令決定做哪步操作,命令詳解如下:命令名含義|StudenEr|考生驗(yàn)證失敗|StudenOk|考生驗(yàn)證成功|GetExamI|獲得考試信息 由模塊 GetExamInf

15、o 獲得容|SendMsgs|提示信息|EXOverOK|考試正常結(jié)束(服務(wù)器已將成績保存)|EXOverEr|考試結(jié)束異常(服務(wù)器未將成績保存)|CheatMsg|作弊處理模塊名模塊名: : Winsock1_ Error (Winsock 事件)參數(shù)參數(shù): :(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Bool

16、ean)系統(tǒng)給定功能功能:捕捉與服務(wù)器連接的錯(cuò)誤設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :此事件的得到出發(fā)是從 FrmLogon(登錄窗口)中輸入 IP 地址與后連接服務(wù)器。TryHost 是FrmMain 中的全局變量是連接服務(wù)器次數(shù)的關(guān)鍵字.只要未連接到服務(wù)器并 TryHost 未滿 6 次則不停的連接服務(wù)器. . . . 11 / 293.1.23.1.2ExamManageSystem.FrmLoginExamManageSystem.FrmLogin 考試登錄考試登錄文件名:文件名:FrmLogin.frmFrmLogin.frm本塊功能說明:本塊功能說明:對考生進(jìn)行驗(yàn)證。如果已經(jīng)進(jìn)入考試狀態(tài)服務(wù)器監(jiān)考

17、老師可公布服務(wù)器的 IP 地址給考生考生輸入服務(wù)器地址和號進(jìn)行登錄考試。窗口界面模塊名模塊名: :CmdLogin_Click (CommandButton 事件)參數(shù)參數(shù): :無功能功能: :登錄服務(wù)器設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :通過主窗口的 WINSOCK 控件連接服務(wù)器,如果未連接到服務(wù)器則嘗試連接 7 次3.1.33.1.3ExamManageSystem.FrmDownLoadExamManageSystem.FrmDownLoad 下載考題窗口下載考題窗口文件名:文件名:FrmDownLoad.frmFrmDownLoad.frm本塊功能說明:本塊功能說明:本塊主要功能是從服務(wù)器端下載題

18、庫。通過向服務(wù)器發(fā)送題庫下載請求,進(jìn)行第一次握手。服務(wù)器做出應(yīng)答后,獲得服務(wù)器開通端口連接到服務(wù)器并進(jìn)行文件傳輸。窗口界面模塊名模塊名: :Init參數(shù)參數(shù): : 無功能功能: :初始化窗口設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :通過查找 Exambak.bak 來 和比較 Exambak.bak 大小來判斷是否已經(jīng)下載過考題庫,如果未下載則向服務(wù)器發(fā)送下載文件請求,服務(wù)器獲得請求并分配端口,即發(fā)送下載考題庫文件請求到服務(wù)器;否則則跳過。模塊名模塊名: :WskFileComm_DataArrival (Winsock 事件). . . . 12 / 29參數(shù)參數(shù): :無功能功能: :獲得服務(wù)器發(fā)來的文件流并寫

19、入文件設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :服務(wù)器發(fā)送文件流(文件容)來時(shí)觸發(fā)該事件,由于通訊非連續(xù)性的所以要通過CurrentFileLen 全局變量來記錄文件寫入的當(dāng)前位置,以便下次數(shù)據(jù)流來時(shí)從CurrentFileLen 位置開始寫入知道 CurrentFileLen= DownFileLenCount(文件總大小)改值在考生登錄時(shí)已經(jīng)獲得。3.1.43.1.4ExamManageSystem.FrmBulidExamManageSystem.FrmBulid 隨機(jī)生成考題窗口隨機(jī)生成考題窗口文件名:文件名:FrmBulid.frmFrmBulid.frm本塊功能說明:本塊功能說明:考試題目初始化,根據(jù)

20、有無備份文件來判斷,是隨機(jī)生成題目還是還原從備份文件中還原題目信息沒有備份文件時(shí)有備份文件時(shí)模塊名模塊名: :RndSubject參數(shù)參數(shù): :無功能功能: :隨機(jī)出題設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :通過已經(jīng)分配好大小的數(shù)組 FillSubject()填空題 SingleChoiceSubject()單選題MultiChoiceSubject()多選題 OperationSubject()操作題 分別從題庫中找取相應(yīng)的表單隨機(jī)抽取表單中的記錄的位置分別放入數(shù)組中形成索引。. . . . 13 / 29模塊名模塊名: : ResumeSubject參數(shù)參數(shù): :無功能功能: :還原題目設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思:

21、:通過已經(jīng)分配好大小的數(shù)組 FillSubject()填空題 SingleChoiceSubject()單選題MultiChoiceSubject()多選題 OperationSubject()操作題 分別從備份文件中提取出來放入數(shù)組中形成索引。3.1.53.1.5ExamManageSystem.FrmFillTestExamManageSystem.FrmFillTest 填空題填空題文件名:文件名:FrmLogin.frmFrmLogin.frm本塊功能說明:本塊功能說明:是考生做答填空的窗口。模塊名模塊名: :CheckSubject參數(shù)參數(shù): :(cMemo As String, S

22、ign As String)功能功能: :將數(shù)據(jù)庫里的數(shù)據(jù)轉(zhuǎn)換為考題樣式設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :. . . . 14 / 29如:題目 VB 中什么函數(shù)是_1_提取字符的? _1_為填空 而存入數(shù)據(jù)庫中則是 VB 中什么函數(shù)是取字符的?(是填空的標(biāo)記可以是自己設(shè)定的)此函數(shù)就是將數(shù)據(jù)庫中的轉(zhuǎn)換成現(xiàn)實(shí)中看的懂的題目,并且記錄填空的個(gè)數(shù)到變量 ResultNum。模塊名模塊名: :ViewFillResult參數(shù)參數(shù): :無功能功能: :為填空題的空位分配答題的文本框設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :根據(jù)題目的填空數(shù)量來分配給考生答題文本框(此功能類似許多考試中的與答題紙)題目與答案分開。方便對考生的答題容進(jìn)行

23、記錄。3.1.63.1.6ExamManageSystem.ExamManageSystem. FrmSelectTestFrmSelectTest 單選題單選題文件名:文件名:FrmSelectTest.frmFrmSelectTest.frm本塊功能說明:本塊功能說明:是考生做答單選題的窗口。并即時(shí)記錄考生當(dāng)前所做的答案(考生做一題則記錄一題的答案)窗口界面這快主要介紹主要構(gòu)思(主要構(gòu)思(詳細(xì)請參照原代碼). . . . 15 / 29窗口在加載時(shí)通過對 SingleChoiceSubject()(已經(jīng)在生成題目時(shí)候已經(jīng)初始化過)中記錄號對數(shù)據(jù)庫進(jìn)行訪問,取出每題的當(dāng)前選擇答案和正確答案本

24、被到 SingleSelectQuestion()和 SingleRightQuestion()中,以便對考生答題的狀態(tài)進(jìn)行記錄,也方便總分的計(jì)算。題目的切換是通過 SingleChoiceSubject()數(shù)組來進(jìn)行切換,SingleChoiceSubject 是記錄題庫中記錄號的索引,用全局變量 CurrentT(是記錄當(dāng)前題目的索引)初始值為 0 則代表第一條記錄。切換題目其實(shí)就是對 CurrentT 進(jìn)行加減操作。之后通過數(shù)據(jù)庫移動(dòng)到SingleChoiceSubject(CurrentT)中存儲(chǔ)的記錄號,在顯示在窗口中??忌鷮Ξ?dāng)前題目做答也是按照同上的方法記錄到數(shù)據(jù)庫中和儲(chǔ)存選擇題目

25、的變量 SingleSelectQuestion() 中3.1.73.1.7ExamManageSystem.ExamManageSystem. FrmMultiSelectTestFrmMultiSelectTest 多選題多選題文件名:文件名:FrmMultiSelectTest.frmFrmMultiSelectTest.frm本塊功能說明:本塊功能說明:是考生做答多選題的窗口。并即時(shí)記錄考生當(dāng)前所做的答案(考生做一題則記錄一題的答案)窗口界面這快主要介紹主要構(gòu)思(主要構(gòu)思(詳細(xì)請參照原代碼)窗口在加載時(shí)通過對 MultiChoiceSubject()(已經(jīng)在生成題目時(shí)候已經(jīng)初始化過)中

26、記錄號對數(shù)據(jù)庫進(jìn)行訪問,取出每題的當(dāng)前選擇答案和正確答案本被到 MultiSelectQuestion()和 MultiRightQuestion()中,以便對考生答題的狀態(tài)進(jìn)行記錄,也方便總分的計(jì)算。題目的切換是通過 MultiChoiceSubject()數(shù)組來進(jìn)行切換,MultiChoiceSubject 是記錄題庫中記錄號的索引,用全局變量 CurrentT(是記錄當(dāng)前題目的索引). . . . 16 / 29初始值為 0 則代表第一條記錄。切換題目其實(shí)就是對 CurrentT 進(jìn)行加減操作。之后通過數(shù)據(jù)庫移動(dòng)到MultiChoiceSubject(CurrentT)中存儲(chǔ)的記錄號,在

27、顯示在窗口中??忌鷮Ξ?dāng)前題目做答也是按照同上的方法記錄到數(shù)據(jù)庫中和儲(chǔ)存選擇題目的變量 MultiSelectQuestion() 中。由于多選題不同與單選題,考生可選多個(gè)答案,所以考生每次選擇題目時(shí)候都對復(fù)選框進(jìn)行檢索找出考生所選的答案,復(fù)選框(0-5)對應(yīng)答案(A-F) 如果復(fù)選框 0,5 是被選擇的 則題目答案就是”AF”記錄到數(shù)據(jù)庫和變量中。3.1.83.1.8ExamManageSystem.ExamManageSystem. FrmOperationFrmOperation 操作題操作題文件名:文件名:FrmOperationFrmOperation.frm.frm本塊功能說明:本塊

28、功能說明:是考生做答操作題的窗口。非本程序功能,針對現(xiàn)在上機(jī)考試除了基礎(chǔ)題外還應(yīng)有應(yīng)用方面的要求,本窗口則是給出題目的要求 考生可通過特定考核的工具軟件進(jìn)行考試題目的切換是通過 OperationSubject ()數(shù)組來進(jìn)行切換,OperationSubject 是記錄題庫中記錄號的索引,用全局變量 CurrentT(是記錄當(dāng)前題目的索引)初始值為 0 則代表第一條記錄。切換題目其實(shí)就是對CurrentT 進(jìn)行加減操作。之后通過數(shù)據(jù)庫移動(dòng)到 OperationSubject (CurrentT)中存儲(chǔ)的記錄號,在顯示在窗口中。3.1.83.1.8CommonModuleCommonModul

29、e 通用模塊通用模塊. . . . 17 / 29模塊名模塊名: :executeSQL參數(shù)參數(shù): :(ByVal SQL As String, msgstring As String)功能功能: :執(zhí)行 SQL 語句設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :執(zhí)行 SQL 語句,參數(shù) SQL 是 SQL 語句,參數(shù) msgstring 是查詢信息返回值模塊名模塊名: :connectstring參數(shù)參數(shù): :無功能功能: :ADODB 連接參數(shù)設(shè)置模塊名模塊名: :ConnectServer參數(shù)參數(shù): :無功能功能: :連接服務(wù)器模塊名模塊名: :CountZongFeng參數(shù)參數(shù): :無功能功能: :計(jì)算總分并

30、發(fā)送總分到服務(wù)器 +分?jǐn)?shù)設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :通過對考生所選的答案和正確答案進(jìn)行循環(huán)對比正確則加上改題所得的分?jǐn)?shù)。模塊名模塊名: :JieMi參數(shù)參數(shù): :(Dstr As String, Dkey As String)功能功能: :計(jì)算總分并發(fā)送總分到服務(wù)器 +分?jǐn)?shù)設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :參數(shù) Dstr 密文, 參數(shù) Dkey 密鑰 通過密文的每個(gè)字符和密鑰的每個(gè)字符進(jìn)行異或操作得到明文,模塊名模塊名: : GetExamInfo參數(shù)參數(shù): : (CData As String)功能功能: :獲取考試信息設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :參數(shù) Cdata 是存放考試信息的文本流 格式是:填空題總數(shù)+填空題

31、每題分?jǐn)?shù)+單選題總數(shù)+每. . . . 18 / 29題分?jǐn)?shù)+多選題總數(shù)+每題分?jǐn)?shù)+操作題總數(shù)+考試時(shí)間+考題文件大??;將容分別提取到變量中去。3.23.2 考試服務(wù)器考試服務(wù)器3.2.1ExamServer.FrmMain3.2.1ExamServer.FrmMain 主模塊主模塊文件名:文件名:FrmMain.frmFrmMain.frm本塊功能說明:本塊功能說明:是考試服務(wù)器的主要界面。是系統(tǒng)的核心,該模塊接受考試平臺(tái)的連接請求并與其通訊。是進(jìn)入系統(tǒng)其他模塊的主要途徑。模塊名模塊名: :Init參數(shù)參數(shù): :無功能功能: :初始化系統(tǒng)設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :初始化系統(tǒng),初始化考試信息,初始

32、化服務(wù)器狀態(tài)信息。模塊名模塊名: :Winsock1_DataArrival. . . . 19 / 29參數(shù)參數(shù): :(Index As Integer, ByVal bytesTotal As Long)功能功能: :獲得考試平臺(tái)的傳輸?shù)男畔⒃O(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :考試平臺(tái)是以命令類型+容 返回或請求給服務(wù)器端的如下表單:命令名含義|StudenID|請求驗(yàn)證考生成功返回發(fā)送|StudenOk|失敗|StudenEr|GetExamI|請求獲得考試信息。并發(fā)送|GetExamI|+信息到考試平臺(tái)|ExamOver|請求考試結(jié)束,服務(wù)器將發(fā)過來的成績進(jìn)行記錄如果成功返回|EXOverOK|如果

33、失敗返回|EXOverEr|CheatMsg|考試平臺(tái)收到作弊處理的反饋信息,服務(wù)器將對改考生進(jìn)行作弊記錄|SendFile|文件傳輸請求, (分配一個(gè)線程并隨機(jī)開放一個(gè)臨時(shí)端口等待傳輸文件)模塊名模塊名: :Winsock1_ConnectionRequest參數(shù)參數(shù): : (Index As Integer, ByVal requestID As Long)功能功能: :響應(yīng)考試平臺(tái)計(jì)算機(jī)的連接請求設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :每當(dāng)獲得一次請求 則會(huì)為這臺(tái)請求的的計(jì)算機(jī)分配一個(gè) Winsock 與它建立連接或找取空閑的 Winsock 與他建立連接3.2.23.2.2 ExamServer.Frm

34、LoginExamServer.FrmLogin 登錄模塊登錄模塊文件名:文件名:FrmLogin.frmFrmLogin.frm本塊功能說明:本塊功能說明:登錄界面,通過用戶輸入的用戶名和密碼在數(shù)據(jù)庫中檢索,如果正確則登錄. . . . 20 / 293.2.33.2.3 ExamServer.FrmEditPWExamServer.FrmEditPW & & FrmAddUserFrmAddUser 修改密碼模塊添加用戶模塊修改密碼模塊添加用戶模塊文件名:文件名:FrmEditPW.frmFrmEditPW.frm & & FrmAddUser.frmFrm

35、AddUser.frm本塊功能說明:本塊功能說明:修改密碼和添加密碼模塊3.2.43.2.4 ExamServer.FrmExamSetupExamServer.FrmExamSetup 考試信息設(shè)置模塊考試信息設(shè)置模塊文件名:文件名:FrmExamSetup.frmFrmExamSetup.frm本塊功能說明:本塊功能說明:考試設(shè)置,將考試信息儲(chǔ)存在 ExamSetup.ini 文件中. . . . 21 / 29說明:說明:FillSubject 對應(yīng)填空題 Count 題目總數(shù) Value 為每題分值Select 對應(yīng)單選題 Count 題目總數(shù) Value 為每題分值MultiSele

36、ct 對應(yīng)多選題 Count 題目總數(shù) Value 為每題分值Operation 對應(yīng)操作題 Count 題目總數(shù) Value 為每題分值Time 對應(yīng)考試時(shí)間 Value 時(shí)間值. . . . 22 / 293.2.53.2.5 ExamServer.FrmAddFillSubjectExamServer.FrmAddFillSubject 添加填空題模塊添加填空題模塊文件名:文件名:FrmAddFillSubject.frmFrmAddFillSubject.frm本塊功能說明:本塊功能說明:添加填空題目,填空位置以特殊符號代替如(1+1=) ,通過 CheckSubject 轉(zhuǎn)換成1+1

37、=_同時(shí)算出填空的數(shù)量,分配好存放答案的 TextBox,管理員輸入后存入數(shù)據(jù)庫。 (答案加密)密鑰為當(dāng)前記錄號也一起存入數(shù)據(jù)庫模塊名模塊名: : CheckSubject參數(shù)參數(shù): : (Sign As String)功能功能: :轉(zhuǎn)換填空分隔符,計(jì)算分割符數(shù)設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :填空位置以特殊符號代替如(1+1=) ,通過 CheckSubject 轉(zhuǎn)換成 1+1=_同時(shí)算出填空的數(shù)量,分配好. . . . 23 / 29存放答案的數(shù)組變量。 模塊名模塊名: : CheckResult參數(shù)參數(shù): :無功能功能: :轉(zhuǎn)換填空分隔符,計(jì)算分割符數(shù)設(shè)計(jì)構(gòu)思設(shè)計(jì)構(gòu)思: :檢查答案是否全部輸入。3.

38、2.63.2.6 ExamServer.FrmEditFillSubjectExamServer.FrmEditFillSubject 編輯填空題模塊編輯填空題模塊文件名:文件名:FrmEditFillSubject.frmFrmEditFillSubject.frm本塊功能說明:本塊功能說明:編輯填空題目,與上一節(jié)功能相似只是做編輯操作,填空分隔符不可修改3.2.73.2.7 ExamServer.FrmAddSubjectExamServer.FrmAddSubject 添加單選題模塊添加單選題模塊文件名:文件名:FrmAddSubject.frmFrmAddSubject.frm本塊功能說明:本塊功能說明:添加單選題,將用戶輸入的信息存入數(shù)據(jù)庫(答案加密)密鑰為當(dāng)前記錄號也一起存入數(shù)據(jù)庫. . . . 24 / 293.2.83.2.8 ExamServer.FrmEditSubjectExamServer.FrmEditSubject 編輯單選題模塊編輯單選題模塊文件名:文件名:FrmEditSubject.frmFrmEditSubject.frm本塊功能說明:本塊功能說明:編輯單選題,答案通過當(dāng)前記錄的密鑰解密出來,將用戶修改的信息存入數(shù)據(jù)庫(答案加密)密鑰為當(dāng)前記錄號也一起存入數(shù)據(jù)庫3.2.103.2.10 ExamSe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論