關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于C/S架構的通用計算機在線考試系統的實現

        基于C/S架構的通用計算機在線考試系統的實現

        作者: 時間:2012-09-13 來源:網絡 收藏


        4.1 中間業務邏輯層設計

        中間層服務器是設計的關鍵,在中間層上設計了大量的遠程方法供客戶端調用,這種方式稱為“瘦客戶機,胖服務器”模式。使用該模式,當客戶功能有所變動時,只需更改中間層上的方法,而不用重新分發客戶端。在Delphi7中使用DataSetProvider控件提供RPC服務,對于客戶端的每一個操作,都可以通過在中間層服務器中設計相應的方法實現[5]。在中間層設計的兩個主要方法如下:
        (1)function ExeClientSql(const MySql: WideString): WordBool; safecall;
        //執行SQL的更新、插入、刪除等操作,返回是否成功;
        (2)function GetClientData(const MySql: WideString): OleVariant; safecall;
        //執行SQL的查詢操作,返回查詢結果。

        4.2 軟件的主要技術特點

        (1)考試時由考生隨機抽題組卷,同時確保相鄰考生抽取不同的試題。實現該功能的存儲過程如下:

        CREATE PROCEDURE cp_Paper_Sel
        @tblDL char(20),
        @MyPrior int,
        @MyNext int,
        @MyKM char(30)
        AS
        exec(′select top 1 套題編號,套題名稱 from tblcrecord where 套題編號 not in
        (select 套題編號 from ′+@tblDL+′ where IP序號=′+@MyPrior+′or IP序號=′+@MyNext+′) and 科目名稱=‘’‘+@MyKM+’‘’and 是否抽取=′′是′′ order by newid()′)
        GO

        (2)IP安全技術:考試中將考試IP限定在某一區域內,如192.168.36.1到192.168.36.200,可以防止在考場外進行替考,同時在考試時通過“禁止未登錄考生參加考試”功能,在考生登錄之后進一步避免了場外替考現象的發生。此外,將考生考號和考生機器IP地址進行綁定,考生在考試過程中,只能在一臺上答題,以防止考生之間相互換題等作弊行為。當考生登錄到考試系統以后,將考生機器IP地址寫入考生信息表以及登錄IP表,防止一個考號在兩臺機器上登錄。

        //檢查是否同一IP登錄
        with cds2 do
        begin
        Close ;
        SQL.Clear ;
        SQL.Add(′exec sp_Query_All:fldName,:tblName′);;
        Params.ParamByName(′fldname′).Value :=′*′;
        Params.ParamByName(′tblName′).Value:=
        dm.tblDL+′ where登錄IP='''+dm.MyIP+''';
        try
        Open;
        if recordcount>0 then
        begin
        sMessageDlg(′警告′,′無效的考試請求!′,
        mtWarning ,[mbOK],0);
        exit;
        end ;
        except
        raise ;
        end;

        (3)考試時間限制:考生第一次取題開始計時,到規定的時間結束,考生只有在該時間內可以取題,其他時間都不能取題,計時由服務器完成,同時,若考試過程中由于意外情況導致考試終止時,監考老師可以通過輸入二次答題密碼的方式讓考生繼續答題,從而實現考生考試時間的公平性,又加強了試題的安全性。

        (4)大量應用存儲過程,保障系統的快速反應和高效運行。例如,將考生抽取的試題加入到考試數據庫中的存儲過程:

        CREATE PROCEDURE cp_Paper_Add
        @tblKS char(20),
        @MyNo char(10),
        @Mynum char(20),
        @Mytbl char(10)
        AS

        exec(′insert into′+@tblKS+′ (學生學號,套題編號,試題序號,試題內容,試題答案,試題分數,是否答題,套題名稱,考試科目,試題類型,學生分數,類別序號) select '''+@MyNo+''','''+@Mynum+''',試題序號,試題內容,試題答案,試題分數,′′否′′,套題名稱,科目名稱,試題類型,0,類別序號 from ′+@Mytbl+′ where 套題編號='''+@mynum+''')
        GO

        (5)數據加密功能。軟件系統中使用了關鍵數據加密和數據庫動態加密兩種技術。對于考試系統中的重要數據使用關鍵數據加密技術,如試題庫中的試題采用加密的方式存儲,用戶登錄時的密碼加密后保存到數據庫中,以免被他人獲取并泄漏。而用戶每次登錄數據庫時,系統都會自動修改數據庫密碼并進行加密存儲,這樣使得數據庫密碼具有不確定性,大大增加了數據庫的安全性,實現數據庫動態加密[6]。

        (6)試題錄入功能獨立于主系統。將試題錄入功能與主系統分開,既保障了系統的安全性,又方便教師進行試題錄入。通過設置登錄賬號和錄入科目,限制教師只能在指定時間內根據指定的驗證碼錄入指定科目試題,增加了題庫的安全性。

        采用C/S模式多層結構開發數據庫應用系統,比傳統的C/S模式結構有著無法比擬的優勢。該軟件系統主要采用了多層結構使得業務邏輯從客戶端分離出來,在最為關鍵的中間層上,設計了大量的遠程方法供客戶端調用,從而形成“瘦客戶機,胖服務器”模式,不但很好地實現了軟件系統的各項功能,而且簡化了程序設計,大大減少了網絡流量,從而提高軟件系統的運行效率、可維護性和整體性能。

        本文引用地址:http://www.104case.com/article/202188.htm

        上一頁 1 2 下一頁

        關鍵詞: 架構 計算機 系統

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 循化| 尚志市| 博爱县| 呼玛县| 政和县| 尼玛县| 宾阳县| 渝北区| 化州市| 肥城市| 新绛县| 澄城县| 莫力| 渝北区| 吉林省| 都江堰市| 宕昌县| 南漳县| 莲花县| 长子县| 盐边县| 嘉善县| 云阳县| 西城区| 烟台市| 汉中市| 太仆寺旗| 罗定市| 蕉岭县| 丰都县| 株洲市| 德江县| 成都市| 渝中区| 茶陵县| 伊金霍洛旗| 镇平县| 静乐县| 遵义市| 临朐县| 外汇|