开发Python学生成绩管理系统:使用Tkinter和文本文件

简介: 开发Python学生成绩管理系统:使用Tkinter和文本文件

开发Python学生成绩管理系统:使用Tkinter和文本文件

在这篇文章中,我们将一步步地创建一个简单的学生成绩管理系统。这个系统将使用Python的Tkinter库来构建图形用户界面(GUI),并将学生的成绩数据存储在文本文件中。系统将包含登录、增加、删除、修改和查询学生成绩的功能。

1. 选择GUI框架

对于本项目,我们选择使用Python内置的GUI库Tkinter。Tkinter轻量级且易于使用,非常适合初学者和小型项目。

2. 设计GUI界面

我们的系统将包括以下几个界面:

  • 登录界面:用于用户登录。
  • 主界面:显示学生成绩列表,并提供增加、删除、修改和查询成绩的选项。

3. 实现功能

3.1 登录功能

登录界面允许用户输入用户名和密码进行登录。这里我们简化处理,不连接数据库,仅作为示例展示。

3.2 增删改查功能

  • 增加成绩:允许用户输入学生信息和成绩,并将其添加到系统中。
  • 删除成绩:允许用户删除指定的学生成绩。
  • 修改成绩:允许用户修改已有的学生成绩信息。
  • 查询成绩:允许用户查询特定学生的成绩。

4. 存储数据

我们将使用CSV格式的文本文件来存储学生的姓名和成绩等信息。

5. 代码实现

接下来是我们的Python代码实现:

import tkinter as tk
from tkinter import messagebox, simpledialog
import csv
import os
# 学生成绩管理系统类
class GradeSystem(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("学生成绩管理系统")
        self.geometry("500x300")
        self.filename = "grades.csv"
        self.data = []
        self.load_data()
        self.create_widgets()
    def create_widgets(self):
        # 登录按钮
        self.login_button = tk.Button(self, text="登录", command=self.login)
        self.login_button.pack()
        # 显示成绩的列表框
        self.grade_list = tk.Listbox(self)
        self.grade_list.pack(fill=tk.BOTH, expand=True)
        self.update_grade_list()
        # 增删改查按钮
        self.add_button = tk.Button(self, text="添加成绩", command=self.add_grade)
        self.add_button.pack(side=tk.LEFT)
        self.delete_button = tk.Button(self, text="删除成绩", command=self.delete_grade)
        self.delete_button.pack(side=tk.LEFT)
        self.edit_button = tk.Button(self, text="修改成绩", command=self.edit_grade)
        self.edit_button.pack(side=tk.LEFT)
        self.search_button = tk.Button(self, text="查询成绩", command=self.search_grades)
        self.search_button.pack(side=tk.LEFT)
    def login(self):
        # 简单的登录对话框
        username = simpledialog.askstring("登录", "输入用户名:")
        password = simpledialog.askstring("登录", "输入密码:", show='*')
        if username == "admin" and password == "admin":
            messagebox.showinfo("登录", "登录成功")
        else:
            messagebox.showerror("登录", "用户名或密码错误")
    def add_grade(self):
        # 添加成绩
        student = simpledialog.askstring("添加成绩", "输入学生姓名:")
        grade = simpledialog.askstring("添加成绩", "输入学生成绩:")
        if student and grade:
            self.data.append([student, grade])
            self.update_grade_list()
            self.save_data()
    def delete_grade(self):
        # 删除选中的成绩
        selected = self.grade_list.curselection()
        if selected:
            del self.data[selected[0]]
            self.update_grade_list()
            self.save_data()
    def edit_grade(self):
        # 修改选中的成绩
        selected = self.grade_list.curselection()
        if selected:
            student, grade = self.data[selected[0]]
            new_grade = simpledialog.askstring("修改成绩", f"输入{student}的新成绩:")
            if new_grade:
                self.data[selected[0]] = [student, new_grade]
                self.update_grade_list()
                self.save_data()
    def search_grades(self):
        # 查询成绩
        student = simpledialog.askstring("查询成绩", "输入学生姓名:")
        if student:
            found = [f"{s[0]}: {s[1]}" for s in self.data if s[0] == student]
            messagebox.showinfo("查询结果", "\n".join(found) if found else "未找到该学生的成绩")
    def update_grade_list(self):
        # 更新列表框内容
        self.grade_list.delete(0, tk.END)
        for student, grade in self.data:
            self.grade_list.insert(tk.END, f"{student}: {grade}")
    def load_data(self):
        # 从文件加载数据
        if os.path.exists(self.filename):
            with open(self.filename, newline='') as file:
                self.data = list(csv.reader(file))
    def save_data(self):
        # 保存数据到文件
        with open(self.filename, 'w', newline='') as file:
            writer = csv.writer(file)
            writer.writerows(self.data)
if __name__ == "__main__":
    app = GradeSystem()
    app.mainloop()

功能说明

登录功能:提供简单的登录对话框,用户需输入用户名和密码(在这个示例中,预设的用户名和密码均为“admin”)。

增加成绩:允许用户输入学生姓名和成绩,然后将其添加到系统中。

删除成绩:允许用户从列表中选择一个学生成绩并删除。

修改成绩:允许用户修改选中学生的成绩。

查询成绩:允许用户输入学生姓名来查询成绩。

数据存储:使用CSV格式的文件存储数据。

相关文章
|
1月前
|
API C++ 开发者
PySide vs PyQt:Python GUI开发史诗级对决,谁才是王者?
PySide 和 PyQt 是 Python GUI 开发领域的两大利器,各有特色。PySide 采用 LGPL 协议,更灵活;PyQt 默认 GPL,商业使用需授权。两者背后团队实力雄厚,PySide 得到 Qt 官方支持,PyQt 由 Riverbank Computing 打造。API 设计上,PySide 简洁直观,贴近原生 Qt;PyQt 增加 Pythonic 接口,操作更高效。性能方面,两者表现优异,适合不同需求的项目开发。选择时可根据项目特点与开源要求决定。
97 20
|
21天前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
201 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
2月前
|
程序员 测试技术 开发工具
怎么开发Python第三方库?手把手教你参与开源项目!
大家好,我是程序员晚枫。本文将分享如何开发Python第三方库,并以我维护的开源项目 **popdf** 为例,指导参与开源贡献。Popdf是一个PDF操作库,支持PDF转Word、转图片、合并与加密等功能。文章涵盖从fork项目、本地开发、单元测试到提交PR的全流程,适合想了解开源贡献的开发者。欢迎访问[popdf](https://gitcode.com/python4office/popdf),一起交流学习!
125 21
怎么开发Python第三方库?手把手教你参与开源项目!
|
2月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
92 6
|
2月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
57 9
|
2月前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
94 3
|
2月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的房产销售管理系统源码+运行
基于Python+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
60 2
|
IDE 开发工具 Android开发
Python开发神器PyCharm,体验下吧
Python开发神器PyCharm,体验下吧
247 0
Python开发神器PyCharm,体验下吧
|
存储 监控 IDE
猪行天下之Python基础——1.3 Python开发IDE之PyCharm(下)
内容简述: 1、为什么要使用IDE? 2、PyCharm的下载安装 3、PyCharm的基本使用 4、PyCharm程序调试 5、共用全局的Python解释器
318 0
|
IDE 开发工具 开发者
猪行天下之Python基础——1.3 Python开发IDE之PyCharm(中)
内容简述: 1、为什么要使用IDE? 2、PyCharm的下载安装 3、PyCharm的基本使用 4、PyCharm程序调试 5、共用全局的Python解释器
227 0

热门文章

最新文章

推荐镜像

更多