在線考試系統(tǒng)_第1頁(yè)
在線考試系統(tǒng)_第2頁(yè)
在線考試系統(tǒng)_第3頁(yè)
在線考試系統(tǒng)_第4頁(yè)
在線考試系統(tǒng)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余14頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告題 目:在線考試系統(tǒng)課程名稱:C#S程設(shè)計(jì)學(xué) 院:信息工程學(xué)院專 業(yè):軟件工程班 級(jí):15軟件1學(xué)生姓名:馬銘璐學(xué) 號(hào):20150305142指導(dǎo)教師:于啟紅成 績(jī):開(kāi)課時(shí)間:2017-2018 學(xué)年 第二 學(xué)期一、系統(tǒng)的應(yīng)用背景1.1.1 系統(tǒng)的應(yīng)用背景1.1.2 系統(tǒng)的功能!.1.3 系統(tǒng)預(yù)覽2.二、 系統(tǒng)概要設(shè)計(jì) 2.2.1 系統(tǒng)實(shí)現(xiàn)方案和系統(tǒng)功能模塊22.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì) 2.三、系統(tǒng)詳細(xì)設(shè)計(jì)3.3.1 自動(dòng)出題功能的設(shè)計(jì) 3.3.2 監(jiān)控操作功能的設(shè)計(jì) 4.3.3 校對(duì)評(píng)分功能的設(shè)計(jì)9.3.4 時(shí)間提醒功能的設(shè)計(jì)10四、系統(tǒng)程序設(shè)計(jì)U4.1 自動(dòng)出題功能的實(shí)現(xiàn) 114.

2、2 監(jiān)控操作功能的實(shí)現(xiàn)114.3 校對(duì)評(píng)分功能的實(shí)現(xiàn)144.4 時(shí)間提醒功能的實(shí)現(xiàn)14五、總結(jié).15.參考文獻(xiàn).16.在線考試系統(tǒng)一、系統(tǒng)的應(yīng)用背景1.1 系統(tǒng)的應(yīng)用背景隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,學(xué)校管理和教學(xué)的信息化發(fā)展也有進(jìn)步,各個(gè)環(huán)節(jié)都均衡 發(fā)展,從軟硬件雙方面把學(xué)校建設(shè)成一流的信息管理、教育教學(xué)的平臺(tái)。目前設(shè)計(jì)開(kāi)發(fā)的計(jì) 算機(jī)考試系統(tǒng)也是其中重要的一個(gè)方面。傳統(tǒng)的考試由于涉及到組織命題、試卷印刷、考試 安排、組織閱卷等諸多環(huán)節(jié),考試的時(shí)間周期長(zhǎng)、效率低下。顯然,隨著考試類型的增加和 考試要求的提高,教師的工作量將會(huì)愈來(lái)愈大,并且其工作將是項(xiàng)煩瑣和容易出錯(cuò)的事情, 可以說(shuō)舊式的考試已經(jīng)不能

3、適應(yīng)現(xiàn)代考試的需求了。人們急切要求利用一些技術(shù)來(lái)進(jìn)行計(jì)算 機(jī)考試,以緩解教師的工作負(fù)擔(dān)和提高工作效率,與此同時(shí)提高了考試的質(zhì)量。其中文件操作是使用 Windows操作系統(tǒng)必須掌握的一項(xiàng)基本技能,已成為計(jì)算機(jī)初級(jí)操 作員考證、計(jì)算機(jī)文化基礎(chǔ)課考試中必考內(nèi)容之一1。目前,這些考試大多采用機(jī)上考試系統(tǒng)。文件操作題必須提供考試所需的各文件夾及文件,而且對(duì)考生操作的要求需要做到實(shí)時(shí) 監(jiān)控來(lái)判斷考生操作是否正確。因此,Windows文件操作題考試應(yīng)解決自動(dòng)評(píng)分技術(shù)關(guān)鍵技術(shù)問(wèn)題。目前,許多專家已有 計(jì)算機(jī)應(yīng)用基礎(chǔ)考試系統(tǒng)的研究,本設(shè)計(jì)主要描述自動(dòng)評(píng)分技術(shù)的實(shí)現(xiàn)。1.2 系統(tǒng)的功能界面需要達(dá)到的要求是要能顯示

4、題目,提示時(shí)間,選擇下一題,提交所有操作。界面結(jié) 構(gòu)如下圖1所示:圖1界面結(jié)構(gòu)圖1.3 系統(tǒng)預(yù)覽窗體上一個(gè)text控件用于顯示題目,默認(rèn)顯示提示信息:考生文件夾位于 D盤stu文件夾。一個(gè)label標(biāo)簽顯示分,一個(gè)label標(biāo)簽顯示秒,一個(gè)button用于進(jìn)入下一題, 一個(gè)button 用于提交評(píng)分,窗體的標(biāo)題為“windows操作題”。實(shí)際界面圖2如下所示。16圖2實(shí)際界面二、系統(tǒng)概要設(shè)計(jì)2.1 系統(tǒng)實(shí)現(xiàn)方案和系統(tǒng)功能模塊針對(duì)需求分析提出來(lái)的運(yùn)行流程,概要設(shè)計(jì)這里對(duì)自動(dòng)出題、監(jiān)控操作、校對(duì)評(píng)分、時(shí) 間提醒這四項(xiàng)功能根據(jù)需用到的技術(shù)進(jìn)行設(shè)計(jì)。2.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)在form窗體加載時(shí),程序已經(jīng)

5、完成操作題目、正確操作記錄的讀取。程序中使用到的數(shù) 據(jù),在各個(gè)函數(shù)方法中都可以訪問(wèn),所以定義全局變量最好。全局變量的定義所下表1所示:表1全局變量名稱類型作用初始值mintInt分鐘59curInt當(dāng)前操作題號(hào)0strtextString口存放題目無(wú)studoneString口存放考生操作無(wú)sysdoneString存放正確操作無(wú)myDocsstring考生文件夾d:stuscssInt秒鐘59三、系統(tǒng)詳細(xì)設(shè)計(jì)3.1自動(dòng)出題功能的設(shè)計(jì)自動(dòng)出題這個(gè)功能使用到了,StreamReader這個(gè)類,在讀寫(xiě)文件的過(guò)程中,F(xiàn)ilestream只可以進(jìn)行以字節(jié)為單位原始數(shù)據(jù)流進(jìn)行讀寫(xiě)操作,為此,C#中提供了

6、功能更加強(qiáng)大的StreamReader來(lái)支持文件的讀寫(xiě).StreamReader可以進(jìn)行以字符為單位的數(shù)據(jù)讀寫(xiě)操作。我們使用到構(gòu)造函數(shù) StreamReader(String string, Encoding encoding)。這里的 String 對(duì)象不是簡(jiǎn)單的字符串而是具體文件的地址,然后根據(jù)用戶選擇編碼去讀取流中的數(shù)據(jù)。自動(dòng)出題功能是是一項(xiàng)非常智能的功能,旨在題庫(kù)中隨機(jī)檢索出指定數(shù)量的題目,按順 序顯示出來(lái),本設(shè)計(jì)的題庫(kù)題目不多,實(shí)現(xiàn)了題目的全部檢索,按順序顯示。題庫(kù)中題目按 通過(guò)文本的方式保存在考生文件夾的"question.dat ”文件中,每到題目的存放格式如下:題目1

7、行數(shù)n1行1行2行n1題目2行數(shù)n2行1 行2行n2題目n行數(shù)nn"question.dat”文件內(nèi)容如圖3所示。程序在創(chuàng)建form對(duì)象時(shí)候,調(diào)用form對(duì)象的構(gòu)造 函數(shù)通過(guò)字節(jié)流將整個(gè)文本按行讀入,首先讀入行數(shù)n,知道這個(gè)題目有幾行,接著讀入 n行字符,存放在字符串?dāng)?shù)組string口 strtext里,接著讀入下一題的行數(shù)。文件立端相©格式?;タ措姡簬椭衎1,請(qǐng)?jiān)陧睯,文件夾;氤,炭件夾中“下查找阪總的Jpg文件,并將文件移動(dòng)到“二道在考學(xué)笠住去工寵臥下崗羯 0?在若£我?決下建立之格 (2)在考生文柞夾下.查找,F長(zhǎng)操作到看WORD文檔非文 A”文件夾!小文

8、上,將紀(jì)移動(dòng)瞿 董蕓1 軒薪筋整露口的文 與將八MVFILE ”文件b移動(dòng)到考生文舛歲F文任正下的噬的文檔仰/文件.并為其移動(dòng)到"刪FILE/文擇夾.e出誓”兩個(gè)文文文交立 :建 *夾中 *夾 ,文文件 作* M文 選等 下二至一一 如:”報(bào) 成,4五一 元建建的 下下下下 夾頭夾夾圖3文件內(nèi)容3.2監(jiān)控操作功能的設(shè)計(jì)監(jiān)控操作,需要利用到 Windows的文件變化通知,調(diào)用CreateFile 函數(shù)獲得文件夾句柄, 再調(diào)用 ReadDirectoryChangesW 獲得文件變化通知。這里要熟悉 CreateFile 和 ReadDirectoryChangesW 的使用。Creat

9、eFile 這個(gè)函數(shù)可以創(chuàng)建或打開(kāi)一個(gè)對(duì)象的句柄,憑借此句柄就可以控制這些對(duì)象:控制臺(tái)對(duì)象、通信資源對(duì)象、目錄對(duì)象 (只能打開(kāi))、磁盤設(shè)備對(duì)象、文件對(duì)象、郵槽對(duì)象、 管道對(duì)象。其函數(shù)原型:HANDLE CreateFile(LPCTSTR lpFileName,DWORDdwDesiredAccess,DWORDdwShareMode,LPSECURITY_ATTRIBUTES IpSecurityAttributes,DWORDdwCreationDisposition,DWORDdwFlagsAndAttributes,HANDLE hTemplateFile);lpFileName 一個(gè)

10、指向無(wú)終結(jié)符的字符串的指針,來(lái)指明要?jiǎng)?chuàng)建或打開(kāi)的對(duì)象的名字。dwDesiredAccess指明對(duì)象的控制模式。一個(gè)應(yīng)用程序可以包含讀控制、寫(xiě)控制、讀/寫(xiě)控制、設(shè)備查詢控制。這個(gè)參數(shù)的取值可以是下面這些的組合如下表2所示:表 2 dwDesiredAccess 參數(shù)表參數(shù)作用0指定設(shè)備查詢控制:程序可以不訪問(wèn)設(shè)備就查詢到設(shè)備屬性。GENERIC_READ指定讀控制,可以從對(duì)象中讀取數(shù)據(jù)(指針將可以移動(dòng))。GENERIC_WRITE指定寫(xiě)控制,可以向?qū)ο笾袑?xiě)數(shù)據(jù)(指針將可以移動(dòng))。dwShareMode指定對(duì)象的共享模式。如果dwShareMode=0,表示是互斥使用的。如果CreateFile打

11、開(kāi)成功,則別的程序只能等到當(dāng)前程序關(guān)閉對(duì)象句柄CloseHandle后才能在打開(kāi)或使用。 使用下面這些值的組合來(lái)表示對(duì)象的共享模式如下表3所示:表3 dwShareMode參數(shù)表參數(shù)作用FILE_SHARE_DELETE打開(kāi)操作只有在刪除請(qǐng)求發(fā)生時(shí)才能返回成功FILE_SHARE_READ打開(kāi)操作只有在讀控制請(qǐng)求發(fā)生時(shí)才能返回成功FILE_SHARE_WRITE打開(kāi)操作只有在寫(xiě)控制請(qǐng)求發(fā)生時(shí)才能返回成功IpSecurityAttributes 一個(gè)指向 SECURITY_A TTRIBUTES 結(jié)構(gòu)對(duì)象的指針,決定返回的句 柄是否被子進(jìn)程所繼承。如果 IpSecurityAttributes參

12、數(shù)為NULL句柄就不能被子進(jìn)程繼承。dwCreationDisposition指明當(dāng)打開(kāi)的對(duì)象存在或不存在的時(shí)候各需怎樣處理。這個(gè)參數(shù)必 須是一下值的其中之一,參數(shù)如下表4所示:表 4 dwCreationDisposition 參數(shù)表CREATE_NEW創(chuàng)建新文件/對(duì)象(當(dāng)對(duì)象已經(jīng)存在是將返回失?。REATE_ALWAYS總是創(chuàng)建(如果對(duì)象存在就覆蓋它,清 除當(dāng)前屬性,把文件屬性和dwFlagsAndAttributes 指定的標(biāo)志相結(jié)合)。OPEN_EXISTING打開(kāi)文件(如果不存在就返回失敗)OPEN_ALWAYS存在就打開(kāi);若不存在,假如dwCreationDisposition

13、 =CREATE_NE般創(chuàng)建一個(gè)新文件。TRUNCATE_EXISTING存在就打開(kāi),且清空文件內(nèi)容 (至少要 有GENERIC_WRITE 權(quán)限);若義件不 存在就返回失敗。dwFlagsAndAttributes 指定文件屬性和標(biāo)志。hTemplateFile把具有GENERIC_READ權(quán)限的句柄指定為一個(gè)模板文件。這個(gè)模板文件 提供了文件屬性和擴(kuò)展屬性,用于創(chuàng)建文件。而ReadDirectoryChangesW如果函數(shù)成功,返回值為非零。函數(shù)原型如下所示:BOOL WINAPI ReadDirectoryChangesW(_inHANDLE_outLPVOID_inDWORD_inBO

14、OL_inDWORD_out_optLPDWORD_inout_optLPOVERLAPPED_in_optlpCompletionRoutine);hDirectory為對(duì)目錄進(jìn)行監(jiān)視的句柄, 訪問(wèn)權(quán)限。hDirectory,IpBuffer,nBufferLength,bWatchSubtree,dwNotifyFilter,1PBytesReturned,©Overlapped,LPOVERLAPPED_COMPLETION_ROUTINE被監(jiān)視的目錄必須打開(kāi)FILE_LIST_DIRECTORY 的lpBuffer為一個(gè)指向DWORD型的緩沖區(qū),其中可以將獲取的數(shù)據(jù)結(jié)果將其返

15、回。這個(gè)緩沖區(qū)的定義是 FILE_NOTIFY_INFORMATION 結(jié)構(gòu)。 這個(gè)緩沖區(qū)充滿要么同步或異步,這取決于如何打開(kāi)目錄什么價(jià)值給予©Overlapped參數(shù)。nBufferLength,指lpBuffer的緩沖區(qū)的大小值,以字節(jié)為單位。bWatchSubtree,監(jiān)視子目錄.一般選擇 TRUEdwNotifyFilter ,對(duì)文件過(guò)濾的方式和標(biāo)準(zhǔn)。該過(guò)濾器的標(biāo)準(zhǔn),功能檢查,以決定是否等待操作完成。這個(gè)參數(shù)可以是一個(gè)或多個(gè)下列值,參數(shù)如下表5所示:表 5 dwNotifyFilter 參數(shù)表參數(shù)作用FILE_NOTIFY_CHANGE_FILE_NA任何文件名改變都會(huì)查看所

16、在目錄或子ME目錄的變更,并將結(jié)果通知給等待操作返回。變化包括重命名,創(chuàng)建或刪除文件。FILE_NOTIFY_CHANGE_DIR_NAM任何目錄名稱改變都會(huì)查有所在目錄或E子目錄的變更,并將結(jié)果通知給等待操作返回。改變包括建立或刪除一個(gè)目錄。FILE_NOTIFY_CHANGE_ATTRIBUTESFILE_NOTIFY_CHANGE_SIZEFILE_NOTIFY_CHANGE_LAST_WRITEFILE_NOTIFY_CHANGE_LAST_ACCESSFILE_NOTIFY_CHANGE_CREATIONFILE_NOTIFY_CHANGE_SECURITY任何屬性變化,都會(huì)查看所在

17、目錄或子目 錄的變更,并將結(jié)果通知給等待操作返 回。任何文件大小的變化, 都會(huì)查看所在目錄 或子目錄的變更,并將結(jié)果通知給等待操 作返回。操作系統(tǒng)檢測(cè)改變文件大小,只 有當(dāng)該文件被寫(xiě)入到磁盤時(shí)發(fā)生。操作系統(tǒng)使用廣泛緩存,檢測(cè)時(shí)才會(huì)發(fā)生的緩 存足夠同滿。任何改變過(guò)去修改時(shí)間的文件 ,都會(huì)查 看所在目錄或子目錄的變更, 并將結(jié)果通 知給等待操作返回。操作系統(tǒng)檢測(cè)改變過(guò) 去寫(xiě)的時(shí)間只有當(dāng)該文件被寫(xiě)入到磁盤。任何改變文件最近訪問(wèn)時(shí)間, 都會(huì)查看所 在目錄或子目錄的變更, 并將結(jié)果通知給 等待操作返回。任何改變文件的創(chuàng)建時(shí)間的, 都會(huì)查看所 在目錄或子目錄的變更, 并將結(jié)果通知給 等待操作返回。任何安全

18、描述符被改變的,都會(huì)查看所在 目錄或子目錄的變更, 并將結(jié)果通知給等 待操作返回。1PBytesReturned同步調(diào)用,將接收的字節(jié)數(shù)轉(zhuǎn)入IpBuffer參數(shù)。©Overlapped 一個(gè)指針的重疊結(jié)構(gòu),提供供數(shù)據(jù)時(shí)使用的異步操作。否則,這個(gè)值為NULL。lpCompletionRoutine 一個(gè)指針一個(gè)完成例程如果在呼叫使用函數(shù)操作時(shí)已經(jīng)完成或取消和調(diào)用線程是在alertable等待。狀態(tài)。ReadDirectoryChangesW 該函數(shù)用來(lái)監(jiān)控文件夾變化,基本步驟是:(1)使用CreateFile打開(kāi)目錄,要取得一定權(quán)限,打開(kāi)目錄的時(shí)候一定要包含F(xiàn)ILE_LIST .DIR

19、ECTORY 參數(shù);(2)然后使用該函數(shù)監(jiān)聽(tīng),收到系統(tǒng)的消息后,從 Ipbuffer里面取得Action和Filename。該函數(shù)可以同步調(diào)用或者異步調(diào)用,是同步還是異步取決于CreateFile時(shí)給的參數(shù),和該函數(shù)的第 7 個(gè)參數(shù) LPOVERLAPPED ©Overlapped :(1) 同步調(diào)用,則CreateFile時(shí)使用FILE_LIST .DIRECTORY,第7個(gè)參數(shù)設(shè)置為nil ;(2) 異步調(diào)用,則 CreateFile時(shí)還要指定 FILE _FLAG .OVERLAPPED ,第7個(gè)參數(shù)還要給個(gè)值。還有要注意的是第三個(gè)參數(shù)和第四個(gè)參數(shù)設(shè)置緩沖區(qū),最大64KB如果監(jiān)

20、視目錄下一次操作太多的文件,超過(guò)緩沖區(qū)(緩沖區(qū)溢出),就會(huì)丟失消息。創(chuàng)建線程調(diào)用ReadDirectoryChangesW ,將考生沒(méi)操作一題的記錄按指定的格式用字符串 數(shù)組變量string studoneW:存下來(lái)。3.3 校對(duì)評(píng)分功能的設(shè)計(jì)同樣這個(gè)功能使用到了,StreamReade這個(gè)類,正確的操彳記錄保存在“check.dat”文件中,存放格式如下:操彳1行數(shù)n1行1行2行n1操彳2行數(shù)n2行1行2行n2操彳n行數(shù)nn"check.dat” 文件內(nèi)容如圖4所示:文件也)鐮輯11格式)查看。幫助理)10添加Old新建文件來(lái)Num刪除 8加 改修改 刪除 僚加 卷改1添加Old圖

21、圖新建文件夾 圖片之 夾心2.jp 522.j四2夾心1. jpq 21.jpq 2New修改 刪除 懿 12 添加 OldN9W新建妾任麥nme新硅文件夾MVFILE圖4文件內(nèi)容程序在創(chuàng)建form對(duì)象時(shí)候,調(diào)用form對(duì)象的構(gòu)造函數(shù)通過(guò)字節(jié)流將整個(gè)文本按行讀入, 首先讀入行數(shù)n,知道這個(gè)題目有幾行,接著讀入n行字符,存放在字符串?dāng)?shù)組 string口 sysdone 里,接著讀入下一題的行數(shù)。3.4 時(shí)間提醒功能的設(shè)計(jì)時(shí)間提醒的實(shí)現(xiàn)使用到.net提供的 System. Windows . Forms. timer控件,它直接繼承自 Componet. Timer控件只有綁定了 Tick事件,和

22、設(shè)置 Enabled=True后才會(huì)自動(dòng)計(jì)時(shí),停止計(jì) 時(shí)可以用Stop()控制,通過(guò)Stop()停止之后,如果想重新計(jì)時(shí),可以用 Start()方法來(lái)啟動(dòng)計(jì) 時(shí)器。Timer控件和它所在的Form屬于同一個(gè)線程;將間隔時(shí)間timeh. Interval設(shè)置為1000毫秒二1秒,在form_load()的時(shí)候調(diào)用timer. Start()方法啟動(dòng)計(jì)時(shí)器,timer_Tick()方法實(shí)現(xiàn) 在每隔1秒的時(shí)間里更新label標(biāo)簽,顯示剩余時(shí)間。當(dāng)時(shí)間到的時(shí)候,自動(dòng)評(píng)分。計(jì)時(shí)器啟動(dòng),時(shí)間變化,時(shí)間提醒功能工作流程如下圖5所示:圖5工作流程四、系統(tǒng)程序設(shè)計(jì)4.1 自動(dòng)出題功能的實(shí)現(xiàn)由于全部的題目都存放在

23、字符串?dāng)?shù)組string口 strtext中,所以只要將strtext cur顯示在Text文本框上,同時(shí)更新cur的值即可,實(shí)現(xiàn)代碼如下所示:private void button2_Click(object sender, EventArgs e)if (cur < 10)cur+;textBox1.Text = strtextcur;button2.Text ="下題"4.2 監(jiān)控操作功能的實(shí)現(xiàn)直接調(diào)用概要設(shè)計(jì)提到的CreateFile和ReadDirectoryChangesW 這兩條 API, CreateFile獲 得句柄,ReadDirectoryChan

24、gesW接收句柄監(jiān)控指定的考生文件夾目錄,并將監(jiān)控的記錄按題 號(hào)保存在字符串?dāng)?shù)組 string studone中,實(shí)現(xiàn)代碼如下所示:public void myThreadMethod() IntPtr hDir = CreateFile(myDocs, FILE_LIST_DIRECTORY, FILE_SH ARE_READ | FILE_SHARE_WRITE |FILE_SHARE_DELETE, IntPtr.Zero, OPEN_EXISTING, FILE_FLAG _BACKUP_SEMANTICS, IntPtr.Zero);if (hDir = IntPtr.Zero) M

25、essageBox.Show("文件創(chuàng)建失敗"+ Marshal.GetLastWin32Error ();return;IntPtr pBuf = IntPtr.Zero;try pBuf = Marshal.AllocHGlobal(int)BUFSIZE); uint bytesReturned;while (ReadDirectoryChangesW(hDir, pBuf, BUFSIZE, true, FILE _NOTIFY_CHANGE_FILE_NAME |FILE_NOTIFY_CHANGE_DIR_NAME | FILE_NOTIFY_ CHANGE_L

26、AST_WRITE, out bytesReturned,IntPtr.Zero, IntPtr.Zero)string actions = new string "(未知操作)","添加"," 刪除","修改", "Old name ", "New name " ;IntPtr pCurrent = pBuf;while (pCurrent != IntPtr.Zero)/ Read file length (in bytes) at offset 8int fileLen

27、 = Marshal.ReadInt32(pCurrent, 8);/ Read file name (fileLen/2 characters) from offset 12string file = Marshal.PtrToStringUni(IntPtr)(12 + (int)pCurrent), fileLen / 2);/ Read action at offset 4int action = Marshal.ReadInt32(pCurrent, 4);if (action < 1 | action >= actions.Length) action = 0;if (

28、action != 3)studonecur += actionsaction + file + "rn"/ Read NextEntryOffset at offset 0 and move pointer tonext structure if neededint inc = Marshal.ReadInt32(pCurrent);pCurrent = inc != 0 ? (IntPtr)(inc + (int)pCurrent) : IntPtr.Zero;/elseConsole.WriteLine("ReadDirectoryChangesW fail

29、ed. " + Marshal.GetLastWin32Error();finallyif (pBuf != IntPtr.Zero) Marshal.FreeHGlobal(pBuf);CloseHandle(hDir);以下方法通過(guò)線程實(shí)現(xiàn),執(zhí)行于Form1_Load()方法中,實(shí)現(xiàn)代碼如下所示:Thread threadl = new Thread(myThreadMethod);thread1.Start();4.3 校對(duì)評(píng)分功能的實(shí)現(xiàn)這個(gè)功能的實(shí)現(xiàn)主要是通過(guò)比較字符串?dāng)?shù)組string口 sysdone和string口 studone 。從sysdone1到studone10

30、依次同studone1 10比較,相同則加10分。實(shí)現(xiàn)代碼如下:private void check() int grade = 0;for (i = 1; i <= 10; i+) if (string.Equals(sysdonei, studonei)grade += 10;MessageBox.Show("本次操作得分:"+ grade.ToString();4.4 時(shí)間提醒功能的實(shí)現(xiàn)時(shí)間提醒,每隔一秒鐘執(zhí)行一次timer1_Tick(),更新窗體上的時(shí)間信息,實(shí)現(xiàn)代碼如下所示:private void timer1_Tick(object sender, E

31、ventArgs e)if (mint >= 0)scss-;if (scss = 0)mint-;labell.Text = mint.ToString() + "分";scss = 59;label2.Text = scss.ToString() + "秒"; else check(); 在Form1_Load()中初始化Interval時(shí)間間隔,設(shè)定Tick事件,啟動(dòng)計(jì)時(shí)器,實(shí)現(xiàn)代碼如下 所示:this.timer1.Interval = 1000;this.timer1.Tick += new System.EventHandler(this.timer1_Tick);this.timer1.Start();五、總結(jié)針對(duì)高校學(xué)生在 Windows平臺(tái)核心編程及 Windows上機(jī)操作題考試等問(wèn)題,本文設(shè)計(jì)了Windows上機(jī)操作題考試軟件。主要采用C黜言,利用Visual Studio作為開(kāi)發(fā)工具,對(duì)Windo

溫馨提示

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

評(píng)論

0/150

提交評(píng)論