python学生成绩管理系统【完整版】

这是一个用Python编写的完整学生成绩管理系统,包括录入、查询、删除和修改成绩的功能。系统利用Tkinter创建图形用户界面,结合JSON文件进行数据存储。通过`db.py`处理数据操作,`MenuPage.py`实现菜单页面,`view.py`负责输入和查询界面的创建。用户可以方便地录入、查询、删除和更新学生分数。
摘要由CSDN通过智能技术生成

db.py

import json

class StudentDB(object):

def init(self):

self.students = []

self._load_students_data()

def insert(self, student):

self.students.append(student)

print(self.students)

def all(self):

return self.students

def delete_by_name(self, name): # 删除数据

for student in self.students:

if name == student[“name”]:

self.students.remove(student)

break

else:

return False

return True

查询

def search_by_name(self, name):

for student in self.students:

if name == student[“name”]:

return student # 姓名+成绩

else:

return False

修改

def update(self, stu): # 修改数据

name = stu[“name”]

for student in self.students:

if name == student[“name”]:

student.update(stu)

return True

else:

return False

加载文件

def _load_students_data(self):

with open(“students.txt”, “r”, encoding=“utf-8”) as f:

text = f.read()

if text:

self.students = json.loads(text)

保存数据

def save_data(self):

with open(“students.txt”, ‘w’, encoding=“utf-8”) as f:

text = json.dumps(self.students, ensure_ascii=False)

f.write(text)

db = StudentDB()

MenuPage.py

import tkinter as tk

from view import *

class MenuPage(object):

def init(self, master=None):

self.root = master

self.root.geometry(‘%dx%d’ % (600, 400))

self.create_page()

self.input_page = InputFrame(self.root)

self.query_page = QuerryFrame(self.root)

self.delete_page = DeleteFrame(self.root)

self.update_page = UpdateFrame(self.root)

self.about_page = AboutFrame(self.root)

self.input_page.pack()

def create_page(self):

创建菜单对象

menubar = tk.Menu(self.root)

add_command 添加

menubar.add_command(label=“录入”, command=self.input_data) # label

menubar.add_command(label=“查询”, command=self.query_data) # label

menubar.add_command(label=“删除”, command=self.delete_data) # label

menubar.add_command(label=“修改”, command=self.update_data) # label

menubar.add_command(label=“关于”, command=self.about_data) # label

设置菜单栏

self.root.config(menu=menubar)

切换界面

def input_data(self):

self.input_page.pack()

self.update_page.pack_forget()

self.delete_page.pack_forget()

self.about

  • 16
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值