【内附源码和文档】基于 Python 的学生考勤管理系统的设计与实现

基于 Python 的学生考勤管理系统的设计与实现

第一章 引言

一.1 项目背景

由于技术的革新,人们的生活相较于上个世纪已经发生了天翻地覆的变化。上个世纪出现的计算机的设计目的是军事需要,并不适合私人用途。并且手机也仅仅是一种通讯工具,现在手机已经具有音乐,电视,拍照,游戏,上网等各种各样的功能,手机已经变成了一个成年人必不可少的工具,成为了人们生活的一部分。之前人们不会想到用手机来实现签到功能,因为那时候手机没有拍照和网络功能,但是现在手机拥有了,所以现在的科学技术和人们生活水平似乎将用智能手机用来实现课堂签到变成了一种切实可行的考勤方式。

那么为什么要用手机来实现考勤呢?难道过去用了很长时间的人工点名不好吗?或者现有的门禁打卡签到也不能直接用于高校课堂吗?以上的方法都可行,但是有着各种各样的缺点。现如今很多高校的老师点名仍然都会采用人工点名的方式,具体的操作一般来说,就是在上课的时候老师点学生的姓名或者学号,当学生听到自己的学号或者姓名的时候,该学生只需要回答“到”即可。这种点名方式非常传统,已经得到了广泛的使用,但是如此简单且广泛应用的点名方式却存在这一些致命的漏洞。而这些漏洞就是当老师点名的时候,学生可能没有听到老师点他的名字或者学号,或者学生喊“到”的时候,老师没有听到学生的回应,这些偶然情况都会导致统计结果与实际不符。造成较为严重的后果。然而还只是一些老师或者学生疏忽的行为导致的考勤记录统计结果出错。最大的隐患是,学生的代课行为并不能被发现,其他学生帮助被点名的学生回答“到”,这些行为都是故意的,而且一个老师带的学生非常之多,要把所有学生的相貌和学生的学号对应起来是一件极其困难的事情,由于传统的考勤方式并不能消除这些问题,所以在一些高校中这种代课行为逐渐猖獗起来,这不仅是逃课学生自己不遵守学校纪律,而且对其他正常上课的学生来说也不公平。门禁打卡能有效的解决这种代课和代签到的行为。所以在公司或者国家机构中解决漏签或代签,采用门禁打卡,在打卡的地方采用指纹识别技术,人脸识别技术或者虹膜识别技术来进行打卡签到。然而为什么这种方式并没有应用到高校课堂中呢?这是因为即使抛开这些硬件设备的昂贵费用来说,高校课堂考勤与公司或者国家机构最大的不同就是,需要签到的频率不同,上下课要频繁的打卡,而且教学楼的人口密度相对较大,对于数量非常庞大的学生来说,这些签到方式显得太过于浪费时间了,而且容易造成拥堵,降低学习效率。因此提出一种能够解决高校课堂考勤准确度问题、考勤耗费时间和考勤机器成本过于昂贵这三个问题的学生考勤管理系统就尤为紧迫了。

基于的科技水平和大学生现在人手一部带摄像头的智能手机的有利现状,本文提出了一种采用 Android 智能手机的摄像头进行人脸识别的电子化学生考勤管理系统,采用 Android 智能手机人脸识别的好处是利用现有的人手一部带摄像头的智能手机的优势,免除考勤打卡机样式的系统的成本外,它还提高签到的准确率,杜绝了考勤中代人签到的行为,由于是手机考勤,学生课堂考勤的信息会直接传输到该学生考勤系统的服务端,如此一来方便了学生和教师查看过往考勤记录以及便于将该考勤记录直接导入到教务系统等其他平台。

一.2 编写目的

传统的考勤方式会存在一些代签到、漏签到的现象,电子化的考勤方式能够保证考勤的准确性,可以减少人工纸质考勤或刷卡考勤投入的人力、财力和时间,并且更加环保,督促学生自觉地出勤,提高学生的出勤率,减轻学校和教师的负担,提高课堂效率。该系统提供三类角色的功能:学生具有签到、请假和查询考勤记录功能;老师具有准假、查询考勤记录、获得考勤记录表功能;管理员具有管理学生和教师个人信息功能。

第二章 软件概述

二.1 目标

1)减轻老师点名的负担;

2)杜绝学生代课行为;

3)降低考勤统计中出错率;

4)减少上课点名所浪费的时间。

二.2 功能

该系统主要有三类角色用户:管理员用户、教师用户和学生用户。

1)管理员用户具有管理教师用户和学生用户信息的功能;

2)教师用户具有点名功能、批准假条功能、修改学生出勤记录功能和获取考勤记录统计表的功能;

3)学生用户具有签到功能、请假功能和查看考勤记录功能。

二.3 性能

1)响应时间:如果一个系统的用户请求响应时间过长或者操作起来反应不灵敏,就会导致用户体验糟糕,所以此系统在设计过程中尽量保证每个用户的请求的响应时间不得超过 1s;

2)可靠性和安全性:该学生考勤管理系统存储的是学生的考勤记录,该记录对学生的考评和学校纪律建设有着非常重要的作用,所以保证了可靠性和安全性。

3)易用性:考虑到用户群体的广泛,该学生考勤管理系统在信息输入过程中,必须保证有输入提示。同时采用用户熟悉的概念和语言,提供尽可能简洁的用户界面,方便没有使用过该系统的用户学习使用该系统。

4)可重用性和移植性:该考勤管理系统采用自顶向下的设计模式,遵循高内聚低耦合的设计原则,使得程序模块的可重用性和移植性大大增强。

5)可扩展性:在设计系统架构的时候,减少功能之间的相互依赖,同时考虑到未来功能的可扩展性,这样可以使得未来对系统的功能进行扩展的时候,只需要对现有的系统做出较小的修改即可。

第三章 软硬件环境和数据管理

三.1 硬件环境

1)服务端:CPU 要求 Inter Pentium4 2.4 G 或者更高,内存要求 2 GB 或更高,硬盘要求 40 GB 或者更大;

2)客户端:搭载 Android 4.0 以上系统的智能手机。

三.2 软件环境

1)服务器:Windows 10 操作系统;

2)客户端:操作系统:Android 4.0 以上版本。

三.3 系统部署和运行

1) 服务端部署和运行

第一步:在 window10 系统中下载并安装 python3.6;

第二步:将该考勤系统的服务端程序拷贝到安装了 python3.6 的 window10 系统中;

第三步:启动服务器,为了使客户端程序能够正常获得服务端的服务,需要运行服务端。通过命令行窗口进入到项目根目录,比如:我们这里就是:“D:\zuoye\python\attendanceSystem\”,然后执行如下命令:“python manage.py runserver 0.0.0.0:80”。这样服务就会被启动。我们就可以在浏览器访问 Web 服务了。其中“0.0.0.0:80”是指定 Web 服务绑定的 IP 地址和端口。“0.0.0.0”表示绑定本机所有的 IP 地址,就是可以通过任何一个本机的 IP(包括环回地址“127.0.0.1”)都可以访问我们的服务。80 表示是服务启动在 80 端口上。打开地址栏输入“127.0.0.1”,如果看到如图 1 所示的界面,表示 Django 服务搭建成功,服务启动成功。

图 1 服务启动成功界面

2)客户端部署和运行

在 Android 手机下载安装下面的网址提供的安装包,打开即可使用。

“https://github.com/xueweidongdong/attendanceSystem_client_android/blob/master/app/release/app-release.apk”。

完整的源码和详细的文档,上传到了 【WRITE-BUG数字空间】,需要的请自取:

资源下载: