欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何用Python編寫一個電子考勤系統(tǒng)

 更新時間:2021年02月08日 08:42:12   作者:王小王-123  
這篇文章主要介紹了用Python編寫一個電子考勤系統(tǒng),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

實驗項目簡介

在這里插入圖片描述

在這里插入圖片描述

學校現(xiàn)在需要實現(xiàn)一個電子考勤系統(tǒng),考慮到你們班已經(jīng)學過大數(shù)據(jù)應用開發(fā)語言Python,準備讓你們實現(xiàn)部分學生端考勤功能。經(jīng)過和老師的溝通,你了解到:
(1) 目前該系統(tǒng)已經(jīng)被學長實現(xiàn)了部分功能,你們只需要完成剩余功能即可,需要你們完成的功能會使用
#todo的形式進行標注, todo后面會列出這個地方的功能,形式如下。

在這里插入圖片描述

(2) 學生信息存儲在stu_infos.csv文件中,第一行是列名行,后面每一行都是一個學生的信息,包含學號,姓名,密碼。內容形式如下:

在這里插入圖片描述

(3) 考勤記錄最終會被保存到attendance.csv文件中,第一行是列名行,后面每一行代表一個學生的考勤信息,包含學號,姓名,時間,考勤狀態(tài)(只有出勤、遲到、請假、缺勤四種狀態(tài))。內容格式如下:

在這里插入圖片描述

(4) 學生信息需要首先被加載到student_infos列表中,student_info中的每個元素都是一個字典,字典中的鍵都是各自列名,而值則是每一行內容,按照示例數(shù)據(jù)構造出來的student_infos列表如下。

在這里插入圖片描述

(5) 考勤系統(tǒng)老師端總共有兩個Python文件,一個main.py文件,該文件作為入口程序文件,實現(xiàn)主體框架,主體流程就是:加載數(shù)據(jù) 登錄 添加考勤數(shù)據(jù);一個stu_attendance.py文件,定義了數(shù)據(jù)加載、登錄等函數(shù)。

答題要求:
(1) 在stu_info.csv文件末尾添加一行自己的信息,密碼隨意寫,名字和學號必須是自己
(2) 查看兩個Python文件中的todo注釋,添加合適代碼,最終提供添加的代碼。
(3) 測試程序功能,提供程序運行截圖。進行登錄驗證的時候使用自己的學號進行登錄驗證,并且需要測試如下2個分支:3次都登錄失敗的情況、登錄成功后成功添加考勤數(shù)據(jù)。

附加功能

添加一個查詢功能,輸入一個學生的姓名就可以獲取他的出勤數(shù)據(jù)信息

導入模塊

import csv
import time
student_infos = []

加載數(shù)據(jù)

def load_stu_info():
  """
  加載學生信息
  從stu_infos.csv文件中加載數(shù)據(jù)
  :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():
  """
  用戶使用學號和密碼進行登錄
  最多讓用戶登錄三次,如果連續(xù)三次都登錄失敗(用戶名或者密碼錯誤),只要密碼和用戶都正確表示登錄成功
  :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])#寫入一行數(shù)據(jù)
    print("{}同學{}數(shù)據(jù)已經(jīng)寫入成功!操作時間是{}".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出勤狀態(tài)")
    for a in student:
      if a['name']==name:
        print(a['no']+'\t'+a['name']+'\t'+a['time']+'\t\t'+a['state'])
      else:
        print("無此人?。?!")
        break

主函數(shù)我就不給出了,有需要的可以自己編寫一下,如果需要可以私信我或者在這里下載數(shù)據(jù)集和源碼喲?。。?/strong>

點擊下載!

看看運行效果喲!

在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

每文一語

創(chuàng)作的思路來源于生活中細微的品味,勿驕勿躁,才是王道

到此這篇關于用Python編寫一個電子考勤系統(tǒng)的文章就介紹到這了,更多相關用Python編寫一個電子考勤系統(tǒng)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • web.py中調用文件夾內模板的方法

    web.py中調用文件夾內模板的方法

    這篇文章主要介紹了web.py中調用文件夾內模板的方法,竟然如此的簡單,而且好用,需要的朋友可以參考下
    2014-08-08
  • Python 通過截圖匹配原圖中的位置(opencv)實例

    Python 通過截圖匹配原圖中的位置(opencv)實例

    今天小編就為大家分享一篇Python 通過截圖匹配原圖中的位置(opencv)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • matplotlib部件之套索Lasso的使用

    matplotlib部件之套索Lasso的使用

    這篇文章主要介紹了matplotlib部件之套索Lasso的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Django多數(shù)據(jù)庫配置及逆向生成model教程

    Django多數(shù)據(jù)庫配置及逆向生成model教程

    這篇文章主要介紹了Django多數(shù)據(jù)庫配置及逆向生成model教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python 中的命名空間,你真的了解嗎?

    python 中的命名空間,你真的了解嗎?

    這篇文章主要介紹了python 中命名空間的相關資料,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-08-08
  • 怎么使用python生成詞云圖

    怎么使用python生成詞云圖

    這篇文章主要給大家介紹了關于怎么使用python生成詞云圖的相關資料,詞云圖主要用途是將文本數(shù)據(jù)中出現(xiàn)頻率較高的關鍵詞以可視化的形式展現(xiàn)出來,使人一眼就可以領略文本數(shù)據(jù)的主要表達意思,需要的朋友可以參考下
    2023-06-06
  • 解決uWSGI的編碼問題詳解

    解決uWSGI的編碼問題詳解

    最近在用Flask 寫的應用通過 Supervisor+uWSGI 部署到正式服務器上時出現(xiàn)了錯誤,通過查找相關的資料終于解決了,所以想著分享出來給大家,下面這篇文章主要介紹了解決uWSGI的編碼問題的相關資料,需要的朋友可以參考下。
    2017-03-03
  • Python使用ffmpeg合成視頻、音頻的實現(xiàn)方法

    Python使用ffmpeg合成視頻、音頻的實現(xiàn)方法

    這篇文章主要介紹了Python使用ffmpeg合成視頻、音頻,通過本文的學習能幫助大家了解如何在python中調用ffmpeg模塊,對此進行音視頻合并,完成視頻合成,需要的朋友可以參考下
    2022-04-04
  • pytest實現(xiàn)多種調用方式

    pytest實現(xiàn)多種調用方式

    pytest是一個非常成熟的全功能的Python測試框架,本文主要介紹了pytest多種調用方式,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Python BeautifulSoup庫的高級特性詳解

    Python BeautifulSoup庫的高級特性詳解

    在Python的網(wǎng)絡爬蟲中,BeautifulSoup庫是一個強大的工具,用于解析HTML和XML文檔并提取其中的數(shù)據(jù),在這篇文章中,我們將深入研究BeautifulSoup的一些高級特性,讓您的爬蟲工作更高效,更強大,需要的朋友可以參考下
    2023-08-08

最新評論