• 售前

  • 售后

热门帖子
入门百科

如何用Python编写一个电子考勤系统

[复制链接]
天下非公呵 显示全部楼层 发表于 2021-10-25 18:48:01 |阅读模式 打印 上一主题 下一主题
实验项目简介


学校现在必要实现一个电子考勤体系,思量到你们班已经学过大数据应用开发语言Python,准备让你们实现部分门生端考勤功能。颠末和老师的沟通,你相识到:
(1) 现在该体系已经被学长实现了部分功能,你们只必要完成剩余功能即可,必要你们完成的功能会利用
#todo的情势举行标注, todo背面会列出这个地方的功能,情势如下。

(2) 门生信息存储在stu_infos.csv文件中,第一行是列名行,背面每一行都是一个门生的信息,包含学号,姓名,密码。内容情势如下:

(3) 考勤记录最终会被保存到attendance.csv文件中,第一行是列名行,背面每一行代表一个门生的考勤信息,包含学号,姓名,时间,考勤状态(只有出勤、迟到、告假、缺勤四种状态)。内容格式如下:

(4) 门生信息必要首先被加载到student_infos列表中,student_info中的每个元素都是一个字典,字典中的键都是各自列名,而值则是每一行内容,按照示例数据构造出来的student_infos列表如下。

(5) 考勤体系老师端总共有两个Python文件,一个main.py文件,该文件作为入口步调文件,实现主体框架,主体流程就是:加载数据 登录 添加考勤数据;一个stu_attendance.py文件,界说了数据加载、登录等函数。
答题要求:
(1) 在stu_info.csv文件末尾添加一行自己的信息,密码随意写,名字和学号必须是自己
(2) 检察两个Python文件中的todo表明,添加符合代码,最终提供添加的代码。
(3) 测试步调功能,提供步调运行截图。举行登录验证的时候利用自己的学号举行登录验证,并且必要测试如下2个分支:3次都登录失败的情况、登录乐成后乐成添加考勤数据。
附加功能
添加一个查询功能,输入一个门生的姓名就可以获取他的出勤数据信息
导入模块
  1. import csv
  2. import time
  3. student_infos = []
复制代码
加载数据
  1. def load_stu_info():
  2.   """
  3.   加载学生信息
  4.   从stu_infos.csv文件中加载数据
  5.   :return: 无
  6.   """
  7.   with open(r"stu_infos.csv", encoding='utf-8-sig') as file:
  8.     f_csv = csv.reader(file)
  9.     header = next(f_csv)
  10.     for row in f_csv:
  11.       student_info = {}
  12.       for index in range(3):
  13.         student_info[header[index]] = row[index]
  14.       student_infos.append(student_info)
复制代码
登录
  1. def login():
  2.   """
  3.   用户使用学号和密码进行登录
  4.   最多让用户登录三次,如果连续三次都登录失败(用户名或者密码错误),只要密码和用户都正确表示登录成功
  5.   :return:登录成功返回True和学号,三次都登录失败返回False和None
  6.   """
  7.   retry_time = 0
  8.   while retry_time < 3:
  9.     user_no = input('请输入登录账号:')
  10.     password = input('请输入密码:')
  11.     for i in student_infos:
  12.       if i['no']==user_no and i['password']==password:
  13.         return True,user_no
  14.     print('用户名或者密码错误!!!请重新输入。')
  15.     retry_time += 1
  16.   else:
  17.     return False, None
复制代码
考勤记录写入
  1. def add(user_no):
  2.   for x in student_infos:
  3.     if user_no==x['no']:
  4.       name=x['name']
  5.       break
  6.   times=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
  7.   choices=['出勤','迟到','请假','缺勤']
  8.   a=int(input("\t该学生出勤情况:1-出勤\t2-迟到\t3-请假\t4-缺勤:"))
  9.   if a==1:
  10.     data=choices[0]
  11.   elif a==2:
  12.     data=choices[1]
  13.   elif a==3:
  14.     data=choices[2]
  15.   else:
  16.     data=choices[3]
  17.   with open(r"attendance.csv",'a+',newline='', encoding='utf-8') as f:
  18.     wf = csv.writer(f)
  19.     wf.writerow([user_no,name,times,data])#写入一行数据
  20.     print("{}同学{}数据已经写入成功!操作时间是{}".format(name,data,times))
复制代码
查询考勤记录
  1. def select():
  2.   student = []
  3.   with open(r"attendance.csv", encoding='utf-8-sig') as file:
  4.     f_csv = csv.reader(file)
  5.     header = next(f_csv)
  6.     for row in f_csv:
  7.       students = {}
  8.       for index in range(4):
  9.         students[header[index]] = row[index]
  10.       student.append(students)
  11.     name=input("请输入你需要查找的姓名:")
  12.     print(" 学号\t\t姓名\t\t操作时间\t\t出勤状态")
  13.     for a in student:
  14.       if a['name']==name:
  15.         print(a['no']+'\t'+a['name']+'\t'+a['time']+'\t\t'+a['state'])
  16.       else:
  17.         print("无此人!!!")
  18.         break
复制代码
主函数我就不给出了,有必要的可以自己编写一下,假如必要可以私信我或者在这里下载数据集和源码哟!!!
点击下载!
看看运行结果哟!



每文一语
  1. 创作的思路来源于生活中细微的品味,勿骄勿躁,才是王道
复制代码
到此这篇关于用Python编写一个电子考勤体系的文章就先容到这了,更多相干用Python编写一个电子考勤体系内容请搜索草根技能分享以前的文章或继续浏览下面的相干文章希望各人以后多多支持草根技能分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作