【Python项目】毕业设计必备——Python实现一个GUI版本的学生信息管理系统 | 附源码

news2024/11/18 14:30:38

前言

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

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~

源码点击蓝色字体领取
Python零基础入门到精通视频合集

【整整800集】Python爬虫项目零基础入门合集,细狗都学会了,你还不会?

开发工具

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

环境搭建

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

效果展示

录入界面

在这里插入图片描述

查询界面

在这里插入图片描述

删除界面

在这里插入图片描述

修改界面

在这里插入图片描述

代码展示

登录界面

class MainPage:
    """登录界面"""

    def __init__(self, master):
        self.root = master
        self.page = tk.Frame(self.root)
        self.page.pack()
        self.root.geometry("%dx%d" % (600, 400))
        self.create_page()

    def create_page(self):
        #  创建一个顶级菜单
        menubar = tk.Menu(self.root)
        # 绑定封装好的页面
        self.input_page = InputFrame(self.root)
        self.change_page = ChangeFrame(self.root)
        self.query_page = QueryFrame(self.root)
        self.delete_page = DeleteFrame(self.root)
        self.about_page = AboutFrame(self.root)

        self.input_page.pack()

        menubar.add_command(label="录入", command=self.show_input)
        menubar.add_command(label="查询", command=self.show_all)
        menubar.add_command(label="删除", command=self.show_input)
        menubar.add_command(label="修改", command=self.show_change)
        menubar.add_command(label="关于", command=self.show_about)
        #  显示菜单
        self.root.config(menu=menubar)

    def show_about(self):
        self.input_page.pack_forget()
        self.change_page.pack_forget()
        self.query_page.pack_forget()
        self.delete_page.pack_forget()
        self.about_page.pack()

    def show_all(self):
        self.input_page.pack_forget()
        self.change_page.pack_forget()
        self.query_page.pack()
        self.delete_page.pack_forget()
        self.about_page.pack_forget()

    def show_input(self):
        self.input_page.pack()
        self.change_page.pack_forget()
        self.query_page.pack_forget()
        self.delete_page.pack_forget()
        self.about_page.pack_forget()

    def show_change(self):
        self.input_page.pack_forget()
        self.change_page.pack()
        self.query_page.pack_forget()
        self.delete_page.pack_forget()
        self.about_page.pack_forget()

布局

class InputFrame(tk.Frame):  # 继承Frame类
    def __init__(self, master=None):
        super().__init__(master)
        self.root = master  # 定义内部变量root
        self.name = tk.StringVar()
        self.math = tk.StringVar()
        self.chinese = tk.StringVar()
        self.english = tk.StringVar()
        self.status = tk.StringVar()
        self.create_page()

    def create_page(self):
        # stick 控件对象方向 tk.W 西方位
        # pady padding y 上下的宽度
        # row 行 表格布局
        tk.Label(self).grid(row=0, stick=tk.W, pady=10)
        tk.Label(self, text='姓 名: ').grid(row=1, stick=tk.W, pady=10)
        # text variable 绑定控件里面的数据内容
        tk.Entry(self, textvariable=self.name).grid(row=1, column=1, stick=tk.E)
        tk.Label(self, text='数 学: ').grid(row=2, stick=tk.W, pady=10)
        tk.Entry(self, textvariable=self.math).grid(row=2, column=1, stick=tk.E)
        tk.Label(self, text='语 文: ').grid(row=3, stick=tk.W, pady=10)
        tk.Entry(self, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)
        tk.Label(self, text='英 语: ').grid(row=4, stick=tk.W, pady=10)
        tk.Entry(self, textvariable=self.english).grid(row=4, column=1, stick=tk.E)
        tk.Button(self, text='录入', command=self.recode_student).grid(row=5, column=1, stick=tk.E, pady=10)
        tk.Label(self, textvariable=self.status).grid(row=6, column=1, stick=tk.E, pady=10)

    def recode_student(self):
        pass

查询界面

class QueryFrame(tk.Frame):  # 继承Frame类
    def __init__(self, master=None):
        super().__init__(master)
        self.root = master  # 定义内部变量root
        self.itemName = tk.StringVar()

        tk.Label(self, text='查询界面').pack()
        self.table_frame = tk.Frame(self)
        self.table_frame.pack()
        self.row = 1

        self.create_page()

    def create_page(self):
        tk.Button(self, text='刷新数据', command=self.show_data_frame).pack(anchor=tk.E, pady=5)
        self.show_data_frame()

    def show_data_frame(self):
        pass

删除界面

class DeleteFrame(tk.Frame):  # 继承Frame类
    def __init__(self, master=None):
        super().__init__(master)
        self.root = master  # 定义内部变量root
        tk.Label(self, text='删除数据').pack()
        self.delete_frame = tk.Frame(self)
        self.delete_frame.pack()
        self.status = tk.StringVar()
        self.v1 = tk.StringVar()
        self.create_page()

    def create_page(self):
        tk.Label(self.delete_frame, text='根据名字删除信息').pack(anchor=tk.W, padx=20)
        e1 = tk.Entry(self.delete_frame, textvariable=self.v1)
        e1.pack(side=tk.LEFT, padx=20, pady=5)

        tk.Button(self.delete_frame, text='删除', command=self._delete).pack()
        tk.Label(self, textvariable=self.status).pack()

    def _delete(self):
        pass

修改界面

lass ChangeFrame(tk.Frame):  # 继承Frame类
    def __init__(self, master=None):
        super().__init__(master)
        self.root = master  # 定义内部变量root

        tk.Label(self, text='修改界面').pack()
        self.change_frame = tk.Frame(self)
        self.change_frame.pack()
        self.status = tk.StringVar()
        self.name = tk.StringVar()
        self.math = tk.StringVar()
        self.chinese = tk.StringVar()
        self.english = tk.StringVar()

        self.create_page()

    def create_page(self):
        tk.Label(self.change_frame).grid(row=0, stick=tk.W, pady=1)
        tk.Label(self.change_frame, text='姓 名: ').grid(row=1, stick=tk.W, pady=10)
        tk.Entry(self.change_frame, textvariable=self.name).grid(row=1, column=1, stick=tk.E)
        tk.Label(self.change_frame, text='数 学: ').grid(row=2, stick=tk.W, pady=10)
        tk.Entry(self.change_frame, textvariable=self.math).grid(row=2, column=1, stick=tk.E)
        tk.Label(self.change_frame, text='语 文: ').grid(row=3, stick=tk.W, pady=10)
        tk.Entry(self.change_frame, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)
        tk.Label(self.change_frame, text='英 语: ').grid(row=4, stick=tk.W, pady=10)
        tk.Entry(self.change_frame, textvariable=self.english).grid(row=4, column=1, stick=tk.E)
        tk.Button(self.change_frame, text='查询', command=self._search).grid(row=6, column=0, stick=tk.W, pady=10)
        tk.Button(self.change_frame, text='修改', command=self._change).grid(row=6, column=1, stick=tk.E, pady=10)
        tk.Label(self.change_frame, textvariable=self.status).grid(row=7, column=1, stick=tk.E, pady=10)

    def _search(self):
        pass

    def _change(self):
        pass

总结

一些重要代码我已经在上方给大家写好了,具体源码可以后台找小编
其实这个功能实现起来也是比较简单的,主要就是常用的增删改查
要是有啥不懂的伙伴直接看相关文件就OK啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM框架学习记录-Spring_day02

1.IOC/DI配置管理第三方bean 之前都是基于自己写的类,如果有需求去管理第三方Jar包中的类,该如何管理? 案例:数据源对象管理 使用Spring的IOC容器来管理Druid连接池对象 思路分析 要使用第三方的技术,需要在pom.xml添加依赖 在配置文件中将…

CloudKit教程之如何从 CloudKit 获取图像资源到 SwiftUI 应用程序

最近,我研究了 CloudKit API 文档,并尝试将数据库和资产集成到我的应用程序中。这是我的一些发现,希望对您有所帮助…… 想要从 iCloud 公共数据库获取图像资产到他们的 SwiftUI 应用程序的 Apple 开发人员而写的。 将 Sign in with Apple 集成到 CloudKit 新建 Xcode 项…

CSRF漏洞利用与防御

今天继续给大家介绍渗透测试相关知识,本文主要内容是CSRF漏洞利用与防御。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设…

Spring更简单的存储和读取Bean

⭐️前言⭐️ 在上一篇文章【Spring的创建与使用】中,我们已经了解了Spring中bean对象的基本的创建和使用方法,这篇文章通过注解的方法,使得存储和读取对象更加简单。 🍉博客主页: 🍁【如风暖阳】&#x1…

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xff1a…

分布式事务最终一致性的方案

最终一致性的方案 知识储备 分布式系统中不可避免存在分布式事务带来的一致性问题。为了解决这个问题,需要熟悉业界相关的理论: ACID CAP BASE 2PC 3PC TCC 对于一致性的处理,分为强一致和最终一致性。强一致,对系统的吞吐…

cox回归RCS阈值效应函数cut.tab1.3发布

写在前面的话,本次只发布了cox回归RCS阈值函数,请看清楚再购买,觉得贵的可以等一等,这个函数最终会放在ggrcs包上面,免费供大家使用,急用的可以先看看。 接下来聊聊cox回归RCS阈值函数是干什么用的&#xf…

[附源码]Python计算机毕业设计SSM江西婺源旅游文化推广系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Python入门 函数 基础入门篇

一、什么是函数 函数是最基本的一种代码抽象的方式,是组织好的可重复使用的,用来实现单一或相关联功能的代码段。 函数是对做相似的事情或相似的动作进行封装,它能提高应用的模块性和代码的重复利用率。我们要封装好一个函数,首…

[附源码]计算机毕业设计设备运维平台出入库模块APPSpringboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【STM32学习(3)】STM32——简述中断的基础知识

中断一、中断的定义二、中断的作用三、中断源(中断触发的硬件)四、中断类型五、中断优先级六、中断服务函数一、中断的定义 中断,即CPU在正常执行程序的过程中,遇到外部(IO引脚中断)/内部(定时…

Maven技术

目录 传统项目管理分析(导入jar包形式) maven组成部分 maven项目构建命令 maven高级 项目的聚合与继承 maven子父工程 需求:使用maven子父工程完成登录并跳转到首页列表 创建父工程 在父工程中以module的形式创建子模块 在父工程中以…

RocketMQ 5.0 可观测能力升级:Metrics 指标分析

作者:玄珏 从消息的生命周期看可观测能力 在进入主题之前先来看一下 RocketMQ 生产者、消费者和服务端交互的流程: message produce and consume process RocketMQ 的消息是按照队列的方式分区有序储存的,这种队列模型使得生产者、消费者和…

Matlab论文插图绘制模板第67期—三角网格图(Trimesh)

在之前的文章中,分享了Matlab网格曲面图的绘制模板: 以及一些特殊形式的网格曲面图: 这一次,再来分享一种特殊的网格曲面图:三角网格图。 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板…

为初学者介绍轻量级目录访问协议——LDAP

如果您是刚接触Active Directory (AD)的初学者,那么当您发现LDAP这个术语时可能会感到十分迷茫。今天就让我们来您熟悉 LDAP,让您更加坚定学习AD域管理的信心。 LDAP 首先,让我们直面主题!什么是 LDAP? LDAP 是一种标…

[矩阵论] Unit 3. 矩阵的分解 - 知识点整理

注: 以下内容均由个人整理, 不保证完全准确, 如有纰漏, 欢迎交流讨论参考: 杨明, 刘先忠. 矩阵论(第二版)[M]. 武汉: 华中科技大学出版社, 2005 3 矩阵的分解 3.1 常见的矩阵标准形与分解 常见标准形 等价标准形: P,QP, QP,Q 可逆 AmnPmm[Ir000]QnnA_{m\times n}P_{m\times…

[附源码]Python计算机毕业设计SSM教师职称资料管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

软件测试流程图!转行互联网职场必备!

今天给大家分享的是,在软件测试日常工作过程中,比较常见的几种测试流程图: 1.【测试立项】流程图 2.【测试计划】流程图 3.【单元测试】流程图 4.【整合测试】流程图 5.【系统测试】流程图 6.【性能测试】流程图 7.【验收测试】…

QTextStream(文本流)

QTextStream QTextStream 类为读取和写入文本提供了一个方便的接口可以在QIODevice、QBateArray、和QString中使用&#xff0c;QTextStream使用的是流运算符&#xff08;>> <<&#xff09;&#xff0c;可以更方便的读/写数据&#xff0c;QTextStream也支持对字段进…

使用 Echarts 插件完成中国地图

目录前言&#xff1a;什么是 Echarts 插件中国地图成品展示步骤&#xff1a;完成中国地图代码总结&#xff1a;前言&#xff1a; 大家都知道&#xff0c;一般情况下&#xff0c;想要使用前端设置一个 中国地图 需要使用 canvas 画布进行编写&#xff0c;不仅代码多&#xff0c…