亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于COM技術(shù)的試題庫(kù)系統(tǒng)試卷生成技術(shù)研究

        2013-07-13 09:40:28
        關(guān)鍵詞:試題庫(kù)控件應(yīng)用程序

        舒 濤

        (四川民族學(xué)院網(wǎng)絡(luò)信息中心,四川康定626001)

        基于COM技術(shù)的試題庫(kù)系統(tǒng)試卷生成技術(shù)研究

        舒 濤

        (四川民族學(xué)院網(wǎng)絡(luò)信息中心,四川康定626001)

        文章首先對(duì)當(dāng)前試題庫(kù)系統(tǒng)在試題錄入、試卷生成時(shí)無(wú)法包含公式等對(duì)象的問(wèn)題進(jìn)行了分析,然后提出了采用COM技術(shù)將Word與試題庫(kù)系統(tǒng)進(jìn)行溶合實(shí)現(xiàn)含有公式等對(duì)象的試題的錄入、顯示、編輯及試卷的自動(dòng)生成,并給出了實(shí)現(xiàn)過(guò)程和關(guān)鍵代碼.

        試題庫(kù)系統(tǒng);試卷生成;COM;Delphi

        1 引言

        隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,逐漸出現(xiàn)了大量試題庫(kù)管理系統(tǒng).試題庫(kù)管理系統(tǒng)的出現(xiàn)對(duì)于實(shí)現(xiàn)教考分離、提升考務(wù)管理水平、提高教學(xué)質(zhì)量、減少人為因素對(duì)試卷質(zhì)量的影響,體現(xiàn)考試的公平、客觀有著非常重要的意義.

        實(shí)現(xiàn)含有圖、文、表、公式等混合內(nèi)容的試題存儲(chǔ)和試卷及標(biāo)準(zhǔn)答案的自動(dòng)生成已經(jīng)是試題庫(kù)系統(tǒng)必須具備的功能.目前,許多試題庫(kù)管理系統(tǒng)是通過(guò)將每道試題先輸出到一個(gè)類似于Delphi中的TRichEdit組件這種能夠存放RTF格式的對(duì)象中,然后打開一個(gè)采用Microsoft Word制作的用于輸出試卷或答案的模板,在試卷生成程序中使用復(fù)制和粘貼操作將存放的RTF格式的本文輸入到Word文檔中,從而實(shí)現(xiàn)試卷或答案的生成.由于RTF格式本身較簡(jiǎn)單無(wú)法存儲(chǔ)復(fù)雜的表、公式等內(nèi)容,采用這種方法產(chǎn)生的試卷或答案也就無(wú)法包含復(fù)雜的表、公式等內(nèi)容,使試題庫(kù)管理系統(tǒng)的實(shí)用性大打折扣,同時(shí)這種方法還存在操作麻煩,自動(dòng)性差的缺點(diǎn).

        Microsoft Word作為一款優(yōu)秀的文字處理軟件使用非常廣泛,是各位教師和考務(wù)工作者最熟悉的軟件之一.Word對(duì)文字、圖、表、各類符號(hào)、圖片,公式等試題基本內(nèi)容的編輯和輸出均能夠很好的支持.因此采用Word文檔存儲(chǔ)和輸出試題及答案是非常實(shí)用的方法.而在程序中要實(shí)現(xiàn)Word文檔的存儲(chǔ)、編輯、讀取、顯示沒有純文本類型數(shù)據(jù)方便,本文針對(duì)利用Word文檔存儲(chǔ)試題信息要解決的主要問(wèn)題進(jìn)行了深入的探討,并給出具體的解決方法.

        2 開發(fā)技術(shù)

        2.1 COM技術(shù)[1]

        COM(Component Object Model,組件對(duì)象模型)是由微軟公司開發(fā)的一種分布式技術(shù).它是基于Windows的、語(yǔ)言獨(dú)立的、以組件為發(fā)布單元的對(duì)象模型,用于運(yùn)行于Windows下的各個(gè)軟件以一種統(tǒng)一的方式進(jìn)行交互.COM技術(shù)以組件之間、應(yīng)用程序之間、客戶端和服務(wù)器之間通過(guò)明確定義的接口進(jìn)行通信提供了統(tǒng)一的標(biāo)準(zhǔn),也為組件程序提供了一個(gè)面向?qū)ο蟮幕顒?dòng)環(huán)境.它具有語(yǔ)言無(wú)關(guān)性、面向?qū)ο蟆⑦M(jìn)程透明性、可重用性等特點(diǎn).且隨著COM技術(shù)的不斷發(fā)展,以基本COM服務(wù)為基礎(chǔ),又逐漸形成了包括所謂自動(dòng)技術(shù)、ActiveX控件技術(shù)以及活動(dòng)文檔和活動(dòng)目錄等在內(nèi)的新的COM擴(kuò)展.

        一個(gè)典型的COM應(yīng)用由COM服務(wù)器和COM客戶端這兩個(gè)基本構(gòu)建塊組成,二者之間通過(guò)COM接口進(jìn)行溝通.COM服務(wù)器是一個(gè)執(zhí)行專門任務(wù)的組件軟件,它通過(guò)COM接口發(fā)布自己所提供的服務(wù),而COM客戶端則是通過(guò)COM接口使用和控制COM服務(wù)器的軟件.COM應(yīng)用的基本架構(gòu)如圖1所示.

        圖1 COM應(yīng)用基本架構(gòu)

        2.2 應(yīng)用程序連接Word的方式

        在Delphi環(huán)境中可采用以下三種方式實(shí)現(xiàn)應(yīng)用程序與Word的連接:

        (1)通過(guò)OleContainer控件將Word嵌入.該方式能夠直接調(diào)用Word文檔,在調(diào)用時(shí)使用ole-Container控件的Run方法即可啟動(dòng)Word文檔.該方式啟動(dòng)的Word文檔與調(diào)用它的應(yīng)用程序可以統(tǒng)一在一個(gè)界面上,但采用這種方式不能通過(guò)Delphi控制Word文檔,無(wú)法靈活地控制Word.

        (2)通過(guò)Delphi中自帶的Servers控件調(diào)用Word.該方式實(shí)質(zhì)是將Word當(dāng)作一個(gè)COM應(yīng)用服務(wù)器來(lái)進(jìn)行處理.使用該方式操作Word,能夠較好的實(shí)現(xiàn)對(duì)Word的控制,但是還有一些如Word中的VBA無(wú)法在Delphi中調(diào)用,且這種方式啟動(dòng)的Word與Delphi程序分屬兩個(gè)窗體,需要進(jìn)行特別處理.

        (3)通過(guò)OLE方式對(duì)Word進(jìn)行控制.該方式是使用CreateOleObject方法啟動(dòng)Word.這種方式能夠做到完全控制Word,能夠使用Word的所有屬性.該方法啟動(dòng)的Word與應(yīng)用程序也分屬兩個(gè)窗體.缺點(diǎn)是Delphi無(wú)法捕獲Ole對(duì)象的異常,對(duì)異常的處理需要自行處理,編程較復(fù)雜.

        2.3 Delphi中的Word組件[2]

        Delphi是Borland公司推出的一款RAD(Rapid Application Development,快速應(yīng)用開發(fā)工具),在其中提供了大量的向?qū)?、類、接口、組件,為程序開發(fā)人員在應(yīng)用程序中使用基于COM的類和組件提供了方便.在Delphi中有專門針對(duì)Word軟件的COM服務(wù)器,有關(guān)Word操作的組件有5個(gè),介紹如下:

        (1)WordDocument組件:用于Word文檔的創(chuàng)建、連接、斷開、存盤、文本插入、語(yǔ)法和拼寫檢查、字符查找、打印等功能.

        (2)WordApplication組件:用于在應(yīng)用程序中啟動(dòng)和關(guān)閉Word并建立和斷開Word文檔的連接.

        (3)WordFont組件:用于Word文檔中的字號(hào)、字體的設(shè)置.

        (4)WordParagraphFormat組件:用于Word文檔的段落格式的設(shè)置.

        (5)WordLetterContent組件:用于調(diào)用由信函向?qū)?chuàng)建的信函的元素.

        通過(guò)上述5個(gè)組件,在Delphi中可以很方便實(shí)現(xiàn)對(duì)Word的操作,最終實(shí)現(xiàn)試題庫(kù)管理系統(tǒng)與Word的溶合.

        3 關(guān)鍵功能實(shí)現(xiàn)

        3.2 試題添加與存儲(chǔ)

        在添加試題時(shí),將通過(guò)Delphi的Server組件連接并啟動(dòng)Word,然后自動(dòng)創(chuàng)建一個(gè)空白文檔,空白文檔創(chuàng)建完成后,教師就可以在這個(gè)文檔內(nèi)輸入試題內(nèi)容了.關(guān)鍵代碼如下:

        TKWord.Documents.Add(EmptyParam,False, wdNewBlankDocument,True);//創(chuàng)建一空白文檔,并使Word窗口可見

        TKWord.ConnectTo(TKWord.Documents.Item(ItemIndex));

        TKWord.Options.CheckSpellingAs You Type:= False;//關(guān)閉拼音查找

        TKWord.Options.CheckGrammarAsYouType:= False;//關(guān)閉語(yǔ)法檢查

        試題錄入完成后需要保存到數(shù)據(jù)庫(kù)中,由于試題內(nèi)容是保存為Word文檔,必須采用二進(jìn)制類型的字段進(jìn)行存儲(chǔ).具體方法是先創(chuàng)建該試題文檔的文件流,再利用TBlobField類的LoadFromStream方法將試題文檔保存到“內(nèi)容”字段中,關(guān)鍵代碼如下:

        fs:=TFileStream.Create(STFilename,fmOpen-Read);/創(chuàng)建文件流,STFilename為試題文件名

        fs.Position:=0;

        TBlobField(ST.FiledByName(‘內(nèi)容’)).Load-FromStream(fs);//將試題文件保存到“內(nèi)容”字段中

        fs.free;

        3.3 試題讀取與編輯

        由于試題是以Word文檔的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中的,讀取和編輯均需在Word應(yīng)用程序進(jìn)行,但在試題庫(kù)管理中對(duì)試題進(jìn)行維護(hù)時(shí),除要編輯試題內(nèi)容外,還要對(duì)試題的題型、分值、知識(shí)點(diǎn)、難易度等信息進(jìn)行設(shè)置,這就要求在同一窗口中能夠顯示、編輯試題內(nèi)容和相關(guān)信息.而采用Delphi的Server組件操作Word的一個(gè)缺點(diǎn)就是應(yīng)用程序和Word窗口不能溶合,可采用Delphi的TOleContainer控件將Word文檔嵌入到Delphi Form中來(lái)實(shí)現(xiàn)應(yīng)用程序和Word窗口的溶合.這里為每條試題記錄中的存儲(chǔ)文檔數(shù)據(jù)的字段創(chuàng)建一個(gè)對(duì)應(yīng)的TOleContainer控件,而對(duì)其他類型的字段使用相對(duì)應(yīng)控件顯示即可.在編輯試題信息時(shí),先創(chuàng)建一個(gè)臨時(shí)Word文檔,再使用TBlobField類的Save-ToStream方法,將試題內(nèi)容以寫入到該文檔中,最后用TOleContainer類的CreateLinkToFile方法鏈接該文檔,關(guān)鍵代碼如下:

        STFileStream:=TFileStream.Create(‘temp_st.doc’,fmCreate);

        TBlobField(ST.FieldByName(‘內(nèi)容’)).Save-ToStream(STFileStream);//將試題內(nèi)容字段保存到文件流

        STFileStream.Free;

        OleCconn1.CreateLinkToFile(‘temp_st.doc’, false);//在OleCconn1中顯示試題內(nèi)容

        編輯完成后,使用3.2節(jié)代碼即可將修改后的試題保存到數(shù)據(jù)庫(kù)中.

        3.4 生成試卷

        試題庫(kù)管理系統(tǒng)均具有智能組卷功能,通過(guò)組卷算法一般只抽取試題的題號(hào),要將這些題號(hào)對(duì)應(yīng)的試題內(nèi)容放入到試卷文檔中才能形成試卷.對(duì)于試題內(nèi)容以Word文檔形式存儲(chǔ)的試題庫(kù)管理系統(tǒng)來(lái)說(shuō),生成試卷的基本流程是:先打開試卷模板,并根據(jù)實(shí)際情況設(shè)置頁(yè)眉和頁(yè)腳信息,然后根據(jù)抽取的題型及題號(hào)將試題一一插入到試卷中就生成了試卷.

        3.4.1 打開試卷模板文件

        通常一個(gè)學(xué)校的試卷均會(huì)采用統(tǒng)一的樣式,因此在生成試卷時(shí)應(yīng)先打開該模板.打開試卷模板的關(guān)鍵代碼如下:

        TKWord.Documents.Open(SJFileName,Flase, Flase,,,Flase,,wdOpenFormatAuto,,True);

        TKWord.ConnectTo(TKWord.Documents.Item(itemindex));

        3.4.2 生成頁(yè)眉和頁(yè)腳

        在試卷模板中有一些如考試科目、出題人、出題時(shí)間、頁(yè)號(hào)等變化的內(nèi)容,只能通過(guò)頁(yè)眉和頁(yè)腳的方法來(lái)完成,關(guān)鍵代碼如下:

        TKWord.Sections.Item(1).Headers.Item(1).Range. Text:=’《計(jì)算機(jī)文化基礎(chǔ)》試卷’;//設(shè)置頁(yè)眉

        TKWord.Sections(1).Footers(wdHeaderFooterPrimary).PageNumbers.StartingNumber:=1//設(shè)置頁(yè)腳為頁(yè)碼

        3.4.3 插入試題

        在試卷模板中插入試題是自動(dòng)生成試卷最核心的步驟,也是實(shí)現(xiàn)最為復(fù)雜的一步,其基本思路是:先將由抽題算法抽取的試題放入試卷表中,然后將記錄中的試題內(nèi)容讀入到一個(gè)臨時(shí)Word文檔中,最后從該臨時(shí)文檔中將試題內(nèi)容讀入到試卷模板的指定位置,同時(shí)還將進(jìn)行題號(hào)等試卷元素的生成.由于實(shí)現(xiàn)該功能的代碼較長(zhǎng),這里采用偽Object Pascal語(yǔ)言對(duì)實(shí)現(xiàn)算法進(jìn)行描述如下:

        Begin

        統(tǒng)計(jì)試卷中的試題類型;

        For(試題類型數(shù)量)do

        Begin

        將含有題號(hào)、題型、總分值、單項(xiàng)分值、答題說(shuō)明等內(nèi)容的題型信息插入到試卷中;

        通過(guò)SQL語(yǔ)句讀取試卷表中的該類型的全部試題;

        While(記錄指針沒有移動(dòng)到末尾)do

        Begin

        將小題號(hào)(與記錄號(hào)相同)輸出到試卷中,;

        將記錄指針指向的試題的內(nèi)容輸出到試卷中;

        移動(dòng)記錄指針讀取下一條記錄;

        End

        End

        End

        4 結(jié)束語(yǔ)

        由于試題庫(kù)管理系統(tǒng)對(duì)于推進(jìn)教考分離、提高教學(xué)質(zhì)量的有著積極和作用,各級(jí)、各類教育機(jī)構(gòu)對(duì)試題庫(kù)管理系統(tǒng)的建設(shè)越來(lái)越重視,而一個(gè)好的試題庫(kù)管理系統(tǒng)必須要能夠?qū)Χ鄬W(xué)科試題和試卷進(jìn)行管理.本文提出了采用COM技術(shù)在應(yīng)用程序中控制Word實(shí)現(xiàn)試題的錄入、保存和試卷的自動(dòng)輸出,這樣就可以利用Word強(qiáng)大的編輯排版功能制作各種復(fù)雜的試卷.在具體實(shí)現(xiàn)上,文中雖然采用的是Delphi進(jìn)行實(shí)現(xiàn),但COM是一種與開發(fā)工具無(wú)關(guān)的技術(shù),這些思路和方法也同樣適用于其它開發(fā)工具.

        〔1〕Mark E.Russinovich,David A.Solomon,Alex Ionescu.深入解析Windows操作系統(tǒng)(第5版).北京:人民郵電出版社,2009.

        〔2〕牛漢民.Delphi7高級(jí)應(yīng)用開發(fā)教程[M].北京:科學(xué)出版社,2005.

        〔3〕王文發(fā),張根耀,王文東.應(yīng)用Delphi與Word溶合技術(shù)實(shí)現(xiàn)試題庫(kù)試卷的自動(dòng)生成[J].延安大學(xué)學(xué)報(bào)(自然科學(xué)版),2006(1):21-23.

        〔4〕陳麗燕,祝建中.基于Word文檔的試題庫(kù)系統(tǒng)的實(shí)現(xiàn)[J].信息技術(shù),2005(9):143-145.

        〔5〕夏齡,周德榮,舒濤.一種網(wǎng)絡(luò)通用題庫(kù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2011 (2):58-60.

        TP311.5

        A

        1673-260X(2013)08-0014-03

        四川省教育廳一般項(xiàng)目資助(12ZB086)

        猜你喜歡
        試題庫(kù)控件應(yīng)用程序
        刪除Win10中自帶的應(yīng)用程序
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        項(xiàng)目反應(yīng)理論在考試系統(tǒng)試題庫(kù)中的應(yīng)用
        基于Quiz Creator的“機(jī)械圖樣的繪制與識(shí)讀”隨機(jī)組卷試題庫(kù)的制作與研究
        基于校園網(wǎng)的電磁學(xué)試題庫(kù)建設(shè)
        教考分離模式下課程試題庫(kù)的建設(shè)研究——以高職院校數(shù)學(xué)課程為例
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        三星電子將開設(shè)應(yīng)用程序下載商店
        微軟軟件商店開始接受應(yīng)用程序
        国产精品视频免费一区二区三区| 精品一区二区三区免费播放| 日韩毛片在线看| 国产日韩亚洲中文字幕| 男男啪啪激烈高潮无遮挡网站网址| 成品人视频ww入口| 久久日本三级韩国三级 | 人妻无码AⅤ中文系列久久免费| 美女视频黄a视频全免费网站色 | 日本不卡一区二区三区在线 | 91尤物视频在线观看| 国产三级在线看完整版| 中文字幕亚洲综合久久综合| 久久久久成人精品无码| 亚洲乱码视频在线观看| 精品中文字幕日本久久久| 亚洲va视频一区二区三区| 一本无码av中文出轨人妻| 国产成人拍精品免费视频| 国产成人久久精品二区三区| 制服丝袜一区二区三区| 中文字幕无码不卡一区二区三区| 国产精品九九久久一区hh| 一区二区三区在线乱码| 成人网站在线进入爽爽爽| 欧美日本日韩aⅴ在线视频| 在线免费观看视频播放| 国产亚洲av看码精品永久| 最近中文字幕视频完整版在线看 | 按摩女内射少妇一二三区| 国产精品一区二区三区免费视频| 国产真人性做爰久久网站| 亚洲av无码一区二区乱子仑| 日本女同视频一区二区三区| 免费不卡在线观看av| 久久亚洲欧洲无码中文| 国产成人久久综合第一区| 97色伦图片97综合影院| 国产成人亚洲精品无码h在线| 亚洲AV手机专区久久精品| 久久人妻一区二区三区免费|