国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C#的在線考試系統(tǒng)設(shè)計(jì)

2014-07-24 14:47:39梁紅碩
無線互聯(lián)科技 2014年5期
關(guān)鍵詞:表示層服務(wù)器端客戶端

梁紅碩

摘 要:隨著校園網(wǎng)的普及,以及傳統(tǒng)考試方式逐漸凸顯的弊端,基于網(wǎng)絡(luò)的在線考試系統(tǒng)越來越受到人們的青睞。本系統(tǒng)采用C/S結(jié)構(gòu)的“胖服務(wù)器”模式,服務(wù)器端承擔(dān)了考生的身份驗(yàn)證、題目抽取、考生的考試監(jiān)控以及數(shù)據(jù)庫的管理等大部分工作,而客戶端僅僅承擔(dān)了考生的考試認(rèn)證,不保存任何數(shù)據(jù)。本系統(tǒng)設(shè)計(jì)主要采用C#的三層架構(gòu)模式,構(gòu)建了數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層的三層體系架構(gòu)。

關(guān)鍵詞:C#;在線;考試系統(tǒng)

考試是教學(xué)工作的一項(xiàng)重要組成部分,是對學(xué)生學(xué)習(xí)情況以及教師的教學(xué)情況的考察。而傳統(tǒng)的考試需要教師投入大量的經(jīng)歷,要經(jīng)過出題、印卷、閱卷等多個(gè)環(huán)節(jié),還存在紙張、設(shè)備的浪費(fèi)。而基于網(wǎng)絡(luò)的在線考試系統(tǒng)越來越受人們青睞,借助網(wǎng)絡(luò)、數(shù)據(jù)庫等技術(shù)實(shí)現(xiàn)的在線考試,既省時(shí)省力,還節(jié)約了資源。該系統(tǒng)中試卷可以根據(jù)試題庫中的內(nèi)容自動(dòng)生成,避免學(xué)生的押題;題目采用的是標(biāo)準(zhǔn)化試題,方便計(jì)算機(jī)自主閱卷,大大提高了閱卷效率。

本系統(tǒng)采用了C/S結(jié)構(gòu)的“胖服務(wù)器”模式,服務(wù)器端承擔(dān)來了大部分工作,主要包括考生的身份驗(yàn)證、題目的抽取、考生的考試監(jiān)控以及數(shù)據(jù)庫的管理等工作;客戶端僅僅完成考生的考試認(rèn)證,不保存任何數(shù)據(jù),它所完成的大部分功能都是通過調(diào)用服務(wù)器的遠(yuǎn)程對象來實(shí)現(xiàn)的。

1 在線考生系統(tǒng)功能設(shè)計(jì)

該系統(tǒng)用戶主要分為兩類:管理員(老師兼),考生(學(xué)生),其中管理員主要完成考試題目的管理、成績?yōu)g覽、考生信息的管理以及對服務(wù)器的管理,如上功能集中在服務(wù)器端,如圖1所示。而考生主要進(jìn)行登錄、答題、題目標(biāo)記、交卷的操作,此功能集中在客戶端。

2 三層模式設(shè)計(jì)實(shí)現(xiàn)

本系統(tǒng)采用經(jīng)典的三層架構(gòu),即數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層。其中,數(shù)據(jù)訪問層主要實(shí)現(xiàn)對數(shù)據(jù)庫的操作;業(yè)務(wù)邏輯層主要完成業(yè)務(wù)邏輯的封裝,對表示層隱藏實(shí)現(xiàn);表示層主要提供用戶的操作界面,具體的業(yè)務(wù)邏輯由業(yè)務(wù)邏輯層實(shí)現(xiàn)。

2.1 數(shù)據(jù)庫訪問設(shè)計(jì)

2.1.1 通用數(shù)據(jù)訪問類設(shè)計(jì)

由于每次訪問數(shù)據(jù)庫的基本步驟是類似的,比如與數(shù)據(jù)庫的連接操作、執(zhí)行非查詢命令、執(zhí)行返回結(jié)果集的查詢命令等,所以首先設(shè)計(jì)一個(gè)通用類庫,來完成對數(shù)據(jù)庫的這些基本訪問操作。對SQL Server的訪問類叫SQLServerHelper,包含五個(gè)方法:ExecuteSQLNonQuery、ExecuteSQLReader、ExecuteSQLScalar、ExecuteProcederNonQuery和ExecuteProcederReader,分別用于執(zhí)行SQL語句不返回結(jié)果、執(zhí)行SQL語句返回只讀、以正向方式訪問數(shù)據(jù)庫的DataReader對象、執(zhí)行SQL語句返回標(biāo)量查詢、執(zhí)行存儲(chǔ)過程不返回結(jié)果、執(zhí)行存儲(chǔ)過程返回DataReader。這樣,對數(shù)據(jù)庫的訪問,直接調(diào)用相應(yīng)方法即可完成。

2.1.2 數(shù)據(jù)訪問層的ORM實(shí)現(xiàn)

ORM為Object/Relation Mappinga的簡稱,即對象-關(guān)系映射,是隨著面向?qū)ο笳Z言的發(fā)展而產(chǎn)生的。C#語言是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,業(yè)務(wù)實(shí)體為對象,而現(xiàn)在通用的數(shù)據(jù)庫是關(guān)系型數(shù)據(jù),業(yè)務(wù)實(shí)體為關(guān)系數(shù)據(jù),因此開發(fā)語言和數(shù)據(jù)庫之間存在不匹配現(xiàn)象。而解決這個(gè)問題的方法就是建模。建模是一個(gè)很大的話題,不同復(fù)雜度的程序有不同的建模方法,建模需要確定的內(nèi)容就是需要處理的問題領(lǐng)域包含哪些實(shí)體。經(jīng)過分析,該系統(tǒng)抽象出四個(gè)實(shí)體類,分別是Administrator(管理員、教師)、Examinee(考生)、Exercise(考題)和Grade(成績)4個(gè)類。

2.1.3 數(shù)據(jù)訪問層設(shè)計(jì)

數(shù)據(jù)訪問層主要負(fù)責(zé)數(shù)據(jù)庫的訪問,即完成對數(shù)據(jù)庫的增加、修改、刪除、查詢等操作。因?yàn)榉謱咏Y(jié)構(gòu)中各個(gè)層職能明確,所以該層的主要功能是通過獲取參數(shù),執(zhí)行相應(yīng)命令,然后返回結(jié)果。該層主要設(shè)計(jì)4個(gè)類:AdminDAL、ExamineeDAL、ExerciseDAL和GradeDAL,分別完成對用戶的管理、考生的管理、題目的管理和成績的管理。其中ExamineeDAL的設(shè)計(jì)如下:

public class ExamineeDAL

{ public static bool AddExaminee(Examinee examiee) { } //添加考生

public static bool DeleteExamineeById(string id) { } //根據(jù)id刪除考生

...... }

2.2 業(yè)務(wù)邏輯層設(shè)計(jì)

業(yè)務(wù)邏輯層主要封裝相關(guān)的業(yè)務(wù)規(guī)則,實(shí)現(xiàn)過程中的數(shù)據(jù)訪問操作通過調(diào)用數(shù)據(jù)訪問層實(shí)現(xiàn)。它對流入的邏輯性數(shù)據(jù)的正確性及有效性負(fù)責(zé),對流出的邏輯性數(shù)據(jù)及用戶數(shù)據(jù)不負(fù)責(zé)。由于本系統(tǒng)業(yè)務(wù)較簡單,該層并沒有實(shí)質(zhì)內(nèi)容,只是簡單的調(diào)用數(shù)據(jù)訪問層的方法。對應(yīng)數(shù)據(jù)訪問層設(shè)計(jì)了AdministratorBLL、ExamineeBLL、ExercieseBLL和GradeBLL四個(gè)類,完成了相應(yīng)的業(yè)務(wù)邏輯訪問。

2.3 表示層設(shè)計(jì)

表示層是一個(gè)系統(tǒng)的門面,負(fù)責(zé)完成與用戶的交互,一方面接收用戶的輸入,同時(shí)將輸出數(shù)據(jù)呈現(xiàn)給用戶,并決定呈現(xiàn)的樣式。它對用戶數(shù)據(jù)的有效性負(fù)責(zé),同時(shí)管理會(huì)話及頁面跳轉(zhuǎn)等邏輯。

3 遠(yuǎn)程對象設(shè)計(jì)

本系統(tǒng)采用Remoting技術(shù)來完成遠(yuǎn)程通信,Remoting技術(shù)是在.NET平臺(tái)下提供的用于開發(fā)分布式應(yīng)用程序的技術(shù)框架,可以在不同應(yīng)用程序域之間相互通信。該系統(tǒng)中客戶端是通過調(diào)用位于服務(wù)器端的遠(yuǎn)程對象來獲取服務(wù)的,因此設(shè)計(jì)供客戶端調(diào)用的遠(yuǎn)程對象是該部分的重要內(nèi)容。

客戶端在登錄時(shí)需要驗(yàn)證考生信息,由于客戶端沒有數(shù)據(jù)庫,無法獲取考生信息,需要把驗(yàn)證功能放在服務(wù)器端。在ServerObject類中添加ExamineeValidate方法,代碼如下:

public Examinee ExamineeValidate(string name,string passwd)

{ Examinee examer=ExamineeBll.GetExamineeByNameNumber(name,passwd);

if(examer!=null) ExamineeOnlineManager.GetInstant().RegisterExaminee(examer);

return examer; }

登錄成功后,考生便進(jìn)入到考試窗體進(jìn)行答題,而考生題目、考試時(shí)間等信息也來源于服務(wù)器端,所以還需要添加獲取考生信息和考生題目的方法。

4 結(jié)語

在線考生系統(tǒng)是一個(gè)功能強(qiáng)大的基于通信的應(yīng)用系統(tǒng),本設(shè)計(jì)采用了C/S模式,同時(shí)應(yīng)用了C#的三層架構(gòu),構(gòu)建了數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層的三層體系架構(gòu),基于篇幅原因,沒有給出客戶端、服務(wù)器端的詳細(xì)設(shè)計(jì)。

[參考文獻(xiàn)]

[1]段海清.基于NET平臺(tái)的分成架構(gòu)與設(shè)計(jì)模式的設(shè)計(jì)與實(shí)現(xiàn).碩士論文.電子科技大學(xué),2013.11.

[2]陳青華.C#網(wǎng)絡(luò)開發(fā)項(xiàng)目教程.電子工業(yè)出版社,2012.12.

猜你喜歡
表示層服務(wù)器端客戶端
基于Spring的企業(yè)級(jí)Web項(xiàng)目架構(gòu)設(shè)計(jì)研究
軟件(2019年6期)2019-10-08 06:27:21
縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
ASP.NET三層構(gòu)架解析
基于SSH框架科研管理系統(tǒng)的設(shè)計(jì)
在Windows中安裝OpenVPN
ASP.NET三層架構(gòu)體系間數(shù)據(jù)傳遞
電腦迷(2013年9期)2013-04-29 00:44:03
客戶端空間數(shù)據(jù)緩存策略
绥德县| 霍州市| 新野县| 白玉县| 大余县| 娱乐| 商丘市| 抚顺市| 云浮市| 兰州市| 常熟市| 巴塘县| 油尖旺区| 阜新| 无为县| 梅州市| 平武县| 北碚区| 定安县| 墨脱县| 谢通门县| 黄陵县| 安陆市| 金寨县| 法库县| 班玛县| 凭祥市| 黑山县| 普安县| 万年县| 清涧县| 齐齐哈尔市| 尼勒克县| 乐山市| 平凉市| 绍兴市| 邛崃市| 临漳县| 尼勒克县| 云林县| 沙湾县|