《C/C++语言程序设计》课程考试系统的开发与应用
2019-03-17王会婷陈应祖
王会婷 陈应祖
摘 要:随着人工智能与大数据技术的飞速发展,传统纸质考试已经不能适应时代的发展需求,本文提出
《C/C++语言程序设计》课程考试系统。提出本系统开发与应用的总体系统功能结构,阐述C/C++语言程序设计课程考试系统开发与应用过程中涉及的一些关键技术及系统应用功能结构模块、网络结构,并提出系统主要性能特色,以及系统的创新性和科学性。
关键词:试卷编排器;考试答题环境;容器程序;COM接口;cl.exe编译器
中图分类号:TP311.1 文献标识码:A
The Development and Application of C/C++ Language Programming Course Examination System
WANG Huiting,CHEN Yingzu
(Chongqing University of Science and Technology,Chongqing 401331,China)
Abstract:With the rapid development of artificial intelligence and big data technology,traditional paper examination is unable to adapt to the development needs of the times.This paper proposes the course examination system of C/C++ language programming.The development and application of the overall system function structure is described,some key technologies and system application function modules as well as network structure involved in the process of the development and application of C/C++ language programming examination system are elaborated,and the main performance characteristics as well as the innovation and scientificity of the system are introduced.
Keywords:test paper organizer;examination environment;container program;COM interface;cl.exe compiler
1 引言(Introduction)
傳统纸质考试所采用的人工阅卷、统分等不仅烦琐容易出错,而且还降低了教师的工作效率和质量。随着人工智能与大数据技术的飞速发展,传统纸质考试已经不能适应时代的发展需求,因此《C/C++语言程序设计》课程考试系统应运而生。系统的应用大大提高了教师的工作效率和质量。该系统对程序代码题按六个评分点进行评分,合理解决了C语言程序设计中由源程序代码运行结果决定成绩这一难题。经过六学期实际应用和抽查证明,系统实现了答卷机器自动评阅,即时获得学生考试成绩。
2 总体结构(Overall structure)
系统功能图如图1所示。
根据计算机专业实际教学情况和对C/C++语言程序设计课程的实验教学环节的教学要求,系统功能从总体上分为管理端和考试端。教师作为管理员通过管理端进行试卷管理和考试管理;学生作为用户通过考试端练习或考试。教师和学生有各自不同的权限,应用不同的功能进行不同的操作。
2.1 网络结构
考虑到系统开发的功能、应用需求,以及Client/Server应用与Web应用的特点,本系统采用C/S与B/S相结合的方式[1]。
其中Client/Server网络结构,以分布式SQL Server数据库服务为基础。这种应用能够充分利用分布式数据库的存储和管理能力,具有较好的性能及可靠性,适应大量的录入、修改、统计、计算、报表等应用。
另外,B/S三层体系结构,通过“分布式”开发实现,由分别运行于数据库服务器、信息服务器站点、客户端上的程序,相互通信、紧密配合实现其功能[2]。它具有较高的灵活性和易用性。
2.2 模块划分
系统以试卷的Word文档、试卷答案文本、考生答案为对象实现试卷管理和考生成绩管理。系统分为试卷管理、考试管理、考试与练习功能模块,并将三大功能模块集成于一个应用程序中,根据使用者角色进行功能切换。
2.3 系统设置
系统设置主要是使用户根据自己的需求来建立和管理数据库结构[3]。在系统设置中有数据管理、组织管理、授权管理、显示级别和修改密码五个模块。其中,数据管理模块用于管理数据类、数据表;组织管理模块主要管理用户;授权管理模块是对各用户进行授权,使得每个用户看到不同的信息,以保证数据的安全性;在修改密码模块中用户可修改自己的密码。
3 系统主要性能和特色(Main performance and characteristics of the system)
系统应用程序(C_ExameNet.exe)作为SQL Server数据库系统的客户程序,在局域网内实现《C/C++语言程序设计》课程考试和练习。C_ExameNet.exe以试卷的Word文档、试卷答案文本、考生答案为对象实现试卷管理和考生成绩管理,功能分为试卷管理、考试管理、考试与练习,根据使用者角色进行功能切换。
《C/C++语言程序设计》课程考试系统主要具有五个特点:
(1)教学性
系统针对性强,是面向学生提供的学习平台。除985、211高校外,学生普遍认为C和C++语言入门困难、难懂,又是全国大学生计算机等级考试科目,通过本平台方便学生自我训练,提升学生C和C++语言水平。
(2)科学性
本系统是SQL SERVER数据库系统的客户程序,稳定可靠[4];使用Office Word作为试卷编排器和学生答题器,科学合理解决了在线考试系统普遍存在的题干中图、表、公式编排困难,试卷编排符合阅读习惯。利用Office Word提供的COM接口,根据试卷试题自动生成答题卡,答题卡和题干建立关联,实现互动。程序代码填空、程序代码改错和程序代码设计的评判规划合理,不以運行结果为唯一评分依据,使用exe输出换向方法直接获取exe运行结果。
(3)创新性
①C_Exam为容器程序[5],将Office Word文档嵌入到应用程序中。教师试卷、学生答题都在符合阅读习惯的试卷环境中进行。对比其他在线考试系统,不需要对图、表、数学公式等OLE对象进行单独处理。
基于Office Word文档的试卷可直接读入系统数据库中。试卷Word文档中每一考题设置“题号:题型+题号+分值”为关键字,试卷答案也以“题号:题型+题号+分值”为关键字;试卷文档和答案文本分别读入数据库数据表中构成一条记录,并赋予唯一编码。
试卷题型:01单选题、02多选题、03判断题、04填空题、05程序填空、06编程题共6类题。每一类型对应相应的答题策略。其中05和06题型可外挂编译环境,也可以直接启动Visual C++ IDE环境进行程序源码录入与调试。如图2所示。
②根据试卷中试题关键字,自动生成答题卡。
③答题卡的试题项与试卷文档中题干建立关联,实现互动[6]。
④学生的代码读写能力反映了学生的语言程序设计课程的综合实践能力。这是语言程序设计课程的实验教学环节的非常重要的一个方面。
采用exe输出换向获取学生程序和参考程序的运行结果。不需要在源代码中植入数据输出到文件的语句,获得exe的数据输出文件,从输出文件获取exe的输出。程序代码填空、程序代码改错和程序代码设计题按编码、变量、结构、结果、编译、模块6个评分点进行评分,即使答题源代码不能编译也会给出相应的分值。如图3所示。
⑤程序题评分规则按六个环节进行,避免仅依赖程序运行结果评分。
(4)启发性
①基于Office Word文档的试卷和答题环境,不再对试卷进行试题分解。
②可以利用Office Word提供的COM接口,获取文档中的对象,对感兴趣的对象进行深入剖析,可以实现其他课程的考试,如高等数学。高等数学的难点是数学表达式的识别,借助Office Word的数学公式编辑器,可以将参考答案的数学公式切换为独立的子式,对子式进行编号。答题时学生从子式列表中,选择拖入答题环境,子式排列顺序即是题的答题数据。如果数学问题得以解决,那么就可以推广到自然学科。
③基于Office Word文档试卷和答题环境的考试系统,当然适合自然学科。主观题的评阅可以利用Office Word的字、词、句统计功能,按字、词、句进行评分。
(5)应用性
①本系统是针对C/C++语言课程的考试系统。
②脱离Visual Basic和Visual Foxpro程序运行机制情况下也适用。
③如果仅基于单选题、多选题、判断题、文字填空题,本系统适用于所有学科课程练习与考试。
系统在SQL Server数据库环境中运行,试卷文档、试卷答案入库、学生注册、学生练习与考试操作简捷方便。除搭建SQL Server数据库环境外,在安装有Word应用程序的机器上直接运行C_ExameNet.exe,不需要第三方控件支持[7]。
4 系统应用(System application)
系统应用中主要包括试卷管理、考试管理、练习和考试四个模块。
①试卷管理
试卷管理主要包括试卷及试卷参考答案的导入导出。试卷导入后,如需修改可对试卷进行编辑并保存修改。试卷可导出到磁盘存档以便查阅。
②考试管理
主要包括考试成绩的导入导出、考生注册、考试日期设置。
系统管理员可查看教学班级的考试成绩并导出,也可把学生的答卷导出保存到磁盘上。
考生注册时可以单个注册,也可以批量注册[8]。
考试日期设置时设置考试科目项目号、开考时间、结束时间、修正试卷密码等信息。
③练习
学生在注册时的项目码(项目码和考试科目是相同的)所对应的试卷列表中自选训练试卷。在练习状态,学生可以一边作答一边提交答案并显示当前成绩。显示/隐藏参考答案。
④考试
考试状态下的流程和练习状态下的流程大致差不多,只是权限不同。考试状态下学生不能自选试卷、不能显示当前成绩、不能显示/隐藏参考答案,而练习状态下学生是有这些权限的。正式考试时可以一边作答一边提交答案,系统评阅,但不显示当前成绩。学生结束考试后可显示此次考试成绩。
5 结论(Conclusion)
《C/C++语言程序设计》课程考试系统具有友好的界面和创新性,安全高效,方便实用,在实践教学环节效果显著。系统的应用不仅提高了教师的教学质量和工作效率,也提高了学生的学习效率和质量,方便了管理人员对学生作业、成绩等数据的存档、统计、汇总分析等。
参考文献(References)
[1] 曹瑛.浅析C语言网络考试系统的设计与实现[J].数字通信世界,2016,(12):255-256.
[2] 谢希仁.计算机网络(第4版)[M].北京:电子工业出版社,2003:28-30.
[3] 何钦铭.C语言程序设计[M].北京:高等教育出版社,2015:253-257.
[4] 卫琳.SQL Server 2008数据库应用与开发教程(第二版)[M].北京:清华大学出版社,2011:55-56.
[5] 段智毅.Visual C++程序设计教程[M].北京:人民邮电出版社,2009:98-101.
[6] 罗运,陈蜀宇.网络安全联动系统研究[J].西华大学学报:自然科学版,2007,26(1):82-83.
[7] 刘远东.实践教学自主学习网络环境的建设[J].职业技术教育,2007(5):56.
[8] John Carter[英].数据库设计与编程实例详解—使用Access,SQL与VB[M].北京:电子工业出版社,2001.