自动收集作业系统
来源:北京钱学森中学 发布时间:2023-09-11 300
自动收集作业系统
项目成员:王吴艺诗、王竞晗、王若羲
指导老师:许玄玄
一、项目背景
在初高中时期,各科教师会布置家庭作业以达到练习与巩固的目的,为及时对学生的作业进行反馈,教师一般会让各科课代表收集作业上交给老师进行批改。但作业收集时的名单统计成了课代表最为头疼的问题,为此,我们设计了一款可以学生通过自主智能扫码上交作业并能够快速统计学生名单的系统。
二、项目介绍
该自动收集作业系统可以通过智能扫码、统计等功能实现班级收集作业的功能,帮助课代表更便捷、更高效的统计班级学生作业。
三、项目目的
在教室多媒体电脑上安装该系统,学生通过点击按钮开始扫描作业,作业放在摄像头位置进行扫描上交,上交结束后,系统自动进行作业分类和统计,能够代替各科课代表进行收齐作业后的统计工作,最终达到减轻各科课代表工作量并提升工作效率的目的。
四、项目方案
最初我们制定方案一,在后续使用过程中,我们进行项目迭代研发方案二。
方案一主要实现功能:①学生点击不同科目按钮上交作业;②通过扫描条形码识别学生信息;③统计不同科目未上交作业的学生名单。方案一中学生的条形码不需要区分科目,学生拿到使用个人ID号制作的条形码后可以任意粘贴到不同学科作业的封面上。
在方案一中,学生若提交较多科目作业,需要多次点击再进行扫描,这样可能会出现扫描效率过低的问题,容易影响上交作业的速度,为解决该问题,我们设计方案二。
方案二主要实现功能:①学生无需区分科目可以直接上交作业;②通过扫描条形码来识别不同科目及学生信息;③统计不同科目未上交作业的学生名单。方案二与方案一的不同之处在于,学生拿到的条形码是区分学科的,我们在制作条形码时,在学生的ID号前面添加一位数字,数字1代表语文科目,数字2代表数学科目,数字3代表英语科目,可以以此类推。这样进行扫描时,可以根据扫描结果来区分科目,不需要学生在扫描前点击选择科目了,大大节约了学生上交作业的时间。
五、方案代码说明
方案一系统演示界面如下:
方案一代码说明:
1.导入库、读取即存储学生信息、设置摄像头。
2.定义“扫描识别条形码函数” ,摄像头循环扫描,若识别到一次结束循环,若长时间(10秒)未识别到也结束循环。
3.初始化不同科目(“语文”、“数学”、“英语”)对应的学生名单(字典)存放未扫描学生名单;定义不同科目按钮执行的函数,调用“扫描识别条形码函数”,若识别到学生学号在字典中,在相应科目名单中删除已扫描的学生信息,返回未扫描名单,并能根据识别结果弹出相应窗口。
4. 定义“查询” 按钮执行的函数,根据不同科目未扫描信息的学生名单弹出查询结果窗口,反馈所有学科未提交作业人数及名单。
5. 创建可视化主窗口,设计窗口样式及按钮(“语文”、“数学”、“英语”、“查询”、“关闭”)功能。
方案二系统演示界面如下:
1.导入库、读取即存储学生信息、设置摄像头。
2. 定义“开始扫描”按钮执行的函数,摄像头循环扫描识别条形码信息,方案1中的条形码信息对应学生学号,而方案2中的条形码信息第一位代表学科(1代表语文,2代表数学,3代表英语)剩余位代表学号,根据科目和学号对应上交作业名单;若长时间未识别到条形码,退出扫描循环。
3. 定义“查询结果”按钮执行的函数,根据不同科目未扫描信息的学生名单弹出查询结果窗口,反馈所有学科未提交作业人数及名单。
4.创建可视化主窗口,设计窗口样式及按钮(“开始扫描”、“查询结果”、“关闭”)功能。
六、项目创新点
1.项目迭代
在实践中,我们根据实际使用情况进行了方案迭代,并投入到我们学校各班真正使用。
2.功能简单且实用
我们设计的项目界面简单,操作方便,使用者无需懂得代码程序就能很方便使用,并且该项目切实解决了我们学生生活中的问题。
七、遇到的困难和解决方案
在编写程序时,我们遇到了很多困难,比如python库的安装、程序的调试。每次程序的报错我们都要不断调试,解决每一个错误。后来,我们求助于老师并进行网络资料的查询,排除每一个错误,最终测试成功。