徐曉君
摘 要: 根據(jù)實(shí)際教學(xué)需求,設(shè)計(jì)并實(shí)現(xiàn)了C語言在線考試系統(tǒng)。系統(tǒng)的開發(fā)以采用結(jié)構(gòu)化設(shè)計(jì)思想為指導(dǎo),文章針對(duì)系統(tǒng)的分析、設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、關(guān)鍵模塊的實(shí)現(xiàn)等進(jìn)行了闡述。系統(tǒng)在實(shí)際試用中運(yùn)行良好,具有一定的實(shí)用價(jià)值和推廣價(jià)值。
關(guān)鍵詞: C語言 在線考試系統(tǒng) 設(shè)計(jì) 實(shí)現(xiàn)
1.系統(tǒng)開發(fā)的背景及意義
考試作為教學(xué)評(píng)測(cè)的一種主要手段,其規(guī)范性、科學(xué)性及考試工作的組織、管理等直接關(guān)系到教學(xué)測(cè)評(píng)的準(zhǔn)確性和客觀性,影響教學(xué)質(zhì)量。目前,在我校,C語言程序設(shè)計(jì)課程作為公共基礎(chǔ)必修課,全校大面積開設(shè)C語言程序設(shè)計(jì)課程,每學(xué)期期末考試時(shí),面臨大量問題,包括組卷、試卷印刷、試卷裝訂、試卷批閱、閱卷審核、合分、成績計(jì)算及成績錄入等,不僅花費(fèi)時(shí)間、金錢,而且造成大量紙張浪費(fèi),增加授課教師的工作量。同時(shí),人工閱卷、合分工作不僅速度慢,而且存在誤判的情況,很容易造成教學(xué)事故。
鑒于以上情況,開發(fā)一個(gè)C語言考試系統(tǒng)就顯得非常必要。
2.系統(tǒng)分析與設(shè)計(jì)
經(jīng)過對(duì)我校C語言程序設(shè)計(jì)課程的教學(xué)與考試情況的分析,我認(rèn)為本系統(tǒng)應(yīng)分為三個(gè)模塊、學(xué)生端模塊、教師端模塊、管理員端模塊。不同模塊實(shí)現(xiàn)不同的功能,分別針對(duì)不同用戶對(duì)象。
2.1學(xué)生端模塊
學(xué)生模塊主要包括學(xué)生個(gè)人信息查看、章節(jié)練習(xí)、章節(jié)自測(cè)、模擬考試、在線考試、成績查詢等模塊。
學(xué)生在登錄后,通過個(gè)人信息管理模塊可以查看個(gè)人信息,若有錯(cuò)誤,則可以向管理員傳遞正確信息,經(jīng)管理員核查后修改;章節(jié)練習(xí)模塊中存放各章節(jié)所有習(xí)題,學(xué)生可根據(jù)學(xué)習(xí)進(jìn)度選擇章節(jié)進(jìn)行鞏固與練習(xí),若遇到不會(huì)的題目,學(xué)生則可查看本題參考答案;章節(jié)自測(cè)模塊可對(duì)本章節(jié)學(xué)習(xí)情況進(jìn)行測(cè)試,題型包括選擇題、填空題、程序設(shè)計(jì)題等類型。在答題過程中,在學(xué)生答完題點(diǎn)擊提交后可自動(dòng)判選擇題、填空題、程序分析題的分值,同時(shí)給出題目答案,而程序設(shè)計(jì)題則會(huì)給出本題的參考答案;模擬考試模塊可從題庫中抽題,自動(dòng)組卷,功能與章節(jié)自測(cè)模塊類似,不同之處在于模擬考試模塊所抽取的題是所有章節(jié)的題目;在線測(cè)試模塊在期末考試時(shí)才對(duì)學(xué)生開放,完成期末考試。該模塊讀取數(shù)據(jù)庫中期末試題,并按隨機(jī)順序顯示,當(dāng)學(xué)生提交后,可自動(dòng)判別客觀題成績,并存放于數(shù)據(jù)庫中,程序設(shè)計(jì)題則是記錄學(xué)生答題結(jié)果,由教師評(píng)閱。
2.2教師模塊
教師模塊主要包括教師個(gè)人信息查看、題庫管理、考試安排管理、試卷組卷管理、閱卷管理、成績管理等模塊。
教師在登錄后,通過題庫管理模塊可進(jìn)行題目管理,對(duì)題庫進(jìn)行維護(hù);通過考試安排管理模塊可進(jìn)行考試安排;通過試卷管理模塊既可對(duì)以往試卷進(jìn)行查看,又可完成本學(xué)期試卷組卷及試卷修改工作,在組卷時(shí),既可以根據(jù)各章節(jié)知識(shí)點(diǎn)進(jìn)行組試卷,又可以隨機(jī)組卷;通過閱卷管理模塊可對(duì)學(xué)生提交的試卷的編程題進(jìn)行判分,將分值錄入;通過成績管理模塊,教師可按班級(jí)或?qū)W生學(xué)號(hào)姓名查看期末考試成績,也可錄入平時(shí)成績,按一定的比例(如平時(shí)成績占20%,期末成績占80%)計(jì)算學(xué)生綜合成績,并分析成績,包括各分?jǐn)?shù)段學(xué)生的比例、班級(jí)平均成績、最高分、最低分等,而成績一旦錄入并保存后,不能再對(duì)成績進(jìn)行修改,若需要修改,則可向管理員申請(qǐng)修改。
2.3管理員模塊
管理員模塊主要包括用戶信息管理、班級(jí)管理、院系管理、課程管理、授課管理、試卷管理、成績管理、網(wǎng)站信息管理。
用戶信息管理可對(duì)學(xué)生、教師的信息進(jìn)行管理并進(jìn)行權(quán)限設(shè)置;班級(jí)管理可對(duì)本學(xué)期開課班級(jí)進(jìn)行管理;授課管理可將教師與授課班級(jí)關(guān)聯(lián),以便進(jìn)行考試安排、成績管理等;試卷管理可進(jìn)行試卷的保存,另當(dāng)教師發(fā)現(xiàn)組好的試卷存在錯(cuò)誤時(shí)可通過此模塊由管理員進(jìn)行試卷的修改;成績管理模塊可對(duì)成績進(jìn)行統(tǒng)計(jì)、分析,同時(shí),當(dāng)教師錄入成績有誤需要修改時(shí),可通過該模塊進(jìn)行修改;通過網(wǎng)站信息管理可更新網(wǎng)站內(nèi)容,包括公告管理、新聞管理、共享資料管理等。
3.數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫設(shè)計(jì)根據(jù)用戶的需求設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)及應(yīng)用系統(tǒng)的過程,數(shù)據(jù)庫設(shè)計(jì)的優(yōu)劣直接影響系統(tǒng)的質(zhì)量的高低和運(yùn)行效果的優(yōu)劣。數(shù)據(jù)庫設(shè)計(jì)經(jīng)過明確用戶需求、概念設(shè)計(jì)、軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施等步驟,數(shù)據(jù)庫設(shè)計(jì)時(shí),以規(guī)范化設(shè)計(jì)理論為指導(dǎo),力求建立一個(gè)完整、獨(dú)立、共享、冗余小、安全有效的數(shù)據(jù)庫系統(tǒng)。本系統(tǒng)中的表主要包括:(1)學(xué)生基本信息表:學(xué)生ID、學(xué)號(hào)、學(xué)生姓名、班級(jí)ID等;(2)成績單表:考試ID、課程ID、學(xué)號(hào)、選擇題成績、填空題成績、程序設(shè)計(jì)題成績、平時(shí)成績;(3)章節(jié)信息表:章節(jié)ID、章節(jié)名;(4)知識(shí)點(diǎn):知識(shí)點(diǎn)ID、所屬章節(jié)、知識(shí)點(diǎn)名;(5)題目知識(shí)點(diǎn):題庫中題號(hào)、知識(shí)點(diǎn)ID;(6)選擇題題庫表:題庫中題號(hào)、題干、選項(xiàng)A、選項(xiàng)B、選項(xiàng)C、選項(xiàng)D、參考答案、難易程度;(7)考試安排表:考試ID、考試名稱、考試描述、考試開始時(shí)間、考試結(jié)束時(shí)間、班級(jí)ID;(8)組卷表:考試ID、選擇題分值、選擇題數(shù)量、填空題分值、填空題數(shù)量、程序設(shè)計(jì)題分值、程序設(shè)計(jì)題分值、程序設(shè)計(jì)題數(shù)量、試卷總分;(9)試卷選擇題知識(shí)點(diǎn)分配表:考試ID、章節(jié)ID、數(shù)量;(10)試卷選擇題表:考試ID、試卷中題號(hào)、題庫中題號(hào);(11)學(xué)生選擇題答題表:學(xué)號(hào)、考試ID、試卷中題號(hào)、答案等。
4.關(guān)鍵模塊的實(shí)現(xiàn)
本系統(tǒng)在開發(fā)時(shí)選用了asp.net、B/S、ODBC作為開發(fā)技術(shù),所采用的開發(fā)軟件主要有Macromedia Dreamweaver 8,Adobe Photoshop CS3 Extended,Microsoft Visual Studio 2008等,數(shù)據(jù)庫方面考慮到與windows xp兼容性及所開發(fā)的系統(tǒng)一些信息的數(shù)量,所以選擇Microsoft SQL Server 2005。服務(wù)器采用windows自帶IIS。
4.1個(gè)人信息管理
學(xué)生登錄后可以查看個(gè)人基本信息,并且可以進(jìn)行修改重新保存數(shù)據(jù)庫。此模塊實(shí)現(xiàn)需要登錄者信息,根據(jù)登錄者學(xué)號(hào)查詢數(shù)據(jù)庫并且返回到用戶界面,所以用到傳登錄者信息用Session["sno"],然后建立一個(gè)強(qiáng)類型dataset為DataSetStudentInf.xsd,并建立一個(gè)方法為GetDataBySno(sno)。
4.2成績查詢
此模塊實(shí)現(xiàn)是學(xué)生對(duì)自己的成績查詢,學(xué)生根據(jù)自己的學(xué)號(hào)、姓名進(jìn)行查詢得到自己C語言成績及排名。為此建立一個(gè)強(qiáng)類型dataset為DataSetReports.xsd,建立一個(gè)方法為GetDataByNoName(Sno.,Sname),其sql語句為SELECT Sno,Sname,AllGrade,Sort,ChoiceG,VacancyG,DesignG FROM dbo.T_Reports where Sno=@Sno and Sname=@Sname。
4.3閱卷管理
此模塊實(shí)現(xiàn)對(duì)在線考試試卷的管理,教師根據(jù)學(xué)號(hào)姓名,提取試卷,閱批學(xué)生試卷,并且實(shí)現(xiàn)對(duì)成績的加和。選擇題可以實(shí)現(xiàn)自動(dòng)評(píng)分,其他需要教師閱卷。實(shí)現(xiàn)選擇題自動(dòng)評(píng)分代碼如下:
protected void btnAuto_Click(object sender,EventArgs e,int fz)
{
int sum = 0;
foreach (RepeaterItem item in rpChoice.Items)
{
Label lbCA = (Label)item.FindControl("lbCA");
Label lbRCA = (Label)item.FindControl("lbRCA");
if (lbCA.Text == lbRCA.Text)
{
sum = sum + fz;
}
}
txtChoiceG.Text = sum.ToString();
}
5.系統(tǒng)測(cè)試
軟件測(cè)試的目的是發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程,通過實(shí)施完善的軟件測(cè)試,可以提高軟件質(zhì)量。針對(duì)本系統(tǒng),進(jìn)行了功能測(cè)試,確保測(cè)試模塊功能的正常。其中,對(duì)導(dǎo)航欄、用戶登錄、在線考試、組卷等模塊進(jìn)行了測(cè)試,主要采取的方法為等價(jià)類劃分方法;系統(tǒng)進(jìn)行了用戶界面測(cè)試,確保用戶界面友好,測(cè)試的內(nèi)容包括頁面之間的切換、頁面的對(duì)象及特征(如菜單、大小、位置、文本內(nèi)容等)符合標(biāo)準(zhǔn)。
6.結(jié)語
經(jīng)過調(diào)研、系統(tǒng)分析、設(shè)計(jì)與實(shí)現(xiàn),本系統(tǒng)基本能夠滿足學(xué)生、教師對(duì)在線考試系統(tǒng)的需求,使用方便,界面友好,功能較為完善,可以減輕教師工作量,提高工作效率,具有一定的實(shí)用價(jià)值和推廣價(jià)值,但是本系統(tǒng)中也存在一定的不足之處,如系統(tǒng)效率、訪問人數(shù)等。隨著計(jì)算機(jī)技術(shù)及教學(xué)情況的發(fā)展,本系統(tǒng)會(huì)逐步完善。
參考文獻(xiàn):
[1]楊鵬.基于Web的C語言考試系統(tǒng)設(shè)計(jì)[J].中國科技信息,2010(5).
[2]王娜.基于ASP.NET技術(shù)的在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2010(7).
[3]劉潔.基于Web環(huán)境的在線考試系統(tǒng)[J].黑龍江科技信息,2011(15).