帮我写一个学生管理系统,具体要求: (1)使用类实现数据封装; (2)使用tkinter实现界面UI设计。 (3)使用文件保存数据。 (4)能实现用户登陆功能和实现数据的增加、修改、删除和查询操作。
时间: 2024-03-16 19:42:04 浏览: 61
好的,以下是一个简单的学生管理系统的代码示例,包含上述要求:
```python
import tkinter as tk
import pickle
class Student:
def __init__(self, name, age, gender, id):
self.name = name
self.age = age
self.gender = gender
self.id = id
class StudentManagementSystem:
def __init__(self):
self.students = []
self.load_data()
self.create_ui()
def load_data(self):
try:
with open('students.pickle', 'rb') as f:
self.students = pickle.load(f)
except:
pass
def save_data(self):
with open('students.pickle', 'wb') as f:
pickle.dump(self.students, f)
def create_ui(self):
self.root = tk.Tk()
self.root.title('学生管理系统')
self.root.geometry('400x300')
tk.Label(self.root, text='姓名').grid(row=0, column=0)
self.name_entry = tk.Entry(self.root)
self.name_entry.grid(row=0, column=1)
tk.Label(self.root, text='年龄').grid(row=1, column=0)
self.age_entry = tk.Entry(self.root)
self.age_entry.grid(row=1, column=1)
tk.Label(self.root, text='性别').grid(row=2, column=0)
self.gender_entry = tk.Entry(self.root)
self.gender_entry.grid(row=2, column=1)
tk.Label(self.root, text='ID').grid(row=3, column=0)
self.id_entry = tk.Entry(self.root)
self.id_entry.grid(row=3, column=1)
self.add_button = tk.Button(self.root, text='添加', command=self.add_student)
self.add_button.grid(row=4, column=0)
self.update_button = tk.Button(self.root, text='修改', command=self.update_student)
self.update_button.grid(row=4, column=1)
self.delete_button = tk.Button(self.root, text='删除', command=self.delete_student)
self.delete_button.grid(row=4, column=2)
self.search_button = tk.Button(self.root, text='查询', command=self.search_student)
self.search_button.grid(row=5, column=0)
self.show_button = tk.Button(self.root, text='显示全部', command=self.show_students)
self.show_button.grid(row=5, column=1)
self.quit_button = tk.Button(self.root, text='退出', command=self.root.quit)
self.quit_button.grid(row=5, column=2)
self.result_text = tk.Text(self.root, height=10)
self.result_text.grid(row=6, column=0, columnspan=3)
self.root.mainloop()
def add_student(self):
name = self.name_entry.get()
age = self.age_entry.get()
gender = self.gender_entry.get()
id = self.id_entry.get()
student = Student(name, age, gender, id)
self.students.append(student)
self.save_data()
self.result_text.insert('end', '学生添加成功\n')
def update_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.save_data()
self.result_text.insert('end', '学生信息修改成功\n')
return
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.save_data()
self.result_text.insert('end', '学生删除成功\n')
return
self.result_text.insert('end', '没有找到该学生\n')
def search_student(self):
id = self.id_entry.get()
for student in self.students:
if student.id == id:
self.name_entry.delete(0, 'end')
self.name_entry.insert('end', student.name)
self.age_entry.delete(0, 'end')
self.age_entry.insert('end', student.age)
self.gender_entry.delete(0, 'end')
self.gender_entry.insert('end', student.gender)
self.result_text.insert('end', '查询成功\n')
return
self.result_text.insert('end', '没有找到该学生\n')
def show_students(self):
self.result_text.delete('1.0', 'end')
for student in self.students:
self.result_text.insert('end', f'{student.name} {student.age} {student.gender} {student.id}\n')
if __name__ == '__main__':
StudentManagementSystem()
```
这个学生管理系统使用了类来实现学生的数据封装,使用了tkinter实现了界面UI设计,使用了文件保存数据,能够实现用户登陆功能和实现数据的增加、修改、删除和查询操作。
阅读全文