




已阅读5页,还剩88页未读, 继续免费阅读
(计算机应用技术专业论文)bs模式c语言考试及自动评分系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 螺,+ i p 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期:沙少年f 膨b e ! 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:生咝导师签名: 日期:力, 9 年厂月夕0 日 f i i 一 摘要 摘要 c 语言是国际上广泛流行的计算机高级程序设计语言,在各类高等院校的计 算机及相关专业中,c 语言均被列为_ f - - j 必修的基础课程。该课程考核中使用的传 统手工阅卷已经逐渐走向计算机自动评阅。目前很多关于c 语言的上机考试系统, 客观题自动评分技术较为成熟。但对于程序设计题,主要采用的是结果比对评分 法,即只依据程序运行结果与标准结果相符程度给出相应分数,并不查看考生的 程序内容,显然不能反映考生的真实水平并且有失公允。而且大部分这样的考试 系统,也是基于c s 模式的,存在时空受限等缺点,用于远程教育和教学辅助网 站时受限。 针对上述问题,本人研究开发了一套基于b s 模式的c 语言上机考试及自动 评分系统。目的是,一方面实现c 语言课程的完全无纸化考试及自动评阅,尤其 是对程序设计题的自动评阅,减少阅卷工作量,提高评阅过程的公正性和准确性; 另一方面,为c 语言教学网站提供一套完备的自我测试系统,为c 语言的教学和 学生的自主学习提供更好支持。 在系统开发中,主要对考试系统中的自动组卷、考生考试及自动评分系统分 别进行了研究和设计,重点是程序设计题的自动评分方法。在比较结果的评分方 法基础上,设计了修复编译评分与关键代码对比相结合的方法,使评分结果更加 公正、准确。对于只有少量错误的考生程序,应用编译原理中的词法和语法的分 析方法,找出其中的错误并修改,使之能运行,然后根据结果信息及错误情况进 行评分,解决了考生因编程中的小失误而导致大量丢分的问题。而对于错误严重、 无输出结果或结果不正确的程序,则对程序进行关键代码对比,根据对比情况给 出相应分数,使评分结果更加接近于人工阅卷。 在设计系统的过程中,我们十分重视用户的需求,注重软件的实用性。该系 统设计成功后,经过大量测试和一定范围试用,初步证明该系统运行稳定,自动 评分准确,评分标准统一,整体效果良好,具有很好的实用价值和应用前景。 关键词:b s 模式,自动阅卷,编译原理,关键代码对比 一 、 p f , 一 a b s t r a c t a b s t r a c t cl a n g u a g ei so n eo fm o s tw i d e l ya p p l i c a t i o np r o g r a m m i n g l a n g u a g eo nc o m p u t e r a l m o s ti ne v e r yc o l l e g ea n du n i v e r s i t y , i th a sb e e nl i s t e da sar e q u i r e ds u b j e c ti n c o m p u t e rs c i e n c ea n dr e l e v a n ts p e c i a l t i e s a n dm e a n w h i l e ,t h i sc o u r s e st r a d i t i o n a l m a n u a lm a r k i n gs y s t e m sh a v eb e e nr e p l a c e db ya u t o m a t i cm a r k i n gs y s t e m sg r a d u a l l y t h o u g hm o s to fo b j e c t i v ep r o b l e m so na u t o m a t i c a l l ym a r k i n gs y s t e m sh a v eb e e n f u l f i l l e ds u c c e s s f u l l y , t h e r es t i l le x i s ts o m ed i f f i c u l t i e s ,f o re x a m p l e ,t h em a r k i n go n p r o g r a m m i n gp r o b l e m s b e c a u s et h o s es y s t e m sa r eb a s e do nr e s u l t sc o m p a r e df o r m a r k i n go i lp r o g r a m m i n gp r o b l e m s ,c a n ta c c u r a t e l ya n di m p a r t i a l l ym a r ks t u d e n t s r e a l a b i l i t y f u r t h e r m o r e ,m o s to ft h e s es y s t e m s ,a r eb a s e do nc sm o d a l ,c a n tb eu s e di n d i s t a n c ee d u c a t i o na n dt e a c h i n ga i d sw e b u p o nt h ea b o v ep r o b l e m s ,ih a v ed e v e l o p e dt h ecl a n g u a g eo n l i n et e s ta n d a u t o m a t i c a l l ys c o r i n gs y s t e mb a s e do nb sm o d e l o n eo ft h eg o a l so ft h i sp r o je c ti st o h a v eac o m p l e t en o - p a p e rt e s ta n ds c o r e a u t o m a t i c a l l y , e s p e c i a l l yt om a r ko n p r o g r a m m i n gi t e m sa u t o m a t i c a l l y , t or e d u c et h eg r a d i n gw o r k l o a da n di m p r o v et h e o b j e c t i v i t ya n dj u s t n e s s t h eo t h e rg o a li s t op r o v i d eas e l f - t e s t i n gs y s t e mf o rc l a n g u a g et e a c h i n gw e b ,a n db e t t e rs u p p o r tf o rcl a n g u a g et e a c h i n ga n ds t u d e n t s s e l f - s t u d y t h es y s t e mc a r r i e so nt h er e s e a r c ha n dd e s i g na ta u t o m a t i c a l l yc o m p o s i n gt e s t p a p e r , n o p a p e re x a m i n a t i o na n da u t o m a t i c a l l ys c o r i n g ,m a i n l ye x p l o r i n gt h em e t h o do f m a r k i n gt h ep r o g r a m i no r d e rt om a k e t h em a r k i n gs y s t e mm o r eo b j e c t i v ea n dj u s t l y , i t h a sb e e nd e s i g n e dt oc o m b i n et h em e t h o do fm o d i f i c a t i o nc o m p i l i n gw i t hk e yc o d e s c o m p a r i n gj u d g i n gb a s i n go nt h em e t h o do fc o m p a r er e s u l t f o rt h ep r o g r a m m i n g m i s t a k e ,t h es y s t e md y n a m i c a l l yl o o k sf o ra n dm o d i f i e si tb yu s i n gt h em e t h o db a s e do n l e x i c a la n a l y s i sa n dg r a m m a t i c a la n a l y s i so ft h ec o m p i l ep r i n c i p l e ,a n dr u n st h ep r o g r a m u n d e rt h es y s t e mc o n t r 0 1 t h e n ,t h es y s t e mc a ns c o r ea c c o r d i n gt ot h er e s u l t sa n dt h e n u m b e ro fe r r o r sp r o d u c e di nt h ep r o c e d u r e t h i sm e t h o ds o l v e st h ep r o b l e mt h a tm o s t e x a m i n e e sw i l ll o s em a n ys c o r eb e c a u s eo fs o m es m a l lf a u l t si np r o g r a m m i n g t ot h e p r o g r a mw h i c hh a sw r o n gr e s u l t o rn or e s u l t ,t h es y s t e mc a nu s et h em e t h o do fk e y t t a b s t r a c t c o d e sc o m p a r i n g ,t h e r e f o r e ,t h es c o r ea p p r o a c h e st ot h es t a n d a r dw h i c ha r t i f i c i a l l y s c o r i n g w i t ht h ed e v e l o p m e n to ft h es y s t e m ,t h eu s e r sr e q u i r e m e n ti s e m p h a s i z e d a f t e r t h i ss y s t e md e v e l o p e ds u c c e s s f u l l y , al o to ft e s t i n ga n du s i n gi nal i m i t e ds c o p eh a v e p r o v e dt h a tt h i ss y s t e mc a nr u ns t e a d i l y , s c o r ea c c u r a t e l ya n da u t o m a t i c a l l y , u n i f yt h e g r a d i n gs t a n d a r da n do v e r a l lp e r f o r m a n c ee x c e l l e n t l y s ot h i ss y s t e mh a sag o o d p r a c t i c a lv a l u ea n da p p l i c a t i o np r o s p e c t s k e y w o r d s :b sm o d e l ,a u t o m a t i cj u d g i n ge x a m i n a t i o np a p e r , c o m p i l ep r i n c i p l e , k e yc o d e sc o m p a r i n g i i i 目录 目录 第一章绪论1 1 1课题背景1 1 2 国内外研究现状和发展态势1 1 2 1客观性试题测评技术2 1 2 2主观性试题测评技术2 1 3课题研究的意义4 1 4 课题所要研究的内容4 1 5 课题中的难点和解决方法5 1 5 1考评系统的构建5 1 5 2 b s 模式下系统的实现6 第二章系统综述7 2 1 用户需求与系统目标7 2 2指导思想和可行性研究8 2 3 系统实现的开发工具、语言及方法9 2 3 1网站开发工具和语言9 2 3 2c c + + 语言1 1 2 3 3混合编程方法的选用1 1 2 3 4t c c 行编译命令的使用1 2 2 3 5 数据库和多客户环境下数据库应用模式的选择1 3 2 4本章小结1 4 第三章系统设计1 5 3 1系统组成1 5 3 1 1 系统功能分类和模块功能划分1 5 3 1 2用户角色设计1 6 3 1 3 考试组织与管理模式1 6 3 2数据库设计1 7 3 2 1 题库类数据表的设计1 7 i v 目录 3 3系统安全研究与设计2 7 3 3 1考试信息的安全性设计2 7 3 3 2考试系统的安全措施2 8 3 4 本章小结3 0 第四章系统实现3 1 4 1考试模块的实现3 1 4 1 1考试模式的分类3 l 4 1 2具体考试流程的实现3 1 4 1 3 异卷考试的解决方案3 2 4 1 4自我测试与同卷考试的解决方案3 4 4 1 5考试时间控制与考试页面的监控3 4 4 1 6考生答案的收集保存3 5 4 1 7考题页面的设计3 6 4 2 组卷模块的实现3 7 4 2 1对组卷方式划分的具体说明3 8 4 2 2 组卷中所涉及的主要参数的说明3 9 4 2 3对部分参数在页面间暂存格式的说明3 9 4 2 4 自动组卷的一般操作流程4 0 4 2 5组卷涉及的关键算法的分析4 0 4 3自动阅卷模块的实现4 9 4 3 1自动阅卷流程的设计4 9 4 3 2选择题和判断题评改流程与实现5 0 4 3 3程序填空题与程序阅读题评改流程与实现5 1 4 3 4程序设计题评阅流程与实现5 3 4 4 本章小结6 4 第五章系统测试6 5 5 1 系统测试分析6 5 5 2测试方法和过程6 5 5 3测试结果6 7 5 4本章小结6 8 第六章总结6 9 6 1研究总结与前景展望6 9 v 目录 6 2 需要改进的地方7 0 致 射7 1 参考文献7 2 附录7 5 附录ac o n t r a s t 函数流程图7 5 附录b双线程解决死循环代码7 6 附录c词法分析扫描程序分隔代码7 7 附录d词法分析程序将单词转换成标识符的代码7 9 附录e未定义标识符修正代码8 0 攻硕期间取得的研究成果8 2 v i 第一章绪论 1 1 课题背景 第一章绪论 c 语言是国际上广泛流行的计算机高级程序设计语言,是高校中计算机及相关 专业的一门必修的基础课程。当前对该课程的考评,通常采用人工命题和人工改 卷评分。这种考评方式劳动量大、效率低下,且客观性受到任课教师水平、经验、 个性甚至道德水准的影响【l 】。显然已经不适应计算机教育发展的需要。利用计算机 实现无纸化考试,已经是程序计算机考试的一种重要方式【2 】, 教育测量是教育过程的重要环节,它对学生的知识增长、能力发展、兴趣爱 好、思想品德、以及教育措施等许多问题按一定法则进行数量化测定【3 】。它可以分 为理论知识的评价和对技能的评价。对于像c 语言之类的程序设计类课程,技能 的评价则更为重要。对于理论知识的评测,通常采用客观题的形式。关于技能考 核,早期主要采用卷面考试方式,其成绩不能真正反映学生计算机技能水平。即 使有计算机上机考试,也主要采用人工评阅的方法。评阅费时较多、误差大,易 受人为主观因素的影响,可能存在不公正的现象。这种现象,不仅仅是我国的计 算机考试系统如此,国外的许多考试系统也是这样0 1 。实现自动评阅已是迫切的 需要【1 lj ,自动评阅评分是大规模计算机考试的必然选择【1 2 】。 1 2 国内外研究现状和发展态势 利用计算机技术实现无纸化考试,是近年来计算机技术一个重要的应用研究 领域。而自动阅卷作为计算机考试系统的一个重要组成部分,它以计算机的高效、 自动的阅卷取代教师的低效、手工的阅卷,是实现完全无纸化考试,彻底取代传 统的手工考试方式的关键。而且这种方式,阅卷结果易于保存、查询,对考生成 绩的评定,可避免人为因素的影响,更加客观更正【1 3 1 4 1 。 目前国内外有很多关于c 语言的上级考试系统,大多设计有选择题及填空题, 可很好的实现对理论知识的考核,而且自动评分技术也较成熟。但对实践能力的 考核一程序设计题,由于其自动评分很难实现,一些考试系统干脆取消了该类试 题,如全国计算机应用技术证书( n i t ) 和劳动部组织的计算机信息高新技术考试 电子科技大学硕士学位论文 等。也有一些考试系统中设计有程序设计题,但对该类试题评分方法却并不完善, 评分结果也不尽如人意,还没有很好的解决方案,目前所取的一些成果,也主 要基于c s 模式。 1 2 1 客观性试题测评技术 目前的大多数计算机考试自动评阅是针对客观性试题的。在对客观题的测试 中,每个题目都有一个或一组确定的正确答案,通过将考生的结果与标准答案对 比,可进行准确的判分。对于主观性不是很强的试题如填空题及程序改错题,也 可以采用类似的方法如字符串比较法,将考生答案与标准答案直接作严格匹配或 模糊匹配,匹配成功即可得分。通过文献查阅和现有考试系统的研究,可知现在 对于客观性试题的测评技术已经比较成熟,从试题的呈现、学生的答题到自动阅 卷完全可由计算机自动完成,实现无纸化考试【16 1 。 1 2 2 主观性试题测评技术 目前对于主观题中的一些题型,如w i n d o w s 操作题、w o r d 文字录入题、e x c e l 表格处理题的自动阅卷技术,已经取得一些重要进展,但对主观题中的重要一类, 程序设计题的自动评阅,目前还处于探索阶段。 1 2 2 。1 国内情况 1 全国计算机等级考试二级、三级上机考试系统 该系统主要采用的是结果比对的方法进行评分,依据程序运行结果与标准结 果相符程度给出相应分数,并不查看考生的程序内容【1 7 】。因此,一个几近正确但 因为一个小小错误导致无法编译运行的程序,将获得一个极端的零分。在全国等 级考试中,这种极端分数的是比较常见的。这评分机制,显然不能反映考生的真 实水平,并且有失公允。 2 f o x b a s e + 自动阅卷程序 该系统由邵阳高等专科学校于1 9 9 9 年开发,采用的方法也是将考生程序运行 结果和标准答案相比较来完成评卷。在考生程序出现语法错误或死循环的情况下 退出考生程序再运行下一个考生程序【1 8 】。这种方法的实质也是结果比较,也存在 容易出现极端分数,存在较大不合理的缺点。同时该方法是针对解释性语言 2 第一章绪论 f o x b a s e 编写在,已经不太符合现在考试的要求。 3 v b 程序设计考核自动评阅系统 该系统由段汉周等研制,实现了对v i s u a lb a s i c 程序设计上机考核的实时自动 评阅,该系统判断程序主要依据是用户程序是否达到或具备预先要求的功能,而 程序内部的逻辑程序复杂度以及用户编程的灵活性等等并不是考核的目的,没有 通过编译或者不能运行的程序属于完全错误【1 9 】。如前所述,这种方法也存在较大 不合理性。 4 v f p 表单计算机阅卷系统 该系统所探讨的是计算机二级等级考试由面向过程的程序设计转向面向对象 的程序设计后v f p 表单题型的计算机自动阅卷技术,针对v f p 表单题型,采用自 动读取表单上各对象的属性、自动触发可能符合题意的事件、判断事件触发后界 面控件的显示值是否正确的方法,来实现的计算机自动阅卷【2 0 1 。该方法是专门针 对v f p 表单题型设计的,有一定的局限性。 1 2 2 2 国外情况 1 基于计算机的可迁移技能测评 该项目由英国东英格兰大学信息系统学院r o yd o w s i n g ,s i e w a n dl o n g & r o m a ns l e e p 等人承担,英国高等教育基金会资助,主要对计算机字处理和电子表 格的应用的辅助评测进行研究,项目主要成果是研制出关于字处理和电子表格应 用的c a a 系统“w o r d t a s k ”和“s p r e a d t a s k ”。从实际应用来看也存在一些问题: 采用字符串匹配法,完全依据的是结果信息,不适用于大多数评测场合;测评模 型过于简单,缺乏一般性,对于其他类型的测评来说,借鉴意义不大【2 卜2 4 1 。 2 as o f t w a r es y s t e mf o rg r a d i n gs t u d e n tc o m p u t e rp r o g r a m 该系统是英国利物浦大学研制的一个利用计算机对学生编写的程序在正确 性、效率、风格、复杂性及容错性等方面进行自动评价,且可对给定程序产生一 份评价报表,对程序进行评分【2 5 2 6 1 。 3 美国测试系统有限公司( 简称a t a ) 的相关研究 a t a 公司是国际上较有影响的考试技术服务公司。该公司的主要业务是提供 考试内容和考试技术服务,为此他们开发了一种基于动态仿真技术的、专门用于 t t 技能考核的自动测评系统,该系统中的被试者所面对的交互测评环境是虚拟的。 其优点是:系统运行稳定,而且很容易获取与被试操作过程相关的信息。但是, 由于很难对w o r d ,e x c e l 等应用软件从功能实现到操作方式进行完全仿真,因而 电子科技大学硕士学位论文 将在一定程度上影响该系统的测试信度和效度。这种仿真系统的另一个缺点是对 测评内容的适应性较差,考试内容要事先提交给公司去制作,用户不能命题【1 7 j 。 综合国内外的研究及应用情况看,虽然有一些成果,提出了一些解决方法, 但就目前情况看仍没有一个在动态测试或正确性检验方面比较成熟的程序题自动 测评系统【2 4 2 引。并且这些系统都是非b s 模式,应用范围受到很大限制,不能直 接应用于教育教学网站,使互联网在现代辅助教学中的优势无法得以发挥。 1 3 课题研究的意义 当前c 语言测试的方法主要还是人工考核的办法,这种方法耗费时间多,并 且会存在考生作弊的情况,教师在批改中也会存在一定主观性。采用具有自动抽 题组卷、上机考试和自动阅卷功能的考试和自动评分系统,可以大大简化考试流 程、节省时间、降低成本,并可有效地防止作弊,有效地克服批改中的人为主观 因素的影响,从而使学生的成绩能够真实客观地反映学生对所学知识的掌握情况 和教师的教学情况。 利用计算机技术,使用考试系统取代传统的手工考试方式,是一种必然的发 展趋势,也是近年来计算机技术的一个非常活跃的研究领域。自动阅卷作为考试 系统的一部分,不但可以使考生成绩更加准确客观,同时可以极大提高阅卷效率, 减轻教师负担。而且这种方式可以使考试数据更加易于管理,便于进行成绩的分 析、查询和保存。 基于b s 模式的系统相对c s 模式,其客户端仅为一浏览器,不需要进行专 门的安装,大大方便了系统的安装和部署。同时基于b s 模式的系统,突破c s 模式系统时空受限的缺点,可以直接部署于教育和教学网站,充分利用互联网的 优势,即可用于考试,也可作为学生自我测试系统,从而激发学生的学习兴趣, 提高学习动机与成效【l 。 因此,基于b s 模式的考试和自动阅卷系统,可有效地推动考核方法和考核 手段的改革和现代化,确保考试的科学、公平和高效,并且还可以有效为教学提 供有效辅助支持,促进教学方式的改革。这也是当前教学改革的发展趋势。由于 b s 实现难度较大,目前的一些成果实现,也主要基于c s 结构。因此,对这一领 域的研究有着较大的空间和广阔的前景。 1 4 课题所要研究的内容 4 第一章绪论 本课题的目的是研制一套基于b s 模式的c 语言考试及自动评分系统。该系 统将在b s 模式下,实现自动组卷、考试和自动阅卷的等功能。 对于自动组卷部分,首先是要进行题库设计。系统将根据各类试题的题型和 所属知识点,设计试题数据库结构和试题存放形式。并且可根据学生类型和教师 要求,以适当的组卷算法,高效地生成题量适当和难度合理的试卷。 对于考试部分,主要是研究如何设计友好的考试界面和进行考试管理控制, 使考试能顺利完成。对于主观性试题,系统需提供方便的编程环境切换方式和调 试信息换取方式。同时,系统还研究对考试计时和意外情况的处理方法。 自动评分部分,是本系统的关键部分。对于判断题、选择题和填空题等客观 和半主观题,可利用现有成熟的评分方法进行研究和设计。而程序设计题的评分 方法是本系统研制的重点和关键。对程序设计题进行自动评分主要包括两个方面: 一是检查结果的正确性,确保完全正确的程序获得满分;二是在程序存在错误的 情况下,根据考生程序的正确程度给出一个合理的分数,避免极端、不合理分数 的出现。通过研究分析,本系统主要存在以下几个方面的问题需要进行深入研究: 1 在b s 模式下实现对c 语言程序题的自动阅卷是否可行? 2 在系统研制中,如何实现对正确程序的判断? 3 如何实现对部分正确程序的正确程度判断,给出合理判分? 1 5 课题中的难点和解决方法 本系统的研制存在两大难点,即构建合理有效的考评系统和在b s 模式下实 现系统。 1 5 1 考评系统的构建 首先是如何构建合理有效的考评系统。对于判断题、选择题和填空题等客观 和主观性较低的题型,可采用现有成熟的评分方法进行研究设计。对于程序题, 按结果评分也比较容易实现。但对于部分正确的程序,包括编译不能通过、输出 结果不正确或无结果的程序,如何对其正确程序进行正确判断,给出合理的判分 则是本课题中难点。 解决上述问题,可首先使用t u r b oc 的编译命令t c c ,编译运行考生程序, 然后进行结果对比。对于不能编译通过的程序,如果直接使用t c c 的语法检查的 电子科技大学硕士学位论文 错误提示信息进行评分,会存在相当大的问题,因为t c c 的语法错误信息,往往 是相关联的,即一个错误常会给出连带的多条语句的错误提示或警告( 比如缺少 一个# i n c l u d e 的宏命令语句) 。为此,需自行设计c 语言的编译器,该编译器除了 具有词法分析、语法分析等功能外,还能对考生程序常见错误进行分析并修改的 功能。 经过大量的分析研究和试验,我们在系统中设计了结果对比、修复编译评分、 关键代码对比相结合的评分方法,实现对程序设计题的评分。 通过大量的试验和测试,上述评分方法,虽然做不到的完全合理,但已经能 对考生程序做出比较合理的评判。其评判的分数,绝大多数时候与人工阅卷的分 数相近,具有较高准确性。考虑到人工判分的主观因素带来的误差,这种方法已 是一种比较合理准确的判分方法。相对与只按结果评分的方法,其进步是非常明 显的。 1 5 2b s 模式下系统的实现 b s 模式相对c s 模式,具有很大的优势。但是,b s 模式也存在客户端的计 算能力得不到充分发挥,在联机事务处理方面支持也不够;表现手法不如c s 丰 富,功能弱化,难以实现传统模式下的特殊功能要求。故相对而言,对于b s 模 式的考试系统,其自动阅卷尤其是主观性很强的程序设计题自动阅卷,实现的难 度更大。也是正因为如此,目前的一些成果实现,也主要基于c s 结构。 经过探索研究,在系统开发时采用m ss q ls e r v e r 的扩展存储过程 x pc m d s h e l l 和c c + + 高级语言的相配合的方式解决的此问题。具体方式是用高 级语言编写相关的处理程序并置于后台服务器。对考生程序进行评分时,通过s q l s e r v e r 的x pc m d s h e l l ,调用t c c 及其它处理程序对考生程序进行编译运行等处 理,得出评分结果并返回系统。 6 第二章系统综述 2 1 用户需求与系统目标 第二章系统综述 弟一早 承现综怂 本系统将投入实际教学工作中,一方面,用于对c 语言程序设计课程的考核 和评阅工作;同时,也为c 语言教学网站提供一套完备的自我测试系统,对c 语 言的教学辅导和学生自主学习提供更好支持。 根据c 语言程序设计的课程特点和用户需求,本系统共设计了判断题、选择 题、程序阅读题、程序填空题以及程序设计题,以对学生的理论知识和实践技能 的全面考核。针对四类不同试题,系统将实现从组卷、考试到评分的全部自动化。 同时考虑不同用户的需求和对传统习惯的兼容,在本系统中也保留手工组卷和人 工阅卷的方式。 应用本系统进行考试,教师先根据考生情况设定试卷难度系统和考试范围等 参数。依据这些参数,系统在考生进入考试系统时根据组卷算法对每一位考生均 生成一份不同的试卷。通过参数组卷可以实现考试难度相同的情况下考生试卷的 互异性。这样减少了作弊现象的发生,保证了考试的公平性。根据用户要求,本 系统也保留了所有考生试卷相同的组卷方式。 开始考试后,系统通过屏幕用人机交互的方式引导学生完成答题,还提供考 试计时和异常中断恢复等功能。对于程序设计题,考试系统除了提供方便的考试 界面与编程语言的环境切换外,系统为考生提供在网页中编译调试程序的功能。 考试结束后,系统能对考生所做试题进行自动阅卷评分。对于判断题、选择 题、程序阅读题和程序填空题,能根据考试答案给出准确分数。对于程序设计题 的评分目标是: 1 根据程序结果判断考生程序是否完全正确; 2 对于存在错误的考生程序,能够找出其中的常见语法错误并进行修正; 3 使修改的程序在系统控制下运行,获取其运行结果进行判断; 4 对于修改后仍有错误的程序使用关键字对比的方法给出比较合理分数; 5 系统能处理由考生程序死循环引起的异常。 除了上述考试和阅卷功能,为了适应多种教学和用户的需要,系统还提供教 师管理、学生管理、考试管理和公告管理等多种功能。 7 电子科技大学硕士学位论文 2 2 指导思想和可行性研究 本系统为b s 架构,客户端仅为一浏览器。服务器端考虑到易于部署,采用 w i n d o w s2 0 0 3s e r v e r + i i s + a s p 框架,以d r e a mw e a v e r 进行静态页面的制作, d h t m l 、j a v a s c r i p t 、v b s c r i p t 进行动态网页的制作,后台数据库采用s q ls e r v e r , a s p 技术实现w e b 站点与数据库的动态连接。系统考试界面和管理界面参考现有 成熟的考试系统软件。 试卷组成的主要方法主要采用随即抽题的方式,保证不同学生试卷不同。同 时为了保证同次考试试卷的范围一致和难度相同,系统采用的方案是由管理者( 命 题教师) 提供统一的试卷参数( 包括考试难度系数、试题题型及数量等) ,在考生 进入考试系统时系统根据组卷算法从题库中为每一位考生抽题生成一份互不相同 的试卷。考虑到对传统习惯的兼容和某些特殊情况的需求,系统还保留由命题教 师指定具体试题组成试卷的方式。 考虑系统将面对不同的用户,因此题库设计为具有高度灵活和扩展性。本系 统除了题型相对固定外,题库类所有试题可由实际使用的用户进行补充、删除和 修改。所以试题是按章、节、知识点和难度系数设定属性。而章、节和知识点可 由用户自身所授课程情况进行更改、删除和添加。试题难度系统也是用户在录入 试题时设定。 系统的自动评分系统功能是通过对不同类型的试题设计合理的评分算法来实 现。 对于判断题和选择题,采用简单的结果比较即可。只要所选答案与正确答案 一致,即可得分,否则不得分。 对于阅读程序写结果的题,由于程序运行结果是唯一,因此采用可直接采用 字符串比对的方法。相符得分,不同则不得分。 对于程序填空题,必须考虑到可能有较多形式的答案和空数都不唯一的情况。 对于形式多样的问题,采用了穷举的方法,让考生答案与标准答案穷取出来的形 式逐一对比。对于空数不唯一的情况,则采用了循环对比的方法,只要题库试题 形式按系统标准存入,有效性接近客观题水平。 程序设计题灵活性较大,评分方法最为复杂,也是评分系统解决的关键性问 题。在确定编程题评分目标后,我们采用如下方法实现: 1 通过运行结果对比判断程序是否正确。 事先对程序题设计输入数据文件,利用存储过程调用t c c 对考生程序文件进 1一 第二章系统综述 行编译、运行,把考生程序输出结果与标准答案作对比的相似度对比。对于结果 对比完全正确的,给予全分。否则进入下一步。 2 通过词法语法检查和程序修改,对于没输出结果的考生程序进行处理 没输出结果的c 语言程序是由两种错误造成:语法错误或者死循环。处理的 方法是开发具有常见错误处理功能的c 语言编译器,对该程序进行词法分析和语 法分析,并对错误进行修改,以便程序得以运行。如果修改后的程序运行结果正 确,则在全分的基础上根据修改的情况给予合理扣分。 3 通过关键代码对比,对分数较低的程序进行处理 对于第一步和第二步中输出结果对比分数较低甚至是极端的0 分情况,阅卷 系统还会根据考生程序中的关键代码适当给分。方法是在系统的编程题题库中存 储的一些正确的关键代码,则检测其程序中的关键代码数量判断其程序的算法合 理性,给出一个较合理的分数。关键代码比较通过使用正则表达式以实现通用性。 4 使用双线程解决死循环的问题 一个陷入死循环的考生程序,不但会无穷运行下去,并且会占用较多的c p u 资源。本系统采用c + + 多线程编程的技术和调用a p i 函数,在考生程序运行时使 用双线程,一个线程执行考生程序,另一个线程执行计时程序。当考生程序执行 的超时时就由计时程序强制夺回控制权并立刻退出程序。 2 3 系统实现的开发工具、语言及方法 2 3 1 网站开发工具和语言 本系统以d r e a m w e a v e r 进行静态网页的制作,用j a v a s c r i p t 、v b s c r i p t 进行动 态网页的制作,后台数据库采用s q ls e r v e r ,用a s p 技术实现w e b 站点与数据 库的动态连接。 2 3 1 1d r e a m w e a v e r 的特点 d r e a m w e a v e r 是一款专业的h t m l 编辑器,用于对w e b 站点、w e b 页和w e b 应用程序进行设计、编码和开发。d r e a m w e a v e r 的设计和整合功能以c s s 为基础, 强大而稳定,可帮助设计和开发人员轻松地创建并管理各类站点。 d r e a m w e a v e r 提供的可视化编辑环境,利用它开发人员可以快速创建w e b 页 面而无须编写任何代码,也可查看所有站点元素或资源并将它们从己使用的面板 直接拖到文档中。可以在m a c r o m e d i af i r e w o r k s 或其它图形应用程序中创建或编辑 9 电子科技大学硕士学位论文 图像,然后将它们直接导入d r e a m w e a v e r ,从而优化开发工作流程。d r e a m w e a v e r 还提供了其他工具,可以简化向w e b 页中添加f l a s h 资源的过程 2 9 1 。 2 3 1 2a s p 和a d o a s p ( a c t i v es e r v e rp a g e ) 是目前非常流行的开放式w e b 服务器应用程序开发 技术,它内嵌于i i s ( i n t e m e ti n f o r m a t i o ns e r v e r ) ,不需要安装即可直接使用。它 能很好地将脚本语言( 如j a v a s c r i p t 、v b s c r i p t ) 、h t m l 和数据库结合在一起,创 建网络中各种动态应用程序 a s p 具有以下特点: 1 a s p 语言不需要进行或链接就可直接运行,并整合在h t m l 中。 2 无需特定的编辑软件。 3 使用一些相对简单的脚本语言如j a v a s c r i p t 、v b s c r i p t ,结合h t m l 即可 完成网站的制作。 4 使用a s p 编辑的源程序不会外漏,可确保源程序的安全。 5 a s p 采用了面向对象的技术。 a d o ( a c t i v ed a t ao b j e c t s ,a c t i v e x 数据对象) 是微软公司提供的使a s p 具 有访问数据库功能的构件。他是一项容易使用并可扩展的将数据库访问添加到w e b 页的技术。可以使用a d o 去编写紧凑简明的脚本,以链接到与o d b c 和o l ed b 兼容的数据源。 2 3 1 3 网页脚本语言j a v a s e r i p t 和v b s e r i p t j a v a s c r i p t 和v b s c d p t 是用于网页编程的脚本语言,它们结合h t m l 语言, 可快速地完成网站应用程序的开发。 脚本语言( j a v a s c r i p t 、v b s e r i p t 等) 介于h t m l 和c ,c + + ,j a v a ,c j f i 等编 程语言之间,使用一种特定的描述性语言,比较简单,多为解释执行,通常可以 由应用程序临时调用并执行,目前被广泛应用于网页设计中。 j a v a s c r i p t 语法上与j a v a 很相似,但两者是不同的语言。j a v a s c r i p t 仅是一种 嵌入到h t m l 的描述语言,以解释方式执行,不编译产生机器代码。j a v a s c r i p t 的特点是: 1 j a v a s c r i p t 是一种基于对象的语言,同时也可看作一种面向对象的语言。 2 j a v a s c r i p t 是一种安全的语言,不允许访问本地硬盘,不能将数据存入到服 务器,不允许对网络文档进行修改和删除,仅允许通过浏览器实现信息浏览或动 1 0 第二章系统综述 态交互,可有效防止数据丢失。 3 j a v a s c r i p t 具有跨平台性。它依赖于浏览器本身,与操作环境无关,只要浏 览器支持j a v a s c r i p t ,计算机就能正确运行j a v a s c r i p t 程序。 v b s c r i p t 是v b 的一个子集,容易掌握使用。它源自于v b ,因此也具有v b 的一些特点。v b s c r i p t 目的是为了加强h t m l 的表达能力,提高网页的交互性, 增强客户端网页上的数据处理与运算能力。v b s c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合伙贷款协议书范本
- 大学生职业规划大赛《生物工程专业》生涯发展展示
- 员工消防考试题及答案
- 银行面试题目及最佳答案
- 医疗国企面试题及答案
- 透析导管护理规范与实施要点
- 央企银行面试题目及答案
- 烟草专卖法律试题及答案
- 学位水平计算机测试题及答案
- 许昌公务员考试题及答案
- 2025年财务会计师入职考试试题及答案
- 安徽省1号卷A10联盟2025届高三5月最后一卷地理试题及答案
- 仓库定置目视化管理
- 2025年5月12日陕西省公务员面试真题及答案解析
- 2025-2030中国海上风电行业市场深度调研及投资策略与投资前景研究报告
- 工程经济课件
- 变电站值班员-中级工考试模拟题及参考答案解析
- 2024年西双版纳州景洪市事业单位选调工作人员笔试真题
- 2025-2030中国活塞杆行业市场发展趋势与前景展望战略研究报告
- 浙江省绍兴市柯桥区2025年5月统考英语试题试卷含解析
- 健康理疗室管理制度
评论
0/150
提交评论