软件设计开发
本栏目责任编辑:谢媛媛
Python 在线考试系统的分析与设计
杨东宽1,赵晓侠2,杨微微3,寇卫利1*
(1.西南林业大学大数据与智能工程学院,云南昆明650224;2.昆明理工大学计算中心,云南昆明650500)
摘要:随着Python 编程语言的流行与广泛应用,随之各高校开设的Python 课程越来越多。传统Python 课程考试在考前准
备、考试过程、考后管理等方面存在工作烦琐、工作效率低、人力财力耗费多等问题。针对传统Python 考试方式存在的问题,现研究采用C/S 模式分析设计了一套Python 在线考试系统,通过实现Python 在线考试、自动判分、随机出题、成绩统计等功能,以减少教师的工作量,提高工作效率,并保证了考试的公平性。关键词:Python ;考试系统;自动判分;随机组卷;成绩查询中图分类号:TP311.1
文献标识码:A
文章编号:1009-3044(2021)11-0071-03
开放科学(资源服务)标识码(OSID ):
Analysis and Design of Python Online Examination System YANG Dong-kuan 1,ZHAO Xiao-xia 2,YANG Wei-wei 3,KOU Wei-li 1*
(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 Py⁃thon courses.The traditional examination manner of Python has many problems including lots of tedious work,inefficiency,inten⁃sive 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 examina⁃tion system based on C/S mode.Through t
he realization of Python online examination,automatic score,random questions,score sta⁃tistics 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]。
2Python 在线考试系统需求分析
通常情况下,高校的考试方式是考前授课然后教师提前命
题,考后对试卷进行批改、统计、录入等工作;管理人员需要完成试卷印刷、安排考试,以及后续成绩登记等诸多环节。这种方式需要长时间的工作,使得教师和管理人员容易出现一些工
作失误和不客观的情况。为解决这些问题,亟待构建一套Py⁃
thon 在线考试系统,以有效的改善现阶段传统考试方法中存在的问题。Python 考试系统的整体逻辑结构应该要相对简单,自动化程度要高,这样在减少人力物力的同时还可以提高考试的公平性和准确性[4]。通过分析,系统应该具体实现以下功能(表1)。
表1Python 在线考试系统的功能
需求功能题库功能自动判分功能随机组卷功能随机分配试卷功能成绩查询功能
功能描述
管理员将出好的试题加入题库。
系统自动对学生提交的编程题根据评分标准进行判分。系统将题库中的题目随机抽出N 道并与相应题目附件结合生成
一份试卷。
系统会为每一位考生分配一份不同的随机产生的试卷。系统自动为每一位考生计算总分并存入数据库中,考生和老师可
登录账号通过考生学号进行查询。
收稿日期:2020-11-02基金项目:西南林业大学计算机与信息学院2016年云南省本科高校转型发展试点学院(系)建设项目资助;西南林业大学教学研究项
目资助(YB201425)
作者简介:杨东宽(2000—),男,山西晋中市人,本科,主要研究方向为计算机应用技术;赵晓侠(1965—),女,陕西凤翔人,本科,副教
授,硕士导师,主要研究方向为数据库技术及应用;杨微微(1983—),女,硕士,西南林业大学研究实习员,研究方向为生态学、教学管理等;通信作者:寇卫利(1979—),男,陕西省西安市人,教授,博士,博士生导师,主要研究方向为计算机软件、地理信息系统、遥感信息技术。
71
本栏目责任编辑:谢媛媛
软件设计开发
Computer Knowledge and Technology 电脑知识与技术第17卷第11期(2021年4月)
3Python 在线考试系统数据库分析
Python 在线考试系统的设计开发中,一方面要考虑到前台界面能否满足用户对系统功能性、实用性和易用性的要求;另一方面还要考虑到后台数据库能否满足系统对数据存储和安全可靠的需求。因此,选择合适的开发模式、网站开发工具和后台数据库十分重要[5]。
数据库用来储存考生信息、试卷信息、标准答案、考生试
卷、考试成绩等相关信息[6]
。该系统采用基于微软公司的分布式网络数据库管理系统Microsoft SQL Server 2012版本的关系型数据库来实现。图1是Python 在线考试系统数据库的ER 图。
图1各实体的ER 图
4Python 在线考试系统实现
4.1考试系统开发与运行环境
Python 在线考试系统的开发语言使用Python 3.7,数据库采用了Microsoft SQL Server 2012的版本。Web 应用框架采用基于MVC 模型的Django 2.1搭建,网页界面使用超文本标记语言HTML 编写以及CSS 样式表进行修饰。为提高考生完成考试操作的便捷性,还需在系统内重视考试环境的设置,即在考试系统中的操作界面建立与Python 相似的启动考试的图形窗口,使学生在开启考试系统界面Python Shell 后快速进入考试操作环节[7]。4.2考生登录
输入正确的网址考生们将进入如图2所示的界面,主要有登录、注册、考试、
成绩查询等功能。
图2考试系统首页
4.2.1账户登录及注册功能
如果考生是首次使用该系统,则需要用自己的学号进行注册并设置密码。如果注册成功系统会自动在后台数据库中存入考生的学号和对应的密码。下次登录时,考生就可以直接输入正确的学号和密码登录系统参加考试,流程图如图3所示。
进入登录页面
是否拥有账户用学号注册账户并设置密码输入账号的
密码
账号密码存入数据库
与数据库中数据是否一致
进入考试系
显示错误信
图3考生登录及注册账号流程图
四川选调生学校名单4.2.2在线考试功能
考生成功登录系统后,点击在线考试即可开始答题。考试时间结束后,系统会自动保存考生已答部分题目的答案并提交到后端数据库;若考生想提前交卷,则需要自己点击提交按钮完成交卷,流程图如图4所示。
进入系统初始cpa注册会计师成绩查询
页面点击在线考试开始考试
是否超时
继续答题自动提交试卷
提交试卷
将作答结果存入数据库
图4考试过程流程图
4.2.3成绩查询功能
成绩管理模块可以对考生成绩进行计算与统计,教师可以通过该考试系统查阅学生的成绩信息[8]。考生可登录自己的账号进入系统进行查询个人考试成绩、查看考试成绩排名、下载成绩单等操作,流程图如图5所示。
进入系统
进入成绩查
询页面
是否打印
成绩单
结束查询
下载成绩单
图5考生成绩查询流程图
4.3随机组卷功能
Python 在线考试系统的核心功能就是随机组卷功能。其
工作原理是根据题库中的题目随机选出指定数量的题目和对应题目附件(如图片),自动组成考试试卷[9]。为保证考试的公平性,该系统会自动为考生分配一套试卷,并且保证相邻考号考生的试卷不重复,能够有效避免互相抄袭的问题。而且将每位考生考号和试卷号一一对应存储在数据库中,以方便系统计算考生成绩等操作。考生登录系统后即可开始在线考试答题,流程图如图6所示。
72
软件设计开发
本栏目责任编辑:谢媛媛Computer Knowledge and Technology 电脑知识与技术
第17卷第11期(2021年4月)公务员报考条件考试科目
考试开始
遍历题库
随机抽取题目作为试题
生成n份试卷
分配学生2
学生n
图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 +[ll_value(tino[i]+1,1)]return content
后台数据库通过函数的返回值content 将系统生成的随机试卷的信息存入数据库中。4.4自动判分功能
为了减轻教师的工作量,系统利用数据库中每道题目的关
键词、词序通过正则表达式匹配判分。通过遍历考生所给对应题目的答案如果匹配成功则加分,否则不给分。最后系统将考生每道题的分值自动进行相加求出总分,然后自动进行排序得到这次考试考生的总排名。同时,系统会自动统计出考生对不同知识点的掌握情况,然后针对不足对教育方案进行完善提高教学水平,流程图如图7所示。
开始判分
所有题目是
否判分完毕
遍历标准答案表中的关键字
学生答案中是否存在对应关键字河南省公务员考试成绩公布
否不给予分值
江苏自考网成绩查询系统将所有题目得分相加算出总分
给出相应分值
图7系统自动判分流程图
系统在收到前端传来的考生作答信息后,会调用get_score ()函数通过判断是否存在关键词进行判分,代码如下:
for i in range(len(keyword)):if keyword[i]in studanswer:score[i]+=3return 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.
【通联编辑:王力】
73