标题 | Python在线考试系统的分析与设计 |
范文 | 杨东宽 赵晓侠 杨微微 寇卫利 摘要:随着Python编程语言的流行与广泛应用,随之各高校开设的Python课程越来越多。传统Python课程考试在考前准备、考试过程、考后管理等方面存在工作烦琐、工作效率低、人力财力耗费多等问题。针对传统Python考试方式存在的问题,现研究采用C/S模式分析设计了一套Python在线考试系统,通过实现Python在线考试、自动判分、随机出题、成绩统计等功能,以减少教师的工作量,提高工作效率,并保证了考试的公平性。 关键词:Python;考試系统;自动判分;随机组卷;成绩查询 中图分类号:TP311.1? ? ? ? 文献标识码:A 文章编号:1009-3044(2021)11-0071-03 Analysis and Design of Python Online Examination System YANG Dong-kuan1, ZHAO Xiao-xia2,YANG Wei-wei3,KOU Wei-li1* (1. College of Big Data and Intelligent Engineering, Southwest Forestry University, Kunming 650224, China;2. Computing Center, Kunming University of Science and Technology, Kunming 650500, China) Abstract: With the popularity and wide application of the Python programming language, thereafter, colleges set more and more Python courses. The traditional examination manner of Python has many problems including lots of tedious work, inefficiency, intensive cost of human and finance in aspects of pre-examination, examination process, post-examination management. Aiming to solve these problems in traditional Python examination manner, this study analyzed and designed a suite of Python online examination system based on C/S mode. Through the realization of Python online examination, automatic score, random questions, score statistics and other functions, to reduce the workload of teachers, improve work efficiency, and ensure the fairness of the exam. Key words: Python; examination system; automatic score; random questions;score query 1 引言 随着计算机技术的不断发展,越来越多智能手段代替了传统依靠大量人力、物力才能解决的问题。目前,Java认证、DB2认证、全国计算机等级考试等均采用了在线考试的方式进行[1]。Python作为一种先进的计算机语言,具有简洁、易读、可扩展等特性,被各个企业广泛应用,进而导致社会对Python人才的需求急剧增长。为了适应社会的需求,开设Python课程的高校越来越多[2]。然而,传统Python考试工作需要人工完成出题、印刷以及判分等工作,需要花费大量时间和精力。通过Python在线考试系统达到了简化考试流程的目的,实现了试卷批阅、统计成绩等的自动化,减轻了教师和管理人员的工作量[3]。 2 Python在线考试系统需求分析 通常情况下,高校的考试方式是考前授课然后教师提前命题,考后对试卷进行批改、统计、录入等工作;管理人员需要完成试卷印刷、安排考试,以及后续成绩登记等诸多环节。这种方式需要长时间的工作,使得教师和管理人员容易出现一些工作失误和不客观的情况。为解决这些问题,亟待构建一套Python在线考试系统,以有效的改善现阶段传统考试方法中存在的问题。Python考试系统的整体逻辑结构应该要相对简单,自动化程度要高,这样在减少人力物力的同时还可以提高考试的公平性和准确性[4]。通过分析,系统应该具体实现以下功能(表1)。 3 Python在线考试系统数据库分析 Python在线考试系统的设计开发中,一方面要考虑到前台界面能否满足用户对系统功能性、实用性和易用性的要求;另一方面还要考虑到后台数据库能否满足系统对数据存储和安全可靠的需求。因此,选择合适的开发模式、网站开发工具和后台数据库十分重要[5]。 数据库用来储存考生信息、试卷信息、标准答案、考生试卷、考试成绩等相关信息[6]。该系统采用基于微软公司的分布式网络数据库管理系统Microsoft SQL Server 2012版本的关系型数据库来实现。图1是Python在线考试系统数据库的ER图。 4 Python在线考试系统实现 4.1 考试系统开发与运行环境 Python在线考试系统的开发语言使用Python 3.7,数据库采用了Microsoft SQL Server 2012的版本。Web应用框架采用基于MVC模型的Django 2.1搭建,网页界面使用超文本标记语言HTML编写以及CSS样式表进行修饰。为提高考生完成考试操作的便捷性,还需在系统内重视考试环境的设置,即在考试系统中的操作界面建立与Python相似的启动考试的图形窗口,使学生在开启考试系统界面Python Shell后快速进入考试操作环节[7]。 4.2 考生登录 输入正确的网址考生们将进入如图2所示的界面,主要有登录、注册、考试、成绩查询等功能。 4.2.1 账户登录及注册功能 如果考生是首次使用该系统,则需要用自己的学号进行注册并设置密码。如果注册成功系统会自动在后台数据库中存入考生的学号和对应的密码。下次登录时,考生就可以直接输入正确的学号和密码登录系统参加考试,流程图如图3所示。 4.2.2 在线考试功能 考生成功登录系统后,点击在线考试即可开始答题。考试时间结束后,系统会自动保存考生已答部分题目的答案并提交到后端数据库;若考生想提前交卷,则需要自己点击提交按钮完成交卷,流程图如图4所示。 4.2.3 成绩查询功能 成绩管理模块可以对考生成绩进行计算与统计,教师可以通过该考试系统查阅学生的成绩信息[8]。考生可登录自己的账号进入系统进行查询个人考试成绩、查看考试成绩排名、下载成绩单等操作,流程图如图5所示。 4.3 随机组卷功能 Python在线考试系统的核心功能就是随机组卷功能。其工作原理是根据题库中的题目随机选出指定数量的题目和对应题目附件(如图片),自动组成考试试卷[9]。为保证考试的公平性,该系统会自动为考生分配一套试卷,并且保证相邻考号考生的试卷不重复,能够有效避免互相抄袭的问题。而且将每位考生考号和试卷号一一对应存储在数据库中,以方便系统计算考生成绩等操作。考生登录系统后即可开始在线考试答题,流程图如图6所示。 考生在点击开始考试后,系统会自动调用create_test(n,m)函数遍历题库,核心代码如下:#参数n为题库中的题目的总数,参数m为考试试卷的总题数: def create_test(n,m): #随机抽取题目序号 for i in range(5) : tino = random.sample(range(1,n),m) f = xlrd.open_workbook('题库.xls') worksheet = f.sheet_by_name('Sheet1') #从题库中提取对应题目序号的题目内容 for i in range(len(tino)): content=content + [worksheet.cell_value(tino[i]+1,1)] return content 后台数据库通过函数的返回值content将系统生成的随机试卷的信息存入数据库中。 4.4 自动判分功能 为了减轻教师的工作量,系统利用数据库中每道题目的关键词、词序通过正则表达式匹配判分。通过遍历考生所给对应题目的答案如果匹配成功则加分,否则不给分。最后系统将考生每道题的分值自动进行相加求出总分,然后自动进行排序得到这次考试考生的总排名。同时,系统会自动统计出考生对不同知识点的掌握情况,然后针对不足对教育方案进行完善提高教学水平,流程图如图7所示。 系统在收到前端传来的考生作答信息后,会调用get_score()函数通过判断是否存在关键词进行判分,代码如下: for i in range(len(keyword)): if keyword[i] in studanswer: score[i] += 3 return score 随后系统会根据每题返回的得分进行累加计算出总分并返回总分: for i in range(len(all_test)): all_score += all_test[i] return all_score 5 结论 高校教务管理工作纷繁复杂,每个教学环节对于人才培养来说都至关重要,考试作为教学效果反馈的最有效手段更应该得到足够的重视,探索考试管理工作新策略、新手段、新方法成为热点问题[10]。随着计算机技术的发展和计算机网络的普及应用,“互联网+”的方式越来越受到教师和考生的青睐[11]。网络在线考试系统已经成为当前的主要考试方式,考生可以方便地通过互联网参加在线考试。针对Python传统考试方式存在的实际问题,本文分析设计了一套Python在线考试系统,主要分析设计了系统的功能、数据库存储、关键业务流程,并编写了核心关键代码,进行了原型系统的开发与试用。研究结果表明:本文提出的Python在线考试模型能够有效完成考核工作,考试精度较高;采用Python在线考试方式能够有效解决传统人工Python考试方式存在的工作量大、评分存在主观性等问题。本研究将为高校Python课程在线考试系统提供应用模型参考,将有力促进高校教学考试全面自动化的进程。 参考文献: [1] 周晨, 陆正, 高莺,等. 基于 SSH2 的无纸化考试系统的设计与实现[J]. 软件,2013(12):103-106+113. [2] 饶东.Python语言在自动化考卷系统中的应用研究[J].信息与电脑(理论版),2018(23):50-51. [3] 刘永辉.基于PHP的网络考试系统的开发与设计[J].电子设计工程,2018,26(24):27-31. [4] 王孟婷.基于Java的在线考试系统设计与实现[J].中国教育技术装备,2019(24):25-27. [5] 郭文荣,高宗余,于丽杰.大学网上考试系统的设计与实现[J].计算机与网络,2014,40(18):59-61. [6] 苏玉龙,吴桂涛,曾鸿.内河船机电设备虚拟拆装考试系统设计与实现[J].大连海事大学学报,2014,40(2):101-104,108. [7] 蓝贞珍.Python程序设计考试系统的研究与分析[J].信息记录材料,2020,21(8):103-104. [8] 劉赛娥, 任友理, 浦理娥, 等. 在线考试系统的设计与实现——以云南国土资源职业学院为例[J]. 教育教学论坛,2020(5):144-145. [9] 王沛.基于SSH框架的在线考试系统设计与实现[D].济南:山东师范大学,2018. [10] 杨世超,王剑波.基于B/S的高校考试管理系统设计与实现[J].电脑知识与技术,2020,16(15):124-125. [11] 刘师良,王淑艳,贾福运.在线考试管理系统的研究与开发[J].电脑知识与技术,2019,15(32):89-90. 【通联编辑:王力】 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。