用 Python 写了一个电子考勤系统

今天给大家分享一个比较有意思的Python应用,用 Python 写了一个电子考勤系统,源码已在文章全部给出,记得点赞收藏哦~

项目简介

学校现在需要实现一个电子考勤系统,考虑到你们班已经学过大数据应用开发语言Python,准备让你们实现部分学生端考勤功能。经过和老师的沟通,你了解到:

(1) 目前该系统已经被学长实现了部分功能,你们只需要完成剩余功能即可,需要你们完成的功能会使用

#todo的形式进行标注, todo后面会列出这个地方的功能,形式如下。

用 Python 写了一个电子考勤系统_第1张图片

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

用 Python 写了一个电子考勤系统_第2张图片

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

用 Python 写了一个电子考勤系统_第3张图片

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

用 Python 写了一个电子考勤系统_第4张图片

(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  
  

主函数main.py

from student.stu_attendance import *  
if __name__ == '__main__':  
    load_stu_info()  
    success, stu_no = login()  
    print(stu_no)  
    if success:  
        print('登录成功!')  
        add(stu_no)  
        q=int(input("你想要查询出勤数据吗?\tyes(1)--no(0)"))  
        if q==1:  
            select()  
        else:  
            print("欢迎下次登录电子考勤系统")  
    else:  
        print('登录失败')  

看看运行效果哟!

用 Python 写了一个电子考勤系统_第5张图片

用 Python 写了一个电子考勤系统_第6张图片

用 Python 写了一个电子考勤系统_第7张图片

用 Python 写了一个电子考勤系统_第8张图片

以上就是“用 Python 写了一个电子考勤系统”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

你可能感兴趣的:(python,开发语言)