这是一个使用 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 界面,并使用 StudentStudentManagementSystem 类来管理学生信息。你可以通过 GUI 界面输入学生的各项信息,并通过按钮来添加、删除、查找和显示所有学生信息。

为了将学生信息保存到文本文件中,你可以在 StudentManagementSystem 类中的 add_student 方法中添加代码。例如,你可以使用 open() 函数打开一个文本文件,并使用 write() 函数将学生信息写入文件。

希望这个示例代码能帮到你!

Python GUI 学籍管理系统:学生信息增删改查及文本保存

原文地址: https://www.cveoy.top/t/topic/plJB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录