一、实验项目名称:
自动组卷评卷考试系统
二、实验内容
用Python语言编程实现自动组卷评卷考试系统,软件主要功能包括:从题库中随机抽取试题自动组成试卷(满分100分);实现考生考试答题操作界面;实现自动阅卷评分功能;等等。
三、实验要求
1.题型包括单项选择题、填空题、判断题等等。
2.题库可以采用文本文件、CSV文件或数据库等来实现。
3.要求在源程序中标注必要的注释。
4.要求对程序的使用和运行方法进行必要说明。
5.课程设计要提交程序源代码及附属的测试题库文档等(便于阅卷测试)。
四、实验器材(设备、元器件)
处理器:Intel® Core™ i5-8300H CPU @ 2.30GHz 2.30GHz
已安装的内存(RAM):8GB
系统类型:64位操作系统,基于x64的处理器
IDE:JetBrains PyCharm (Community Version) 2020.2.1
Python解释器:Python 3.8
五、实验步骤
5.1 系统组成
系统总体上由前端、后端、防作弊演示程序、配置程序、文档结构树图生成程序和数据等部分组成。
5.2 框架设计
系统的总体框架与结构如图1所示。
在这里插入图片描述

图1 系统总体框架与结构示意图

下面分别介绍各个部分的作用及功能:
FrontEnd.py,主要包括的是前端类,主要实现了注册和答题两个界面和数据调用等功能。
BackEnd.py,主要包括的是后端类,主要实现了检验用户是否存在、账号密码是否正确、添加新用户、产生随机题目序号、获取题目并返回给前端等功能。
AntiCheating.py,主要包括的是防作弊演示程序,主要实现了强行关闭主流文本编辑器和网页浏览器、强制清空系统剪切板等功能。
ProjectTreee.py,主要包括的是防作弊演示,主要实现了产生项目结构树图功能。
Config.py,主要实现了获取当前路径,找寻用户信息表和题库等功能。
data文件夹里有题库question.xlsx,考试结束自动播放的音乐music.mp3,存储管理员账号和测试账号的文本account_file.txt,反映考试成绩的图片fail.png、pass.png、great.png。
数据及项目演示
6.1 数据
account_file.txt的内容如图2所示。
在这里插入图片描述

图2 account_file.txt的内容示意图

第一列为账号名,第二列为账号密码。其中,管理员账号admin,对应密码123456;测试账号test1和test2,密码和账号一样。
题库question.xlsx包含单选题、多选题和判断题,它的内容如图3所示。
在这里插入图片描述

图3 题库question.xlsx的内容示意图

反映考试成绩的图片fail.png、pass.png、great.png分别如图4、图5、图6所示。
在这里插入图片描述

图4 fail.png
在这里插入图片描述

图5 pass.png
在这里插入图片描述

图6 great.png
6.2 项目演示
运行FrontEnd.py,首先进入考试系统的登陆界面,输入用户名和密码,点击登录,如图7所示。
在这里插入图片描述

图7 考试系统登录界面

提示登录成功后,进入考试系统答题界面,如图8所示。
在这里插入图片描述

图8 考试系统答题界面

答题完成后,显示成绩,播放音乐,如图9所示。
在这里插入图片描述

图9 考试系统显示成绩界面

七、总结及心得体会:
本次课程设计完成了用Python语言编程实现自动组卷评卷考试系统,项目主要实现了从题库中随机抽取试题自动组成试卷、实现考生考试答题操作界面、自动阅卷评分、防作弊演示等功能,加强了Python语言的编程能力。
八、对本实验过程及方法、手段的改进建议:
1.前端界面改用更高级的模块,如graphic;
2.采用遗传算法甚至粒子群算法进行自动组卷,使每次生成的试卷难度基本一致;
3.利用数据库存储题库;
4.更加完善代码注释,提高代码的可读性。

完整源代码包:Python版自动组卷评卷考试系统

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐