学生信息管理系统

我们提供学生信息管理系统招投标所需全套资料,包括学工系统介绍PPT、学生管理系统产品解决方案、
学生管理系统产品技术参数,以及对应的标书参考文件,详请联系客服。

用Python打造一个学工管理系统:从零到一的北京本地实践

2025-05-06 05:48
学生信息管理系统在线试用
学生信息管理系统
在线试用
学生信息管理系统解决方案
学生信息管理系统
解决方案下载
学生信息管理系统源码
学生信息管理系统
详细介绍
学生信息管理系统报价
学生信息管理系统
产品报价

大家好!今天咱们聊聊如何用编程技术解决实际问题。最近有朋友问我:“能不能做个系统帮我们学校管理学生的工时?”我说这事儿不难,用Python就能搞定。特别是如果你在北京,很多高校都有类似的需求,比如清华、北大这些地方,学生们做助教、助研啥的,都需要记录工时呢。

 

首先,我们要明确需求。这个系统主要干三件事:一是记录学生的基本信息(姓名、学号、联系方式等);二是记录每个学生参与工作的详细情况(工作类型、开始时间、结束时间等);三是能根据这些数据统计出每个学生的工作时长。听起来是不是挺简单?那咱们就动手吧!

 

学工管理系统

先说环境搭建。我用的是Python 3.9,安装了几个必要的库:

- `sqlite3`:用来操作数据库。

- `tkinter`:用来做一个简单的图形界面。

 

数字迎新管理系统

第一步是建数据库。我们创建一个名为 `student_work.db` 的文件,里面包含两个表——一个是学生表,另一个是工作记录表。下面是具体的SQL语句:

 

import sqlite3

# 连接数据库
conn = sqlite3.connect('student_work.db')
cursor = conn.cursor()

# 创建学生表
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    student_id TEXT UNIQUE NOT NULL,
    phone TEXT
)
''')

# 创建工作记录表
cursor.execute('''
CREATE TABLE IF NOT EXISTS work_records (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    student_id INTEGER,
    work_type TEXT NOT NULL,
    start_time TEXT NOT NULL,
    end_time TEXT NOT NULL,
    FOREIGN KEY(student_id) REFERENCES students(id)
)
''')

conn.commit()
conn.close()

 

接下来是写界面。这里用 `tkinter` 来做一个窗口,用户可以在界面上输入学生信息并提交。比如添加学生按钮会触发下面这段代码:

 

from tkinter import *
from datetime import datetime

def add_student():
    name = entry_name.get()
    student_id = entry_student_id.get()
    phone = entry_phone.get()

    conn = sqlite3.connect('student_work.db')
    cursor = conn.cursor()
    try:
        cursor.execute("INSERT INTO students (name, student_id, phone) VALUES (?, ?, ?)", 
                       (name, student_id, phone))
        conn.commit()
        status_label.config(text="学生已成功添加!")
    except Exception as e:
        status_label.config(text=f"添加失败:{e}")
    finally:
        conn.close()

root = Tk()
root.title("学工管理系统")

Label(root, text="姓名").grid(row=0, column=0)
entry_name = Entry(root)
entry_name.grid(row=0, column=1)

Label(root, text="学号").grid(row=1, column=0)
entry_student_id = Entry(root)
entry_student_id.grid(row=1, column=1)

Label(root, text="电话").grid(row=2, column=0)
entry_phone = Entry(root)
entry_phone.grid(row=2, column=1)

Button(root, text="添加学生", command=add_student).grid(row=3, column=0, columnspan=2)

status_label = Label(root, text="")
status_label.grid(row=4, column=0, columnspan=2)

root.mainloop()

 

最后一步就是统计工时啦。我们可以写个函数,根据工作记录表里的开始时间和结束时间计算总时长:

 

def calculate_total_hours(student_id):
    conn = sqlite3.connect('student_work.db')
    cursor = conn.cursor()

    cursor.execute("SELECT start_time, end_time FROM work_records WHERE student_id = ?", (student_id,))
    records = cursor.fetchall()

    total_hours = 0
    for record in records:
        start = datetime.strptime(record[0], "%Y-%m-%d %H:%M:%S")
        end = datetime.strptime(record[1], "%Y-%m-%d %H:%M:%S")
        total_hours += (end - start).total_seconds() / 3600

    return total_hours

 

这样我们就完成了一个简单的学工管理系统!虽然功能还不算复杂,但已经能满足北京高校的基本需求了。如果有兴趣的话,大家可以继续优化,比如增加导出Excel的功能,或者把界面做得更漂亮一些。

 

好了,今天的分享就到这里啦。希望大家都能动手试试,用代码解决生活中的小问题!

本站部分内容及素材来源于互联网,由AI智能生成,如有侵权或言论不当,联系必删!