基于python+tkinter实现的自动组卷评卷考试系统python源码+课程设计+项目说明

项目简介

python语言程序设计期末课程设计:

用Python语言编程实现自动组卷评卷考试系统,软件主要功能包括:

从题库中随机抽取试题自动组成试卷(满分100分);实现考生考试答题操作界面;实现自动阅卷评分功能;等等。

本项目完成:考试定时、自动组卷、客观题自动判卷、自动评分和考试界面设计。

项目结构

复制代码
----ExamSystem\
    |----data\
    |    |----account_file.txt
    |    |----alarm.mp3
    |    |----fail.png
    |    |----great.png
    |    |----pass.png
    |    |----question.xlsx
    |----AntiCheating.py
    |----BackEnd.py
    |----Config.py
    |----FrontEnd.py
    |----ProjectTree.py
    |----ReadMe.md

功能特性

前端:

完成登录、注册功能核验考生身份,如果身份正确则进入考试界面,否则重新输入。

考试界面稍作等待得到随机分配的考题,开始答题。每道题完成后即时判卷打分,完成所有题目后显示总分:85分及以上为合格;否则为不合格。

考试开始即开始计时,超时自动结束考试,统计分数,播放音乐

后端:

为方便部署,采用文件读写而非数据库的方式存储信息和题库。

完成核验考生身份信息,题库自动组卷,按照前端需求进行传递。

环境依赖

Windows10 + Python 3.8

使用与测试

文件目录需完整拖拽至本机,所有文件读写均会自动检测当前目录。

运行FrontEnd.py

测试时需要登录,已有管理员账号admin,对应密码123456;测试账号test1和test2,密码和账号一样;以及调试用的空账号空密码,直接登录即可。

选择选项,选项右侧的文本框中会显示当前选项,按确认键完成本题。如果结果正确,左上角的分数会有变动。

一、实验项目名称:

自动组卷评卷考试系统

二、实验内容

用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。

5.3 具体实现

六、数据及项目演示

6.1 数据

account_file.txt的内容如图2所示。

图2 account_file.txt的内容示意图

第一列为账号名,第二列为账号密码。其中,管理员账号admin,对应密码123456;测试账号test1和test2,密码和账号一样。

题库question.xlsx包含单选题、多选题和判断题,它的内容如图3所示。

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

6.2 项目演示

运行FrontEnd.py,首先进入考试系统的登陆界面,输入用户名和密码,点击登录,如图7所示。

图7 考试系统登录界面

提示登录成功后,进入考试系统答题界面,如图8所示。

图8 考试系统答题界面

答题完成后,显示成绩,播放音乐,如图9所示。

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

七、总结及心得体会:

本次课程设计完成了用Python语言编程实现自动组卷评卷考试系统,项目主要实现了从题库中随机抽取试题自动组成试卷、实现考生考试答题操作界面、自动阅卷评分、防作弊演示等功能,加强了Python语言的编程能力。

八、对本实验过程及方法、手段的改进建议:

1.前端界面改用更高级的模块,如graphic;

2.采用遗传算法甚至粒子群算法进行自动组卷,使每次生成的试卷难度基本一致;

3.利用数据库存储题库;

4.更加完善代码注释,提高代码的可读性。

源码地址:https://download.csdn.net/download/FL1623863129/92071670

相关推荐
B站_计算机毕业设计之家2 小时前
python汽车数据分析可视化系统 爬虫 懂车帝 毕业设计 Django框架 vue框架 大数据✅
爬虫·python·数据分析·django·汽车·推荐算法·懂车帝
IT学长编程3 小时前
计算机毕设选题 基于SpringBoot的书店管理系统的设计与实现 网上书店系统 前后端分离 Java毕设项目 毕业设计选题 【附源码+文档报告+安装调试】
java·spring boot·毕业设计·课程设计·前后端分离·网上书店系统·书店管理系统
王琦03183 小时前
Python 综合大作业
python
张较瘦_3 小时前
应用型本科计算机类专业毕业设计与论文选题指南
java·开发语言·课程设计
IT学长编程3 小时前
计算机毕设选题 基于SpringBoot的房产租赁管理系统 房屋租赁系统 前后端分离 Java毕设项目 毕业设计选题 【附源码+文档报告+安装调试】
java·spring boot·毕业设计·课程设计·房屋租赁系统·房产租赁系统·文档报告
Dxy12393102163 小时前
Python自动连接已保存WiFi
开发语言·python
无限进步_3 小时前
C语言指针全面解析:从内存管理到高级应用
c语言·开发语言
W.D.小糊涂3 小时前
Qt 5.14.2+Mysql5.7 64位开发环境下无法连接数据库
开发语言·qt
_OP_CHEN3 小时前
C++基础:(八)STL简介
开发语言·c++·面试·stl