【Python项目】毕业设计必备,Python基于面向对象+tkinter打造学生信息管理系统 | 附源码

前言

halo,包子们上午好
很多学计算机的小伙伴应该都知道,毕业设计是一个头疼的东西
今天的话小编这边给大家准备好了一个Python基于面向对象+tkinter打造学生信息管理系统
这不是毕业设计必备项目
说实话操作起来还是有那么一点点的难度的,但是大家不用担心
作为一个宠粉狂魔的小编,肯定都给大家准备好了的
直接上才艺

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
公众号:Python日志

开发工具

Python版本:3.7.8
相关模块:
tkinter模块;
json模块;
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

效果展示

账号登录

在这里插入图片描述

录入界面

在这里插入图片描述

查询界面

在这里插入图片描述

删除界面

在这里插入图片描述
删除成功

在这里插入图片描述
在这里插入图片描述

修改界面

在这里插入图片描述
修改成功
在这里插入图片描述
在这里插入图片描述

代码实现

运行界面

import tkinter as tk
from LoginPage import *

root = tk.Tk()
root.title('学生管理系统 公众号:Python日志 源码领取QQ群:494958217')
LoginPage(root)
# MainPage(root)
root.mainloop()

布局

class LoginPage(object):
    def __init__(self, master=None):
        # master 画板对象,往画板上作画
        self.root = master  # 定义内部变量root
        self.root.geometry('%dx%d' % (300, 180))  # 设置窗口大小

        # 定义可以在页面更新数据的变量 普通字符串改变之后无法及时在页面中刷新
        self.username = tk.StringVar()
        self.password = tk.StringVar()

        # 画 内容 需要画在纸上面
        # 创建新的 布局控件 找一张新的纸作画
        self.page = tk.Frame(self.root)  # 创建Frame
        # 将控件布局到 root 对象 (GUI 程序对象)
        self.page.pack()

        self.create_page()

    def create_page(self):
        """
            使用表格布局绘制内容

        """
        #
        # tk.Label 文本框 显示文字内容
        # stick 控件对象方向 tk.W 西方位
        # pady padding y 上下的宽度
        # row 行 表格布局
        tk.Label(self.page).grid(row=0, stick=tk.W)
        tk.Label(self.page, text='账户: ').grid(row=1, stick=tk.W, pady=10)
        # tk.Label 输入框 显示输入内容
        # 输入框的文字等内容需要更新
        tk.Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=tk.E)
        tk.Label(self.page, text='密码: ').grid(row=2, stick=tk.W, pady=10)
        tk.Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=tk.E)
        tk.Button(self.page, text='登陆', command=self.login_check).grid(row=3, stick=tk.W, pady=10)
        tk.Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=tk.E)

账号密码设置

 def login_check(self):
        """登录检测"""
        name = self.username.get()
        secret = self.password.get()
        if name == '徐大兄弟' and secret == '123456':
            self.page.destroy()
            MainPage(self.root)
        else:
            tkinter.messagebox.showinfo(title='错误', message='账号或密码错误!')

学生信息管理系统数据模型

import json


class StudentsDB:
    """学生信息管理系统数据模型"""

    def __init__(self):
        self.students = []
        # 加载本地文件中的数据
        self._load_students_data()

    def insert(self, student):
        """将学生数据插入到列表"""
        self.students.append(student)

    def all(self):
        """返回所有的学生数据"""
        return self.students

    def delete_by_name(self, name):
        """根据名字获取学生数据,如果没有就返回 False"""
        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):
        """根据名字查询学员,没有找到就返回 False"""
        for student in self.students:
            if name == student[

猜你喜欢

转载自blog.csdn.net/Gtieguo/article/details/128248951