Python GUI 学生学籍管理系统 - 添加、删除、更新和搜索
以下是一个简单的学籍管理系统的 Python GUI 示例代码,使用 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
class StudentManagementSystem:
def __init__(self, window):
self.window = window
self.window.title('学籍管理系统')
self.students = []
self.name_label = tk.Label(window, text='姓名')
self.name_label.grid(row=0, column=0)
self.name_entry = tk.Entry(window)
self.name_entry.grid(row=0, column=1)
self.gender_label = tk.Label(window, text='性别')
self.gender_label.grid(row=1, column=0)
self.gender_entry = tk.Entry(window)
self.gender_entry.grid(row=1, column=1)
self.age_label = tk.Label(window, text='年龄')
self.age_label.grid(row=2, column=0)
self.age_entry = tk.Entry(window)
self.age_entry.grid(row=2, column=1)
self.student_id_label = tk.Label(window, text='学号')
self.student_id_label.grid(row=3, column=0)
self.student_id_entry = tk.Entry(window)
self.student_id_entry.grid(row=3, column=1)
self.grade_label = tk.Label(window, text='年级')
self.grade_label.grid(row=4, column=0)
self.grade_entry = tk.Entry(window)
self.grade_entry.grid(row=4, column=1)
self.python_score_label = tk.Label(window, text='Python成绩')
self.python_score_label.grid(row=5, column=0)
self.python_score_entry = tk.Entry(window)
self.python_score_entry.grid(row=5, column=1)
self.c_score_label = tk.Label(window, text='C语言成绩')
self.c_score_label.grid(row=6, column=0)
self.c_score_entry = tk.Entry(window)
self.c_score_entry.grid(row=6, column=1)
self.db_score_label = tk.Label(window, text='数据库成绩')
self.db_score_label.grid(row=7, column=0)
self.db_score_entry = tk.Entry(window)
self.db_score_entry.grid(row=7, column=1)
self.add_button = tk.Button(window, text='添加学生', command=self.add_student)
self.add_button.grid(row=8, column=0)
self.show_button = tk.Button(window, text='显示学生信息', command=self.show_students)
self.show_button.grid(row=8, column=1)
self.delete_button = tk.Button(window, text='删除学生', command=self.delete_student)
self.delete_button.grid(row=9, column=0)
self.search_button = tk.Button(window, text='搜索学生', command=self.search_student)
self.search_button.grid(row=9, column=1)
self.update_button = tk.Button(window, text='更新学生信息', command=self.update_student)
self.update_button.grid(row=10, column=0)
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.students.append(student)
messagebox.showinfo('成功', '学生信息已添加')
self.clear_entries()
def show_students(self):
result = ''
for student in self.students:
result += f'姓名: {student.name}
性别: {student.gender}
年龄: {student.age}
学号: {student.student_id}
年级: {student.grade}
Python成绩: {student.python_score}
C语言成绩: {student.c_score}
数据库成绩: {student.db_score}
'
messagebox.showinfo('学生信息', result)
def delete_student(self):
student_id = self.student_id_entry.get()
for student in self.students:
if student.student_id == student_id:
self.students.remove(student)
messagebox.showinfo('成功', '学生信息已删除')
self.clear_entries()
return
messagebox.showinfo('错误', '未找到该学生')
def search_student(self):
student_id = self.student_id_entry.get()
for student in self.students:
if student.student_id == student_id:
messagebox.showinfo('学生信息', f'姓名: {student.name}
性别: {student.gender}
年龄: {student.age}
学号: {student.student_id}
年级: {student.grade}
Python成绩: {student.python_score}
C语言成绩: {student.c_score}
数据库成绩: {student.db_score}')
self.clear_entries()
return
messagebox.showinfo('错误', '未找到该学生')
def update_student(self):
student_id = self.student_id_entry.get()
for student in self.students:
if student.student_id == student_id:
student.name = self.name_entry.get()
student.gender = self.gender_entry.get()
student.age = self.age_entry.get()
student.grade = self.grade_entry.get()
student.python_score = self.python_score_entry.get()
student.c_score = self.c_score_entry.get()
student.db_score = self.db_score_entry.get()
messagebox.showinfo('成功', '学生信息已更新')
self.clear_entries()
return
messagebox.showinfo('错误', '未找到该学生')
def clear_entries(self):
self.name_entry.delete(0, tk.END)
self.gender_entry.delete(0, tk.END)
self.age_entry.delete(0, tk.END)
self.student_id_entry.delete(0, tk.END)
self.grade_entry.delete(0, tk.END)
self.python_score_entry.delete(0, tk.END)
self.c_score_entry.delete(0, tk.END)
self.db_score_entry.delete(0, tk.END)
window = tk.Tk()
student_management_system = StudentManagementSystem(window)
window.mainloop()
该程序使用了tkinter库构建了一个简单的GUI界面,其中包含了添加学生、显示学生信息、删除学生、搜索学生和更新学生信息等功能。学生信息被存储在一个列表中,并可以将学生信息记录到文本文件中。
请注意,此代码只提供了基本的功能示例,可能需要根据实际需求进行修改和完善。
原文地址: https://www.cveoy.top/t/topic/plJ9 著作权归作者所有。请勿转载和采集!