用python编写一个可视化的学生管理系统
时间: 2023-09-16 09:10:22 浏览: 39
好的,我可以给你提供一个基于Tkinter的单的学生管理系统示例代码。该可以添加、删除、修改和查询学生信息,并将学生信息保存到本地文件中(txt格式)。
代码如下:
python
from tkinter import *
import tkinter.messagebox as messagebox
class Student:
def __init__(self, name, id, age, gender):
self.name = name
self.id = id
self.age = age
self.gender = gender
class StudentManagementSystem:
def __init__(self):
self.window = Tk()
self.window.title("学生管理系统")
self.window.geometry("500x300")
self.students = []
Label(self.window, text="姓名").grid(row=0, column=0)
Label(self.window, text="学号").grid(row=1, column=0)
Label(self.window, text="年龄").grid(row=2, column=0)
Label(self.window, text="性别").grid(row=3, column=0)
self.name_entry = Entry(self.window)
self.id_entry = Entry(self.window)
self.age_entry = Entry(self.window)
self.gender_entry = Entry(self.window)
self.name_entry.grid(row=0, column=1)
self.id_entry.grid(row=1, column=1)
self.age_entry.grid(row=2, column=1)
self.gender_entry.grid(row=3, column=1)
Button(self.window, text="添加学生", command=self.add_student).grid(row=4, column=0, pady=10)
Button(self.window, text="删除学生", command=self.delete_student).grid(row=4, column=1, pady=10)
Button(self.window, text="修改学生", command=self.modify_student).grid(row=4, column=2, pady=10)
Button(self.window, text="查询学生", command=self.query_student).grid(row=5, column=0, pady=10)
Button(self.window, text="显示所有学生", command=self.show_all_students).grid(row=5, column=1, pady=10)
Button(self.window, text="保存学生信息", command=self.save_students).grid(row=5, column=2, pady=10)
self.result_text = Text(self.window, height=8, width=50)
self.result_text.grid(row=6, columnspan=3)
self.load_students()
def add_student(self):
name = self.name_entry.get()
id = self.id_entry.get()
age = self.age_entry.get()
gender = self.gender_entry.get()
student = Student(name, id, age, gender)
self.students.append(student)
self.result_text.insert(END, "添加成功!\n")
def delete_student(self):
id = self.id_entry.get()
for student in self.students:
if student.id == id:
self.students.remove(student)
self.result_text.insert(END, "删除成功!\n")
return
self.result_text.insert(END, "学号不存在!\n")
def modify_student(self):
id = self.id_entry.get()
for student in self.students:
if student.id == id:
student.name = self.name_entry.get()
student.age = self.age_entry.get()
student.gender = self.gender_entry.get()
self.result_text.insert(END, "修改成功!\n")
return
self.result_text.insert(END, "学号不存在!\n")
def query_student(self):
id = self.id_entry.get()
for student in self.students:
if student.id == id:
self.name_entry.delete(0, END)
self.age_entry.delete(0, END)
self.gender_entry.delete(0, END)
self.name_entry.insert(END, student.name)
self.age_entry.insert(END, student.age)
self.gender_entry.insert(END, student.gender)
self.result_text.insert(END, "查询成功!\n")
return
self.result_text.insert(END, "学号不存在!\n")
def show_all_students(self):
self.result_text.delete(1.0, END)
for student in self.students:
self.result_text.insert(END, "姓名:{},学号:{},年龄:{},性别:{}\n".format(student.name, student.id, student.age, student.gender))
def save_students(self):
with open("students.txt", "w") as f:
for student in self.students:
f.write("{},{},{},{}\n".format(student.name, student.id, student.age, student.gender))
messagebox.showinfo("提示", "保存成功!")
def load_students(self):
try:
with open("students.txt", "r") as f:
for line in f:
name, id, age, gender = line.strip().split(",")
student = Student(name, id, age, gender)
self.students.append(student)
except FileNotFoundError:
pass
def run(self):
self.window.mainloop()
if __name__ == "__main__":
system = StudentManagementSystem()
system.run()
```
该系统包含一个Student类和一个StudentManagementSystem类。Student类用于存储学生信息,而StudentManagementSystem类实现了添加、删除、修改和查询学生信息等功能。
你可以将该代码保存为student_management_system.py文件,并在终端执行以下命令来运行该系统:
```bash
python student_management_system.py
```
运行后,会弹出一个窗口,你可以在窗口中进行各种操作。同时,学生信息会保存到本地文件中,下次打开程序时可以自动加载之前保存的信息。