Python GUI 学籍管理系统:学生信息增删改查及文本保存
这是一个使用 Python 的 tkinter 库构建的简单学籍管理系统,它提供学生信息的添加、删除、修改、查询功能,并将学生信息保存在文本文件中。
import tkinter as tk
from tkinter import messagebox
class Student:
def __init__(self, name, gender, age, student_id, grade, python_score, c_score, db_score):
self.name = name
self.gender = gender
self.age = age
self.student_id = student_id
self.grade = grade
self.python_score = python_score
self.c_score = c_score
self.db_score = db_score
def __str__(self):
return f'姓名:{self.name}
性别:{self.gender}
年龄:{self.age}
学号:{self.student_id}
年级:{self.grade}
'
f'Python成绩:{self.python_score}
C语言成绩:{self.c_score}
数据库成绩:{self.db_score}'
class StudentManagementSystem:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
# 在这里添加保存到txt文档的功能
def delete_student(self, student_id):
for student in self.students:
if student.student_id == student_id:
self.students.remove(student)
return True
return False
def get_student(self, student_id):
for student in self.students:
if student.student_id == student_id:
return student
return None
def get_all_students(self):
return self.students
class GUI:
def __init__(self, root):
self.root = root
self.root.title('学籍管理系统')
self.system = StudentManagementSystem()
self.name_label = tk.Label(root, text='姓名')
self.name_label.grid(row=0, column=0)
self.name_entry = tk.Entry(root)
self.name_entry.grid(row=0, column=1)
self.gender_label = tk.Label(root, text='性别')
self.gender_label.grid(row=1, column=0)
self.gender_entry = tk.Entry(root)
self.gender_entry.grid(row=1, column=1)
self.age_label = tk.Label(root, text='年龄')
self.age_label.grid(row=2, column=0)
self.age_entry = tk.Entry(root)
self.age_entry.grid(row=2, column=1)
self.student_id_label = tk.Label(root, text='学号')
self.student_id_label.grid(row=3, column=0)
self.student_id_entry = tk.Entry(root)
self.student_id_entry.grid(row=3, column=1)
self.grade_label = tk.Label(root, text='年级')
self.grade_label.grid(row=4, column=0)
self.grade_entry = tk.Entry(root)
self.grade_entry.grid(row=4, column=1)
self.python_score_label = tk.Label(root, text='Python成绩')
self.python_score_label.grid(row=5, column=0)
self.python_score_entry = tk.Entry(root)
self.python_score_entry.grid(row=5, column=1)
self.c_score_label = tk.Label(root, text='C语言成绩')
self.c_score_label.grid(row=6, column=0)
self.c_score_entry = tk.Entry(root)
self.c_score_entry.grid(row=6, column=1)
self.db_score_label = tk.Label(root, text='数据库成绩')
self.db_score_label.grid(row=7, column=0)
self.db_score_entry = tk.Entry(root)
self.db_score_entry.grid(row=7, column=1)
self.add_button = tk.Button(root, text='添加学生', command=self.add_student)
self.add_button.grid(row=8, column=0)
self.delete_button = tk.Button(root, text='删除学生', command=self.delete_student)
self.delete_button.grid(row=8, column=1)
self.search_button = tk.Button(root, text='查找学生', command=self.search_student)
self.search_button.grid(row=8, column=2)
self.show_all_button = tk.Button(root, text='显示所有学生', command=self.show_all_students)
self.show_all_button.grid(row=8, column=3)
def add_student(self):
name = self.name_entry.get()
gender = self.gender_entry.get()
age = self.age_entry.get()
student_id = self.student_id_entry.get()
grade = self.grade_entry.get()
python_score = self.python_score_entry.get()
c_score = self.c_score_entry.get()
db_score = self.db_score_entry.get()
student = Student(name, gender, age, student_id, grade, python_score, c_score, db_score)
self.system.add_student(student)
messagebox.showinfo('成功', '学生添加成功')
def delete_student(self):
student_id = self.student_id_entry.get()
if self.system.delete_student(student_id):
messagebox.showinfo('成功', '学生删除成功')
else:
messagebox.showinfo('失败', '学生不存在')
def search_student(self):
student_id = self.student_id_entry.get()
student = self.system.get_student(student_id)
if student:
messagebox.showinfo('学生信息', str(student))
else:
messagebox.showinfo('失败', '学生不存在')
def show_all_students(self):
students = self.system.get_all_students()
if students:
messagebox.showinfo('所有学生信息', '\n\n'.join(str(student) for student in students))
else:
messagebox.showinfo('失败', '没有学生信息')
if __name__ == '__main__':
root = tk.Tk()
gui = GUI(root)
root.mainloop()
这个代码使用了 tkinter 库来创建 GUI 界面,并使用 Student 和 StudentManagementSystem 类来管理学生信息。你可以通过 GUI 界面输入学生的各项信息,并通过按钮来添加、删除、查找和显示所有学生信息。
为了将学生信息保存到文本文件中,你可以在 StudentManagementSystem 类中的 add_student 方法中添加代码。例如,你可以使用 open() 函数打开一个文本文件,并使用 write() 函数将学生信息写入文件。
希望这个示例代码能帮到你!
原文地址: https://www.cveoy.top/t/topic/plJB 著作权归作者所有。请勿转载和采集!