已阅读5页,还剩74页未读, 继续免费阅读
(计算机应用技术专业论文)自动阅卷系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西华大学硕士学位论文 自动阅卷系统的研究 计算机应用技术专业 研究生张冰指导老师潘世永 随着教育事业的发展和计算机教育的普及,教师的工作量将越来越大。因 此计算机考试程序设计题自动阅卷技术的研究与实现在计算机考试和教育 领域都有十分重要的实际意义。 本文重点放在操作题和程序题的解决上。在操作题中,针对e x c e l 应用操 作题,对单元格内容,单元格格式,公式与函数,工作表操作,数据分析和图表操 作评阅算法分别进行了研究。同时由于考生误操作等原因,考生的结果常出现 定位错误或连带错误而导致误判。我们设计合理的容错算法来进行分析,减少 误判。 w i n d o w s 上机操作试题的自动评判技术的难点在于监控并评判考生的 答题过程。“评判考生最后答题结果”的方法不能评判某些上机操作试题的正 确性。而利用w i n d o w s 系统提供的“文件系统变化通知”,就能达到“监控并评 判考生答题过程”的目的。 在对v b 操作题的自动评阅采用了动态评阅和静态评阅相结合的方法。 动态评阅即运行考生的程序,向应用程序发送模拟消息,使程序按照既定的策 略自动运行,通过比较运行结果给出分数。同时,如果题目中涉及控件属性的 设置或者考生的动态评阅的运行结果分数为零时,采用静态评阅的方法给出 相应的分数,保证了评分的合理性。 在对v f 的操作题中,根据v f 中大多数文件是以d b f 的形式存放的,同 时可以用v f 提供的数据表操作命名来判断考试对题目的完成正确性。 最后对c 语言程序题的评分方法进行了研究,在比较结果的评分方法基 第1 页 西华大学硕士学位论文 础上,设计了动态评阅与静态评阅相结合的方法,评分结果更加公正、准确。 对于只有少量错误的考生程序,应用编译原理中的分析方法,通过动态找错及 改错,使其在系统监控下运行,从而可根据结果信息及错误信息进行评分,解决 了多数考生因编程中的很小失误而导致大量丢分的问题。而对于错误严重或 结果不正确的程序,通过静态检查,可根据程序中的关键语句数给出相应分数, 使评分结果更加接近于人工阅卷。 关键词:单向贴近度,动态调用,自动阅卷 第1 i 页 西华大学硕士学位论文 a u t o m a t i c s c o r i n gs y s t e m c o m p u t e ra p p l i c a t i o nt e c h n i q u e m d c a n d i d a t e :b i n gz h a n gs u p e r v i s o r :s h i y o n gp a n w i t ht h ed e v e l o p m e n to fe d u c a t i o na n dc o m p u t e re d u c a t i o n ,t h ew o r k l o a d o ft e a c h e r sw i l lb em o r ea n dm o r e t h e r e f o r e ,t h er e s e a r c ha n di m p l e m e n t a t i o n o f c o m p u t e r e x a m i n a t i o n p r o g r a md e s i g ns u b j e c ta u t o m a t i c s c o r i n g t e c h n o l o g yh a v eas i g n i f i c a n tm e a n i n gf o rc o m p u t e re d u c a t i o nf i e l da n d c o m p u t e re x a m i n a t i o nf i e l d ,a n da l s oi so n eo ft h ek e yi s s u e st h a tm u s tb e r e s o l v e dt oa c h i e v ep a p e r l e s sc o m p u t e re x a m i n a t i o n s t h i sp a p e rf o c u s e so nt h es a l v a t i o no f o p e r a t i o ns u b j e c ta n dp r o g r a m m i n g s u b j e c t i no p e r a t i o ns u b j e c t ,f o c u s i n go nt h ea p p l i c a t i o no fe x c e l ,s e p a r a t e l y s t u d yo nt h ec o n t e n to fc e l l ,t h ec e l lf o r m a t ,f o r m u l aa n df u n c t i o n ,s h e e to p e r a t i o n , d a t aa n a l y s i sa n dc h a r t sm a r k i n g a tt h es a l t l et i m e 嬲c a n d i d a t e sm i s u s ea i l d o t h e rr e a s o n s ,t h e r ei sa l w a y st a r g e t i n ge r r o ro rm i s j u d g m e n tc a u s e db ye r r o r s a s s o c i a t e di nt h er e s u l to ft h e c a n d i d a t e s w ed e s i g n e dt h ef a u l t t o l e r a n t a l g o r i t h m st oa n a l y z ea n dr e d u c em i s j u d g m e n t t h ed i f f i c u l t yo fa u t o m a t i c a l l ye v a l u a t i o nt e c h n o l o g yf o rw i n d o w so nt h e m a c h i n eo p e r a t i n gs u b j e c tl i e si nt h ep r o c e s so fm o n i t o r i n ga n de v a l u a t i o no f c a n d i d a t e s a n s w e r s t h em e t h o do f e v a l u a t i o no fc a n d i d a t e s f i n a la n s w e r s c 锄 n o tb eu s e dt oj u d g et h ea c c u r a c yo f m a c h i n e o p e r a t i o ns u b j e c t h lt h ev bp r o g r a m ,a u t o m a t i ce v a l u a t i o ni sb yc o m b i n i n gt h em e t h o do f d y n a m i cm a r k i n ga n ds t a t i cm a r k i n g d y n a m i cm a r k i n gn a m e l yi st o r u n c a n d i d a t e s p r o g r a m ,s e n d i n gs i m u l a t i o ni n f o r m a t i o nt ot h ep r o c e d u r e sa p p l i e d , m a k i n gt h ep r o c e d u r er u na u t o m a t i c a l l yi na c c o r d a n c ew i t ht h ee s t a b l i s h e d 第1 l i 页 西华大学硕士学位论文 s t r a t e g y , a n db yc o m p a r i n gt h er e s u l t s ,g i v es c o r e s a tt h es a m et i m e ,i ft h e s u b j e c ti n v o l v e dc o n t r o la t t r i b u t e ss e to rt h ed y n a m i cm a r k i n go ft h ec a n d i d a t e s r u n n i n gr e s u l t ss c o r ei sz e r o ,t h es t a t i cm a r k i n gm e t h o di sa d o p t e dt og i v e c o r r e s p o n d i n gs c o r e s ,e n s u r i n gt h ec o n s i s t e n c yo fs c o r i n g hv f o p e r a t i o no ft h a t ,a st h em a j o r i t yo fd o c u m e n t sa r cs t o r e di nt h ef o r m o fd b f ,w ec a nu s et h ed a t at a b l ep r o v i d e db yv ft oj u d g et h ea c c u r a c yo ft h e s u b j e c t f i n a l l y , s c o r i n gm e t h o do fcl a n g u a g ep r o g r a ms u b j e c ti ss t u d i e d ,o nt h e b a s i so fs c o r i n gm e t h o do fc o m p a r i n gr e s u l t s ;w e v ed e s i g n e dt h em e t h o do f c o m b i n i n gd y n a m i ca n ds t a t i cm a r k i n gt oe n a b l es c o r i n gr e s u l tb e i n gm o r ej u s t a n da c c u r a t e f o rt h o s ec a n d i d a t e sw i t ho n l yas m a l la m o u n to ft h em i s t a k e s , a p p l y i n gc o m p i l e rp r i n c i p l e so ft h ea n a l y s i sm e t h o d ,a n dd y n a m i cm i s t a k e f i n d i n ga n dc o r r e c t i n gt o r u nt h es y s t e mu n d e rc o n t r o l ,s ot h a tw ec a ns c o r e a c c o r d i n g t ot h er e s u l ti n f o r m a t i o na n de r r o ri n f o r m a t i o ni n t h i sw a yw ec a n r e s o l v et h ep r o b l e mo ft h em a j o r i t yo ft h ec a n d i d a t e sf o rp r o g r a m m i n gi nal a r g e n u m b e ro fs m a l lm i s t a k e sa n dl o s tp o i n t s f o rs e r i o u se r r o r so ri n c o r r e c tr e s u l t so f t h ep r o c e d u r e s ,a d o p ts t a t i ci n s p e c t i o n ,a c c o r d i n gt ot h en u m b e ro ft h ek e yw o r d s i nt h ep r o c e d u r e sg i v i n gc o r r e s p o n d i n gs c o r e s ,m a k i n gi tc l o s e rt ot h er e s u l t so f m a n u a lr e a d i n g i nt h ep r o c e s so f s y s t e md e s i g n ,ia t t a c hg r e a ti m p o r t a n c et ot h e s o f t w a r e su t i l i t ya n dr o b u s t n e s s p r e l i m i n a r ye x p e r i m e n t a lr e s u l t sh a v ep r o v e d t h a ta u t o m a t i cs c o r i n gm o d u l er u ns t a b l ya n ds c o r i n gs t a n d a r dc a nb eu n i f i e d k e yw o r d s :o n e w a yi n c l i n a t i o ne x t e n t ,d y n a m i ci n v o c a t i o n ,a u t o m a t i cs c o r i n g 第页 西华大学硕士学位论文 声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取 得的研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得西华大学或其他教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均已在论文中作了明确的说明并表示谢意。 本学位论文成果是本人在西华大学读书期间在导师指导下取得的,论文 成果归西华大学所有,特此声明。 作者签名:薪) 水粥年朔垆 导师签名: 第7 4 页 乜慕d 释n i 菇 西华大学硕士学位论文 第1 章绪论 i 1 课题国内外现状和发展趋势 目前,计算机课程的教育已基本普及,但是计算机课程不仅是- - l - j 技术更 新快、信息量大的课程,同时也是一门实践性强的课程,这给教学和考试带来 很大的难度,许多高校开发出自己的教学和考试系统,改变传统的教学、考试 方法和手段,除利用现代多媒体等新兴的教学手段外,将考试全部改为上机考 试,取得了很好的效果。但是,也存在很多问题,其中较为突出的问题是机试阅 卷,在这方面一直没有一个较好的、完整的、适应面宽的系统上市,这主要是 由于上机考试的环境比较容易建立,可以完整地收集考生的答题结果,但题目 形式多种多样,学生答案也各不相同,因此自动阅卷难度很大,许多系统均采用 客观题由计算机来判别给分,主观题由教师评阅给分,给教师带来大量的额外 工作量。程序修改题和填空题中还应注意考虑原程序作者的思路,所作改动应 尽量小。因为出题者给出的答案数是有限的,考生的答案如果出了出题者所给 的范围,正确也被当作错误来处理了。这样不能发挥考生的创新能力【5 】。因此, 自动阅卷系统对尽可能智能化评分是现在研究的一个重点,也是一个难点。 1 2 课题研究目的和意义 考试是教学全过程的一个重要环节,如何利用计算机把握好考试的质量, 提高考试的效率,把教师从繁琐的手工劳动中解放出来,是教学改革的一个重 要方面。随着各高校的扩招,许多高校师资力量严重匮乏,如果不能将教师从 繁琐的手工重复劳动中解脱出来,对于提高教学质量和效率是非常不利的,高 等学校作为为社会培养高级人才的基地,有义务和责任对本身教学的内容、手 段和方法等进行全方位改革,给学生一个现成的利用计算机技术分析问题、解 决问题的实际案例,以便适应信息社会的发展【2 】。 i 考试管理信息化得以全面实现 利用自动阅卷系统实现客观题自动阅卷和主观题计算机阅卷,可免去了 人工评卷或客观题自动阅卷而主观题人工阅卷所带来诸多麻烦,使学校的考 第l 页 西华大学硕士学位论文 试管理乃至教学管理信息化得到了全面实现。 2 提高了考试阅卷的效率和质量 评卷教师无需来回搬动或翻阅试卷,只要点击鼠标即可完成阅卷工作,且 无须流水线上的中间等待,使阅卷效率提高几倍以上【2 6 】。 3 减轻评卷教师的工作负担 提高效率也即减轻了工作量,特别是评卷完成后系统具有的按照预先设 定的格式自动生成各种统计分析报告的功能,更是省去了评卷教师大量的统 计分析时间,有利于教师把更多的时间和精力集中于教学与管理。 4 为学校教学管理提供科学的决策依据 利用自动阅卷系统完成考试评卷工作,将使得评卷的标准化和规范化操 作得到了有效的保证。系统快速、准确、完整、统一地自动生成的考试情况 分析报告也将为学校的教学管理决策提供科学依据【2 0 】。 1 3 课题的可行性分析 1 计算机考试题型分析 计算机考试有其自身的特点,大多计算机考试一般通过以下几种题型考 察学生对计算机能力的综合掌握程度【3 】。 ( 1 ) 选择题考察学生对基本概念的掌握程度,覆盖知识点较多。 ( 2 ) 填空题包括录入速度测试题,考察学生对知识掌握的精确度。 ( 3 ) 应用题要求考生用w o r d ,e x c e l ,p o w e r p o i n t 软件按照一定要求完成一 个已有文档的排版、表格的绘制、幻灯的制作等,考察学生综合应用能力。 w i n d o w s 应用操作题,一般是对文件和文件夹进行操作。 ( 4 ) 操作题,程序界面、属性、控件事件、运行结果符合要求。以上判断标 准带有很强的普遍性,我们认为符合以上条件的就是一个正确的程序,反之则 认为是一个有问题的程序,从阅卷的角度来讲,以上四条就是我们的评分标准 ( 5 ) 程序题根据要求,编制( 或部分编制) 一个源程序,并进行编译、调试、 连接及运行,得到正确结果。 2 计算机考试题型结果分析 对于大多数考试系统,针对以上几种题型,考试结果一般分为几个文件: 第2 页 西华大学硕士学位论文 ( 1 ) 选择题为一个文本文件,文件一般以固定格式文件存放答案。以匹配的 方式进行比较。 ( 2 ) 填空题一般也是可以对答案的多种可能进行列举和考生答案进行比 较。 ( 3 ) 应用题操作题,对于综合应用题为w o r d ,e x c e l ,p o w e r p o i n t 题目:从题 型分析中可以知道,这类题目的考试一般考察考生对基本的排版工具的掌握 情况,m i c r o s o t t 公司提供了丰富的编程接口用来判断文档的属性,从而实现自 动查看考生对文档的修改结果,可以借助v b a 对其进行操作和判断【1 4 】。 w i n d o w s 应用操作题,一般也可以利用w i n d o w s 系统提供的“文件系统变化 通知”,就能达到“监控并评判考生答题过程”的目的。主要研究了e x c e l 和 w i n d o w s 应用操作题中的难点。 ( 4 ) 在操作题方面,主要研究了v b 和v f 的操作题。 对于v b 的操作题: 1 如何判断界面,控件及相关联事件通常是两种思路,一是在程序运行时 通过w i n 3 2a p i 直接查看窗口及控件信息,以此为基础进行判断;二是在程序 运行之前通过源程序文件进行判断两种方法各有优劣。 2 如何对程序的运行情况进行测试从软件工程学的角度来讲,测试一个 程序可分为白盒法与黑盒法两种,就目前而言,我们的思路偏重于黑盒法i 贝4 试。程序的最终结果是最主要的判断依据,而程序内部的逻辑和程序复杂度等 并不是我们所要判断的。我们所要面临的问题是如何将测试数据自动传给 v b 程序,以及如何对v b 程序的输出进行检验。我们的做法是通过w i n 3 2 的m e s s a g e 机制及在v b 源程序中嵌入测试代码,众所周知,w i n d o w s 通过 m e s s a g e 来控制应用程序,每一个用户输入都会被系统转换为m e s s a g e 传到 应用程序,我们所要作的就是模拟用户输入所产生的m e s s a g e ,将m e s s a g e 传 递到对应的控件窗口,以此达到控制程序输入的目的,而要得到程序的运行结 果,则要在原有的v b 源程序中嵌入相应的测试代码,在适当的时刻,得到所要 判断的控件的状态参数,在程序运行时不断将参数传入临时数据文件,从而完 整地记录下程序运行时的每一个细节,供系统进行判断。 对于v f 的操作题: 第3 页 西华大学硕士学位论文 v f 的操作题考试题型主要有基本操作、数据库操作、设计查询和视图、 设计菜单、设计表单等几项,其中基本操作含项目管理器的使用、数据表的编 辑和索引的建立等。利用v i s u a lf o x p r o 的许多文件都是以d b f 表格文件的 形式存在的这一特点。只要弄清楚这些表的结构和含义,就可在其中进行搜索 并判断考生的完成情况了。而且数据表的编辑可以直接用v i s u a l f o x p r o 提 供的操作、统计等命令。所有可以判断出考生的完成情况。 ( 5 ) 程序题方面,主要研究了c 语言程序题的自动阅卷。 对于程序设计题,由于我们的目标是评判考生程序的正确性,也就是说我 们在进行程序评判之前已经完全知道程序应该具有什么样的功能。所以,我们 确定了程序题评分的目标是: 1 根据程序运行结果判定考生程序是否完成题目要求; 2 对于存在语法错误的考生程序,能够找出其错误并可对其进行改正; 3 使修改正确的考生程序在系统的控制下运行起来,获取其运行结果,验 证其逻辑合理性: 4 运行考生程序时应能避免由于死循环引起系统崩溃; 5 经修改仍有错误的程序应能根据逻辑合理性给出较合理的分数。 程序设计题的评分最为复杂,在确定了程序题评分目标后,我着重从以下 四个方面进行了考虑: 1 通过运行结果判定程序功能是否实现我们要判断一个程序是否正确。 就是要看其是否完成了要求的功能,即程序的运行结果是否与实际应有的结 果相符。c 程序的运行结果是可以通过数据文件保存起来的,因而只要我们合 理设计考题源程序中的部分内容,即在程序中指定程序结果的存储文件,则在 考生答题结束后,我们即可依据该结果文件中的内容是否与标准答案相符来 判定考生程序的正误。标准答案文件可在抽取试题时同时生成。 2 采用“以程序改程序”的方法对错误的考生程序进行评改,使其趋于正确 c 语言源程序文件是扩展名为c 的文本文件,可被作为普通文本文件一样进 行读写处理。一个没有运行结果的程序不外乎两种情况,或是有语法错误,或 为死循环。针对前者,我们可以采用词法分析及语法分析方法进行处理。词法 分析和语法分析任务有两个,一是找错,即要尽可能地找出程序中的词法及语 第4 页 西华大学硕士学位论文 法错误,生成错误文件;二是改错,要将发现的每一处错误尽最大可能修改正确, 以便程序得以运行。编译原理讲述了开发高级语言编译器的一整套原理和方 法,我们可以借鉴这些原理和方法,结合c 语言自身的特点设计出详实的改错 算法。 3 在程序中编译运行修改后的考生程序 编译器的设计是相当复杂而繁重的工作,由少数人在短期内去开发一个 全新的编译器是不现实也是不可能的。t u b r oc 提供有行编译命令t c c e x e , 其使用方法类似于一般的d o s 命令,可以将c 程序直接编译为目标代码和可 执行程序。据此,评分程序可在v s i u a lb a s i c 中借助s h e l l 函数调用t c c 命令 程序,从而对考生程序进行编译。通过检查编译结果即可执行文件是否生成, 可判定考生程序是否正确。可执行文件为e x e 文件,可作为外部程序被其它 程序所调用。若可执行文件生成正确,可再通过s h e l l 函数调用可执行文件使 考一生程序得以运行。 4 用a p i 函数防止系统崩溃,如果考生程序为一个死循环程序,被s h e l l 启 动后将使系统陷入崩溃。w i n d o w s 提供有很多控制应用程序运行的a p i 函数。 为防止此种情况发生,可利用v i s u a lb a s i c 调用相应的a p i 函数来处理。 5 通过合理设计关键语句,检验考生程序的逻辑准确性对于运行结果不正 确,或经过评改仍无法运行的程序及死循环的程序,如何评阅以给出较合理的 分数呢? 这个问题其实就是要检验程序的逻辑合理性。一个可用多种方法编 制的程序,由于其功能是确定的,因而其所采用的基本算法应是一致的。如求l 至1 0 0 的和,则不论用哪种循环语句,其基本算法都应是累加求和。考虑在给 出的考生源程序中,可事先设定好存放结果的变量,并对程序中其它变量的命 名加以适当规定,如循环变量必须使用i 、j 、k 等。经过这样的设计,使得试题 程序中存在有部分确定的关键语句。在编程题的题库文件中,我们可事先存放 好正确的关键语句,评分时通过查找考生程序中这些关键语句的数量,即可给 出相应的较合理的分数。 由于本系统主要用于对在校学生c 语言基础应用能力的考核,要求考生 编制的源程序均不是很复杂,因此经过上述一系列的评改方法,本系统对考生 程序是能够给出一个较合理的考试分数的。与以往以结果论成败的评分方法 第5 页 西华大学硕士学位论文 相比,本系统给出的评阅结果将更加接近于人工阅卷的结果。 第6 页 西华大学硕士学位论文 第2 章相关技术和关键字解释 2 i 单向贴近度 把一个宇符串分解为单个字符,把它们构成的有序集合称为一个模糊 集,u - ( u 1 ,u 2 ,u 3 ,u n 称为论域,论域u 上的全体模糊r 集所组成的集 合记作f ( 功也叫模糊幂集为度量两模糊集的接近程度,引入单向贴近度的概 念【7 1 。 定义1 :设u - 【ui ,a2 ,a3 ,u n ) ,a ,b 属于f ( u ) 。若映射d :f ( u ) x f o j ) 一 y 0 ,1 】; 满足条件: ( 1 ) d ( a ,a ) = 1 ( 2 ) d ( b ,b ) = l ( 3 ) 若a 包含于b 包含于c 或a 包含b 包含c ,则d ( a ,b ) = d ( a ,c ) 称 d ( a ,b ) 为a 贴近于b 的单向贴近度。 定义2 :设a 、b 是字符串,a 中包含n 个字符,d ( a ,b ) 表示a 贴近于b 的 单向贴近度,按照从左到右的顺序,集合a 中的每个元素在集合中出现的有效 次数和记为m ,则d ( a ,b ) - - m n ,容易验证,它满足单向贴近度的定义。 为说明方便,以字符串s 1 和s 2 为例介绍计算字符串s 1 贴近于字符串s 2 的单向贴近度d ( s i ,s 2 ) ,步骤如下: ( 1 ) 把查找字符串s 1 分解为单个有效字符。 在分解前,首先判断左边第一个字符是双字节字符还是单字节字符,如果 是双字节字符按2 个字节截取,如果是单字节字符则按1 个字节截取,把字符 串s 1 分解为若干个有效字符u l ,u 2 ,u n 。 ( 2 ) 判断s 1 分解后的单字符是否包含在被查询的字符串中。 这里假定所要查找的字符串分解前和分解后是有顺序的,所以不能简单 地使用是否包含来判断。本文的做法是:判断第一个字符u l 是否包含在字符 串s 2 中,如果不包含则标记为o ,否则标记为1 ,并从s 2 中去掉包含u 1 的字符, 对s 2 进行第二个字符u 2 的相同处理,一直把u l ,u 2 ,u n 判断完毕。 ( 3 ) 计算单向贴近度d ( si ,s 2 ) 。 第7 页 西华大学硕士学位论文 计算s 1 分解后的单字符u l ,u 2 ,吼在s 2 中出现的次数之和m 占s l 总有 效字符数n 的比值,并记为d ( s i ,s 2 ) 。 2 2 对v b 程序编译的实现 短时期内开发的编译器很难对用户程序考虑全面,保证获取结果的正确 性,因此系统借用v b 编译环境对用户程序采用语法检查。 2 3 对用户程序控制的实现 在对v b 程序进行自动评阅时,我们并没有在操作系统w i n d o w s 平台上直 接运行用户的应用程序,而是借助v b 集成开发环境来编译用户工程文件,模 拟启动热键f 5 ,将用户程序作为v b 继承开发环境的子进程运行。因此,对用 户程序的控制也就转化为对v b 集成开发环境的控制。 ( 1 ) 进程机制控制 1 ) 加载v b 6 0 和应用程序:调用c r e a t c p o r c c s s 系统函数启动v b 环境和用 户程序,并保留v b 应用程序句柄。 2 ) 退出v b 6 0 和应用程序:采用进程的方式控制,调用g e t e x i t c o d e p r o c e s s 函数获取v b 应用程序的正常退出环境,然后调用t e r m i n a t e p o r e e s s 函数退出 v b 应用程序及其所有线程。 优点:能够准确控制v b 6 0 和用户程序。程序标题、工程名称与句柄无关, 退出与启动进程一一对应,不会出现v b 挂起或者阅卷不能继续进行的情况, 不会导致系统崩溃。在用户程序陷入死循环或被零除等时,仍能够正确获得 v b 应用程序及用户程序的退出环境,及时关闭应用程序并释放被占用资源, 不会导致系统崩溃。c e r a t e p o r e e s s 函数的各个参数的说明如下: b o o l c r e a t e p r o c e s s ( l p c t s t rl p a p p l i c a t i o n n a m e ,执行模块名 l p t s t rl p c o m m a n d l i n e , 操作命令的参数 l p s e c u r i t ya t t r i b u t e sl p p r o c e s s a t t r i b u t e s ,进程的安全属性 l p s e c u r i t ya t t r i b u t e sl p t h r e a d a t t r i b u t e s , 线程的安全属性 b 0 0 lb l n h e r i t h a n d l e s , 继承的标志语句 第8 页 西华大学硕士学位论文 d w o r dd w c r e a t i o n f l a g s , 仓i j 建标志 l p v o i dl p e n v i r o n m e m , 新环境块 l p c t s t rl p c u r r e n t d i r e e t o r y ,当前路径名 l p s t a r t l 摩腑ol p s t a r t u p i n f o ,指向s t a r t u p i i v f o 的指针 l p p r o c e s si n f o r m a t i o nl p p r o c e s s l n f o r m a t i o n 指向p r o c e s s i n f o r m a t i o n 结构的指针 ) 在系统的具体实现时,编写了o p e n p o r j e c t 和c l o e s e p o r j e c t 函数,为类 j u d g e 的成员函数o p e n p o r j e e t 函数用来打开考生的工程文件,c l o e s e p o r j e c t 函数用来关闭考生的工程文件。 具体的实现代码及说明如下: v o i dj u d g e :o p e n p r o j e c t 0 一 p r o c e s s 。i n f o r m a t i o np r o c i n f o s t a r t u p i n f os t a r t l n f o m e m e s e t ( & p r o c l n f o ,0 ,s i z e o f ( p r o c l n f o ) ) ;初始化p r o c l n f o 为0 m e m s e t ( & s t a r t l n f o ,s i z e o f ( s t a r t l n f o ) ; 初始化s t a r t l n f o 为0 s t a r t i n f o c b = s i z e o f ( s t a r t l n f o ) ; i n t r e t ; a n s i s t r i n gc m d = v b f i l e n a m e + ”+ p r o j e c t f i l e n a m e r e t - - c r e a t e p r o c e s s ( n u l l ,c m d c _ s t r 0 ,n u l l ,n u l l ,n o r m a l _ _ p r i o r i t y _ c l a s s ,n u l l ,w o r k d i r c _ s t r 0 ,& s t a r t l n f o ,& p r o c l n f o ) ; 调用c r e a t e p r o c e s s 函数,打开考生的工程文件 i f ( r e t o ) s h o w m e s s a g e ( “p r o c e s sc r e a t ef a i l e d ! ”) 打开失败,显示出错信息 e l s e h l d e p r o c e s s = p r o c l n f o h p r o c e s s ; 保持建立的进程的句柄 第9 页 西华大学硕士学位论文 , v o i dj u d g e :c l o s e p r o j e c t o u n s i g n e dl o n ge x i t c o d e ; g e t e x i t c o d e p r o c e s s ( h l d e p r o c e s s ,& e x i t c o d e ) ; a p i 函数,获得一个已 中断进程的退出代码 i f ( t e r m i n a t e p r o c e s s ( h l d e p r o c e s s ,e x i t c o d e ) 一0 ) t e r m i n a t e p r o c e s s 为 a p i 函数,用来关闭进程 t h r o we x c e p t i o n ( “v b 进程关闭失败! ) ; h l d e p r o c e s s = n u l l ; h l d e w o n d o w 1 讯,l : 、 ) 在自动阅卷系统中,对用户程序保持强有力的控制,保证系统健壮性是非 常重要的,在用户程序出现各种错误时,阅卷软件必须能够自动关闭或杀死用 户程序,使阅卷继续正常运行。 2 4 获取当前窗体的实现 在考生程序运行后,需要获取当前窗口( 考生程序窗口) 的句柄。在 w i n 3 2 a p i 中,g e t a c t i v e w i n d o w 和g e t f o r e g r o u n d w i n d o w 都可以获取当前窗口 的旬柄,但是二者有差别。g e t a c t i v e w i n d o w 返回当前进程的活动窗口,而不是 系统的活动窗口,如果要得到用户正在激活的窗口,应该使用 g e t f o r e g r o u n d w i n d o w 。此外,没有使用通过标题获取窗口句柄的方法,是因为 如果窗体f o r m 的标题设置不正确,则该窗体内所有控件均搜索失败,也就是 如果对窗体f o r m 的标题设置不符,会导致大量丢失分数,不能客观反映用户 程序真实情况【2 2 j 。 2 5 获取窗口中控件的句柄的实现 在获取窗口控件的句柄的实现中,首先定义了一个结构体,用来保存子窗 体的类名、标题、句柄及指向下一个节点的指针。用到了枚举函数 第l o 页 西华大学硕士学位论文 e n u m c h i l d w i n d o w s 和自己定义的回调函数e n u m c h i l d h a n d l e r 。 e n u m c h i l d w i n d o w s 为指定的父窗口枚举子窗口,在调用e n u m c h i l d w i n d o w s 这个函数时,e n u m c h i l d h a n d l e r 为e n u m c h i l d w i n d o w s 的一个参数。执行过程 中,遍历父窗口中的所有子窗体,动态生成链表,保存所得的所有子窗体的值。 当最后一个子窗口被枚举或回调函数返回一个f l a s e 时,结束枚举,否则将一直 枚举下去。 具体的实现代码及说明如下: s t r e e tc h i l dt定义的结构体名为c h i l dt h w n dh a n d l e ;子窗体的旬柄 a n s i s t r i n gt i t l e ; 子窗体的标题 a n s i s t r i n gc l a s s n a m e ; 子窗体的类名 c h i l d t * n e x t ;下一个节点的指针 s t a t i cc o n t r l s :c h i l d t 掌c h i l d r e n ; 链表的指针 s t a t i cc o n t r l s :c h i l d t 毒h e a d ;链表的头结点 s t a t i ci n tc h i l d c o u n t ; 所得子窗体数量 b o o l s t d c a l le n u m c h i l d h a n d l e r ( h w n dh w n d ,l p a r a m1 p a r a m ) i f ( c h i l d r e n - 一- n u l l ) c h i l d r e n - - n e wc o n t r l s :c h i l d _ t ; 如果为n u l l ,生成新的结点 h e a d = c h i i d r e n ; e l s e c h i l d r e n 一 n e x t - - - n e wc o n t r l s :c h i l dt ;生成新的结点,c h i l d r e n 指向 新的结点 c h i l d r e n = c h i l d r e n - n e x t ; 第1 1 页 西华大学硕士学位论文 ; c h i l d c o u l l t + + ; c h i l d r e n _ _ h a n d l e = h w n d ; c h i l d r e n - t i t l e - j u d g e :g e t w i n d o w t i t l e ( h w n d ) ; c h i l d r e n - c l a s s n a m e = j u d g e :g e t w i n d o w c l a s s ( h w n d ) ; c h i l d r e n - n e x t = n u l l ; r e t u r nt r u e ;c o n t i n u et oe n u m v o i dc o n t r l s :e n u m c h i l d 0 d e l e t e c h i l d r e n 0 ; 删除链表 c h i l d r e n = n u l l ; c h i l d i c o u n t = o ; e n u m c h i l d w i n d o w s ( h p a r e n t , ( i n t ( _ s t d c a l l ) 0 e n u m c h i l d h a n d l e r , 0 ) ; 调 用e n u m c h i l d w i n d o w s 函数,开始枚举 c h i l d r e n = h e a d ; c h i l d c o u n t = c h i l d c o u n t ; ) v b 中基本控件的类名如表2 1 所示: 表2 。1v b 基本控件类名 控件名称控件类名 c l o m m a n d b u t t o nt h u n d e r c :o m m a n d b l , u t t o n t e x t b o xt h u n d e r t e x t b o x l i s t b , , o x t h u n d e l r l , i s t b o x f r a m et h u n d e rf r a m e c h e c k b o xt h u n d e rc h e c k b o x o p t i o n b u t t o n t h u n d e r o p t i o n b u t t o n v s c r o u b a rt h u n d e r v s c r o l l b a r d r i v e l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肿瘤科患者的心理护理与人文关怀
- 四川省宜宾市翠屏区宜宾四中2026届数学高二上期末监测模拟试题含解析
- 四川省成都石室天府2026届物理高一上期末经典试题含解析
- 单纯型精神分裂症个案护理
- 上海闵行职业技术学院《建筑力学(1)》2024-2025学年第一学期期末试卷
- 浙江省诸暨市诸暨中学2026届高一物理第一学期期末学业水平测试试题含解析
- 四川省雅安市2025-2026学年生物高一上期末教学质量检测试题含解析
- 腹腔镜手术围手术期护理新进展
- 2026中考中国地理知识点合集(含答案)
- 2026中考英语语法复习分类训练:介词100题(中考试题+中考模拟)原卷版
- DB32-T 4569-2023 发泡陶瓷保温板保温系统应用技术规程
- 【MOOC】家具史-南京林业大学 中国大学慕课MOOC答案
- 2015完整版本.4福建漳州古雷PX工厂爆炸事故多媒体材料
- 普通话培训教案1(共5篇)
- 水利安全生产知识竞赛考试题及答案
- 吸烟亭建设投标方案(技术方案)
- DB37-T 4706-2024事故车辆损失鉴定评估规范
- 提高班规范课流程讲解
- 心理学基础-人格课件
- 美国史智慧树知到期末考试答案章节答案2024年东北师范大学
- 矿山岩层移动观测专项制度细则
评论
0/150
提交评论