基于Python+Android的学生考勤管理APP系统设计与实现
目 录
第一章 引言 1
1.1 项目背景 1
1.2 编写目的 2
第二章 软件概述 3
2.1 目标 3
2.2 功能 3
2.3 性能 3
第三章 软硬件环境和数据管理 4
3.1 硬件环境 4
3.2 软件环境 4
3.3 系统部署和运行 4
3.4 数据导入 5
第四章 软件使用说明 7
4.1 用户登录 7
4.2 管理员用户 7
4.3 教师用户 8
4.4 学生用户 11
第二章软件概述
2.1目标
1)减轻老师点名的负担;
2)杜绝学生代课行为;
3)降低考勤统计中出错率;
4)减少上课点名所浪费的时间。
2.2功能
该系统主要有三类角色用户:管理员用户、教师用户和学生用户。
1)管理员用户具有管理教师用户和学生用户信息的功能;
2)教师用户具有点名功能、批准假条功能、修改学生出勤记录功能和获取考勤记录统计表的功能;
3)学生用户具有签到功能、请假功能和查看考勤记录功能。
2.3性能
1)响应时间:如果一个系统的用户请求响应时间过长或者操作起来反应不灵敏,就会导致用户体验糟糕,所以此系统在设计过程中尽量保证每个用户的请求的响应时间不得超过1s;
2)可靠性和安全性:该学生考勤管理系统存储的是学生的考勤记录,该记录对学生的考评和学校纪律建设有着非常重要的作用,所以保证了可靠性和安全性。
3)易用性:考虑到用户群体的广泛,该学生考勤管理系统在信息输入过程中,必须保证有输入提示。同时采用用户熟悉的概念和语言,提供尽可能简洁的用户界面,方便没有使用过该系统的用户学习使用该系统。
4)可重用性和移植性:该考勤管理系统采用自顶向下的设计模式,遵循高内聚低耦合的设计原则,使得程序模块的可重用性和移植性大大增强。
5)可扩展性:本文转载自http://www.biyezuopin.vip/onews.asp?id=16834在设计系统架构的时候,减少功能之间的相互依赖,同时考虑到未来功能的可扩展性,这样可以使得未来对系统的功能进行扩展的时候,只需要对现有的系统做出较小的修改即可。
第三章软硬件环境和数据管理
3.1硬件环境
1)服务端:CPU要求Inter Pentium4 2.4 G或者更高,内存要求2 GB或更高,硬盘要求40 GB或者更大;
2)客户端:搭载Android 4.0以上系统的智能手机。
3.2软件环境
1)服务器:Windows 10操作系统;
2)客户端:操作系统:Android 4.0以上版本。
import cv2
import numpy as np
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddrdef print_hello():print("hello")def face_recognize(path1, path2):images = [cv2.imread(path1, cv2.IMREAD_GRAYSCALE)]labels = [1]recongnizer = cv2.face.LBPHFaceRecognizer_create()recongnizer.train(images, np.array(labels))predict_image = cv2.imread(path2, cv2.IMREAD_GRAYSCALE)label, confidence = recongnizer.predict(predict_image)print("label = ", label)print("confidence = ", confidence)return confidencedef face_recognizes():images=[]images.append(cv2.imread("D:\\zuoye\\python\\attendanceSystem\\resources\\picture\\received\\B16041733.png", cv2.IMREAD_GRAYSCALE))images.append(cv2.imread("D:\\zuoye\\python\\attendanceSystem\\resources\\picture\\received\\B16041734.png", cv2.IMREAD_GRAYSCALE))images.append(cv2.imread("D:\\zuoye\\python\\attendanceSystem\\resources\\picture\\received\\B16041735.png", cv2.IMREAD_GRAYSCALE))# images.append(cv2.imread("D:\\zuoye\\python\\attendanceSystem\\picture\\received\\B16041734.png", cv2.IMREAD_GRAYSCALE))labels = [1, 2, 3]recongnizer = cv2.face.LBPHFaceRecognizer_create()recongnizer.train(images, np.array(labels))predict_image = cv2.imread("D:\\zuoye\\python\\attendanceSystem\\resources\\picture\\received\\B16041732.png",cv2.IMREAD_GRAYSCALE)label, confidence = recongnizer.predict(predict_image)print("label = ", label)print("confidence = ", confidence)def subtract_time(sign_in_time, local_time):str1 = sign_in_timestr2 = local_timearr = [0, 1, 2, 3, 5, 6, 8, 9, 11, 12, 14, 15]time1 = 0time2 = 0for i in arr:time1 = time1 * 10 + int(str1[i])time2 = time2 * 10 + int(str2[i])return time2 - time1def send_mail(para_user, para_file_name):ret = Truemy_sender = '1909392064@qq.com' # 发件人邮箱账号my_pass = 'this is my authorization code'with open('authorizationCode.txt') as file_obj:my_pass = file_obj.read()my_user = para_user # 收件人邮箱账号,我这边发送给自己try:msg = MIMEMultipart()msg['From'] = formataddr(["attendance system", my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号msg['To'] = formataddr(["FK", my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号msg['Subject'] = "考勤系统" # 邮件的主题,也可以说是标题msg.attach(MIMEText('附件中是学生考勤记录', 'plain', 'utf-8'))att = MIMEText(open(para_file_name, 'rb').read(), 'base64', 'utf-8')att["Content-Type"] = 'application/oct-stream'att["Content-Disposition"] = 'attachment; filename = "T040004.xlsx" 'msg.attach(att)server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是25server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件server.quit() # 关闭连接except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=Falseret = Falsereturn ret





























本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
