[ Python ] 用Python实现一个简单课堂点名器V5

一、任务

  1. 实现教师用户的注册和用户登陆功能,将教师用户名和密码存储在MySQL数据库。

  2. 以18网工、19网工的学生名单为例,从外部文件分别导入程序中,并将学生信息分别存入MySQL数据库中的两个表中。

  3. 实现登陆后的教师用户选择所需点名的课程和班级的功能。

  4. 随机对班级所有同学进行点名。

  5. 判断未到学生是否有请假条,有则视为请假,无则视为旷课。

  6. 对点名结束后进入教室的学生将旷课改为迟到。

  7. 对中途离开课堂学生计为早退(需要考虑学生既是迟到又是早退的情况)。

  8. 将未到学生按照请假、旷课、迟到、早退四类分别存储在MySQL数据库中的四个表中。

  9. 从MySQL数据中读取请假、旷课、迟到、早退四类信息并分别展示。
     
     

二、方案

  1. Home 模块:
    导入图形开发界面库tkinter,设计主界面完成教师用户的登录,设置按钮“登录”和“注册”,按钮分别触发界面。
    ①登录界面:教师用户输入用户名和密码后,若与MySQL数据库匹配,则进入点名界面,开始对网工18学生点名(roll_call4作为模块导入)
    ②注册界面:教师用户进行账号的注册,写入MySQL数据库。
  2. roll_call4 模块:
    ①数据:pandas包将”网工18学生名单.xls”导入,并转换为列表储存在info_list1
    ②处理:要完成随机对班级所有同学的点名,可导入random库中的shuffle()函数,对info_list1中的元素随机排序。之后进行课前点名,遍历学生名单,答到的学生放入info_list2,未达到的学生判断是否有请假条,有则放进请假学生名单(ask_list),无则暂计入旷课(no_ask_list);对no_ask_list进行第二次点名,未到则旷课,到了放进迟到名单,对info_list2进行第二次点名,未到则早退。
    ③输出:连接MySQL数据库,将info_list1、ask_list、late_list、absence_list、early_list存放的数据插入数据库对应表中。使用select语句输出请假、旷课、迟到、早退四类信息。
     
     

三、流程图

  1. 登陆注册:
    在这里插入图片描述
     
  2. roll_call4模块:
    在这里插入图片描述
     
     

四、代码

  • Module home:
# -*- coding: utf-8 -*-
import pymysql
import sys
import tkinter as tk
import tkinter.messagebox 
from tkinter import ttk

class home():
    def __init__(self):
        '''
        主界面
        '''
	self.window = tk.Tk()
        self.window.title('简单课堂点名器')    # 窗口名
        self.window.geometry('450x300')    # 窗口大小(长x宽) 乘为小x
        self.window.resizable(False, False)    # 窗口不可放大
        self.title_label = tk.Label(self.window,text='欢迎使用简单课堂点名器',font=('Arial',14))
        self.username_label = tk.Label(self.window,text='用户名')
        self.password_label = tk.Label(self.window,text='密码')
        self.username_text = tk.Entry(self.window)
        self.password_text = tk.Entry(self.window,show='●')
        self.login_button = tk.Button(self.window,text='登录',command=self.login)
        self.register_button = tk.Button(self.window,text='注册',command=self.register)
        self
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值