• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    如何用Python编写一个电子考勤系统

    实验项目简介

    学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应用开发语言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次都登录失败的情况、登录成功后成功添加考勤数据。

    附加功能

    添加一个查询功能,输入一个学生的姓名就可以获取他的出勤数据信息

    导入模块

    import csv
    import time
    student_infos = []

    加载数据

    def load_stu_info():
      """
      加载学生信息
      从stu_infos.csv文件中加载数据
      :return: 无
      """
      with open(r"stu_infos.csv", encoding='utf-8-sig') as file:
        f_csv = csv.reader(file)
        header = next(f_csv)
        for row in f_csv:
          student_info = {}
          for index in range(3):
            student_info[header[index]] = row[index]
          student_infos.append(student_info)

    登录

    def login():
      """
      用户使用学号和密码进行登录
      最多让用户登录三次,如果连续三次都登录失败(用户名或者密码错误),只要密码和用户都正确表示登录成功
      :return:登录成功返回True和学号,三次都登录失败返回False和None
      """
      retry_time = 0
      while retry_time  3:
        user_no = input('请输入登录账号:')
        password = input('请输入密码:')
        for i in student_infos:
          if i['no']==user_no and i['password']==password:
            return True,user_no
        print('用户名或者密码错误!!!请重新输入。')
        retry_time += 1
      else:
        return False, None

    考勤记录写入

    def add(user_no):
      for x in student_infos:
        if user_no==x['no']:
          name=x['name']
          break
      times=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
      choices=['出勤','迟到','请假','缺勤']
      a=int(input("\t该学生出勤情况:1-出勤\t2-迟到\t3-请假\t4-缺勤:"))
      if a==1:
        data=choices[0]
      elif a==2:
        data=choices[1]
      elif a==3:
        data=choices[2]
      else:
        data=choices[3]
      with open(r"attendance.csv",'a+',newline='', encoding='utf-8') as f:
        wf = csv.writer(f)
        wf.writerow([user_no,name,times,data])#写入一行数据
        print("{}同学{}数据已经写入成功!操作时间是{}".format(name,data,times))

    查询考勤记录

    def select():
      student = []
      with open(r"attendance.csv", encoding='utf-8-sig') as file:
        f_csv = csv.reader(file)
        header = next(f_csv)
        for row in f_csv:
          students = {}
          for index in range(4):
            students[header[index]] = row[index]
          student.append(students)
        name=input("请输入你需要查找的姓名:")
        print(" 学号\t\t姓名\t\t操作时间\t\t出勤状态")
        for a in student:
          if a['name']==name:
            print(a['no']+'\t'+a['name']+'\t'+a['time']+'\t\t'+a['state'])
          else:
            print("无此人!!!")
            break

    主函数我就不给出了,有需要的可以自己编写一下,如果需要可以私信我或者在这里下载数据集和源码哟!!!

    点击下载!

    看看运行效果哟!


    每文一语

    创作的思路来源于生活中细微的品味,勿骄勿躁,才是王道

    到此这篇关于用Python编写一个电子考勤系统的文章就介绍到这了,更多相关用Python编写一个电子考勤系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • face++与python实现人脸识别签到(考勤)功能
    • Python基于Opencv来快速实现人脸识别过程详解(完整版)
    • 20行python代码实现人脸识别
    • Python人脸识别第三方库face_recognition接口说明文档
    • 500行Python代码打造刷脸考勤系统
    • python opencv人脸识别考勤系统的完整源码
    上一篇:python编程的核心知识点总结
    下一篇:python 30行代码实现蚂蚁森林自动偷能量
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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