基于 Python 的电子教室和在线考试系统源代码

作者: 蒋老师 分类: 不得不荐的资源 发布时间: 2019-09-17 01:38

  Python 是近年倍受推崇的语言,这里介绍的是两个与教学相关的开源项目。一个是用于计算机教室管理的电子教室系统,第二个是与之关联的在线考试系统,当然,这个系统也可以单列出来。这两个项目还只是个雏形,只具有最基本的功能,但对于有兴趣开发这类软件的朋友还是极具参考价值的。

  这两个系统都是基于 Qt 5.11.1 开发的,Qt 是一个跨平台的 C++ 图形用户界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发 GUI 程序,也可用于开发非 GUI 程序。Qt 是完全面向对象的,很容易扩展,并且允许真正地组件编程。值得注意的是,Qt 商业应用要授权,也就是说,商业应用是要收费的。

  一、电子教室

  项目名称:ScreenSharing FileTransfer in LAN

  项目地址:https://github.com/CrankZ/ScreenSharing-FileTransfer-in-LAN

  本项目基于 Qt 5.11.1 (MSVC 2015, 32bit)、Python 3.4.3。

  程序包括 Master 端和 Slave 端。Slave 端没有界面,启动后会有一个托盘图标。Master 主界面如下图所示:

  该电子教室主要功能有:

  1、屏幕演示(延迟 1s 以内):采用的是局域网组播 + 分包传输 + 屏幕差异对比等技术。

  2、屏幕监控:可同时监控 4 台学生机。

  3、文件传输:这一功能是使用 Python 实现的,主要原理是在局域网内搭建 HTTP 服务器,Slave 端通过下载的方式下载,从而完成传输操作。理论上,速度可以达局域网的最大速度。

  4、学生签到

  5、在线考试:详见下面的介绍。

  二、在线考试系统

  项目名称:Native Exam Analyse

  项目地址:https://github.com/CrankZ/Native-Exam-Analyse

  本项目基于 Qt 5.11.1 (MSVC 2015, 32 bit)。

  使用本项目考试流程如下:

  添加题型 → 设置考试时间与班级 → 发送试卷 → 开始考试 → 考试结束 → 保存考试结果

  程序包括 Teacher 端和 Slave 端。Slave 端没有界面,启动后会有一个托盘图标,考试时会弹出考试界面:

  Teacher 端主界面如下:

  该考试系统主要功能有:

  1、支持多种题型,包括:选择题、填空题、阅读理解、选词填空等。

  2、自动阅卷并分析考试结果,如班级平均分、及格率、各题的正确率等。

  3、考试结果可手动保存为 EXCEL 格式,同时会自动保存考试源文件到程序目录“考试记录”文件夹下,而且,源文件可拖拽到程序查看学生的详细考试信息。

  4、学生端考试结束后,成绩也会自动保存在程序目录下的“考试记录”文件夹下,同样可拖拽到程序内查看。

  5、学生考试期间禁止切换窗口。