班级信息收集系统

发布时间 2023-12-29 10:50:06作者: 赵国龙
import pandas as pd
import tkinter as tk
from tkinter import messagebox

class_info = pd.read_excel(r"F:\WXWork\工作簿1.xlsx")

root = tk.Tk()
root.title('班级信息收集')

window_width = 400
window_height = 300

screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()

x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2

root.geometry(f'{window_width}x{window_height}+{x}+{y}')

def register():
global class_info
student_id = entry_id.get()
class_name = entry_class.get()
student_name = entry_name.get()

if not student_id or not class_name or not student_name:
messagebox.showerror('错误', '请填写完整信息')
else:

if student_id in class_info['学号'].values:
messagebox.showerror('错误', '该学号已被注册')
else:

new_record = pd.DataFrame({'学号': [student_id], '班级': [class_name], '姓名': [student_name]})
class_info = class_info._append(new_record, ignore_index=True)
messagebox.showinfo('成功', '注册成功')
class_info.to_excel('students.xlsx', index=False)


def query():
student_name = entry_query_name.get()
class_name = entry_query_class.get()
if not class_name or not student_name:
messagebox.showerror('错误', '请填写完整信息')
else:
result = class_info[(class_info['姓名'] == student_name) & (class_info['班级'] == class_name)]['学号']
if len(result) == 0:
messagebox.showinfo('查询结果', '未找到该同学')
else:
messagebox.showinfo('查询结果', f'学号为: {result.values[0]}')


label_id = tk.Label(root, text='学号', font=('Arial', 12), padx=10, pady=5)
label_id.grid(row=0, column=0)
entry_id = tk.Entry(root, font=('Arial', 12))
entry_id.grid(row=0, column=1)

label_class = tk.Label(root, text='班级', font=('Arial', 12), padx=10, pady=5)
label_class.grid(row=1, column=0)
entry_class = tk.Entry(root, font=('Arial', 12))
entry_class.grid(row=1, column=1)

label_name = tk.Label(root, text='姓名', font=('Arial', 12), padx=10, pady=5)
label_name.grid(row=2, column=0)
entry_name = tk.Entry(root, font=('Arial', 12))
entry_name.grid(row=2, column=1)

button_register = tk.Button(root, text='注册', font=('Arial', 12), bg='white', fg='black', command=register)
button_register.grid(row=3, column=0, columnspan=2, padx=10, pady=5)

label_query_class = tk.Label(root, text='查询班级', font=('Arial', 12), padx=10, pady=5)
label_query_class.grid(row=4, column=0)
entry_query_class = tk.Entry(root, font=('Arial', 12))
entry_query_class.grid(row=4, column=1)

label_query_name = tk.Label(root, text='查询姓名', font=('Arial', 12), padx=10, pady=5)
label_query_name.grid(row=5, column=0)
entry_query_name = tk.Entry(root, font=('Arial', 12))
entry_query_name.grid(row=5, column=1)

button_query = tk.Button(root, text='查询', font=('Arial', 12), bg='white', fg='black', command=query)
button_query.grid(row=6, column=0, columnspan=2, padx=10, pady=5)

root.mainloop()