Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】

这篇具有很好参考价值的文章主要介绍了Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🥝 课程设计说明:

    GUI 使用的是Python自带的 tkinter 模块,无需配置,Python自带的模块直接导包使用即可,包含了增删改查+保存文件,满足 90% 大学生期末课程设计需求!!!运行时在main.py文件右键运行即可

------- 完整文件关注私聊获取 ------

 文章来源地址https://www.toymoban.com/news/detail-502573.html

文章目录:

🥥 一:页面展示

增加信息页面

修改信息页面

查找信息页面

 修改信息页面

🥥 二:增删改查实现讲解

增加信息

删除信息

修改信息

查找信息

🥥  三:部分代码:

增删改查功能代码


一:页面展示: 

🍉 增加信息页面:

Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】

🍉 修改信息页面:

Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】

🍉 查找信息页面: 

Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】

 🍉 修改信息页面:

Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】

 🍉 保存文件:

Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】


二:增删改查实现讲解:

🍍 增加信息:

   增加操作也分为了两部分:图形化页面实现 功能实现,二者分别放在两个不同的文件中,分部是operation.py文件与UI.py文件,同样各个文件也要先导包才能正常运行使用,我们首先说明一下信息在代码中被存储在了哪里:存储在了名为allstudent的一个列表中:

allstudent = []

   接着说明添加操作的operation.py中的实现代码,该函数封装在了operation类里,实现也并不麻烦,首先声明一个列表student用来暂存添加的信息,暂存后点击确认添加后才会将暂存的信息给allstudent列表正式存储起来,再接着保存后才会最终存储到文件中,确保了数据的安全性,在添加中还有一个学号是否存在的判断,输入学号后先判断学号是否为空,是空则直接返回,不是空则先判断allstudent列表中是否有数据,无数据则不存在学号重复的情况,直接就可以添加进去,如果allstudent不为空则判断是否存在,存在则调用tkinter的showerror报错已存在,不存在则加入并调用tkinter的showinfo方法说明添加成功

def addstudent(self, sno, sname, sex, birthday, phone, dorm):
    student = [sno, sname, sex, birthday, phone, dorm]
    x = 0
    if sno == "":
        showerror(title="错误界面", message="学号不能为空!\n加入失败!!!")
        return
    if len(self.allstudent) == 0:
        self.allstudent.append(student)
        showinfo(title="提示界面", message="加入成功!!!")
    else:
        while x < len(self.allstudent):
            if self.allstudent[x][0] != sno:
                x += 1
            else:
                showerror(title="错误界面", message="学号重复!!!\n请重新输入序号!!!")
                break
        else:
            self.allstudent.append(student)
            showinfo(title="提示界面", message="加入成功!!!")

🍍 删除信息: 

   删除操作也分为了两部分:图形化页面实现 功能实现,二者分别放在两个不同的文件中,分部是operation.py文件与UI.py文件,删除的方法放在operation类中,实现过程如下:设置一个标志量x并赋初值为0,如果这个x小于allstudent内的信息总数则继续执行下方代码,如果能将输入的学号匹配到allstuent内的某个学号,则将其所有信息从allstudent中使用del删除掉,如果没有找到则自增,自增到和allstudent数量一样时还没有找到匹配的学号则调用tkinter的showerror方法报错不存在当前学生。

def deletestudnet(self, sno):
    x = 0
    while x < len(self.allstudent):
        if self.allstudent[x][0] == sno:
            del self.allstudent[x]
            showinfo(title="提示界面", message="删除学生成功!!!")
            break
        else:
            x += 1
    else:
        showerror(title="错误界面", message="不存在当前学生!!!")

🍍 修改信息: 

   修改操作也分为了两部分:图形化页面实现 功能实现,二者分别放在两个不同的文件中,分部是operation.py文件与UI.py文件,查找的方法放在operation类中,修改过程如下:首先声明了标志量x赋初值为0,依旧是判断如果x小于allstudent内的信息数量,则继续执行内部判断语句,判断你输入的学号是否为空,为空则直接调用shoeerror方法报错,不为空则将你输入entry框中修改的信息赋值给对应项,然后break退出。

 while x < len(self.allstudent):
        if self.allstudent[x][0] == sno:
                      if sname != "":
                self.allstudent[x][1] = sname
            if sex != "":
                self.allstudent[x][2] = sex
            if birthday != "":
                self.allstudent[x][3] = birthday
            if phone != "":
                self.allstudent[x][4] = phone
            if dorm != "":
                self.allstudent[x][5] = dorm
            showinfo(title="提示界面", message="修改学生信息成功!!!")
            return
        else:
            x += 1
    else:
        showerror(title="错误界面", message="不存在当前学生!!!")

🍍 查找信息: 

   查找操作也分为了两部分:图形化页面实现 功能实现,二者分别放在两个不同的文件中,分部是operation.py文件与UI.py文件,查找的方法放在operation类中,实现过程如下:首先初始化entry2~6的值为‘end’,再同样设置了标志量x,如果其小于allstudent的个数就执行,如果找到了与输入相同的学号信息,则将其文档内对应的各个数据拿来,保存到刚才已经初始化的数据里,因为entry是输入框,所以信息覆盖掉初始化的值后还会显示在输入框中,然后退出当前程序,如果没找到就自增1,直到x和allstudent的数量等价时还没有找到则调用tkinter的showerror方法报错未查询到。

def selectstudent(self, sno, entry_2, entry_3, entry_4, entry_5, entry_6):
    entry_2.delete(0, 'end')
    entry_3.delete(0, 'end')
    entry_4.delete(0, 'end')
    entry_5.delete(0, 'end')
    entry_6.delete(0, 'end')
    x = 0
    while x < len(self.allstudent):
        if self.allstudent[x][0] == sno:
            entry_2.insert(0, self.allstudent[x][1])
            entry_3.insert(0, self.allstudent[x][2])
            entry_4.insert(0, self.allstudent[x][3])
            entry_5.insert(0, self.allstudent[x][4])
            entry_6.insert(0, self.allstudent[x][5])
            break
        else:
            x += 1
    else:
        showerror(title="错误界面", message="未查询到当前学生!!!")

 三:部分代码:

🍈 增删改查功能代码:

from tkinter import END
from tkinter.messagebox import showerror, showinfo


class Operation:
    allstudent = []
    # 添加学生
    def addstudent(self, sno, sname, sex, birthday, phone, dorm):
        student = [sno, sname, sex, birthday, phone, dorm]
        x = 0
        if sno == "":
            showerror(title="错误界面", message="学号不能为空!\n加入失败!!!")
            return
        if len(self.allstudent) == 0:
            self.allstudent.append(student)
            showinfo(title="提示界面", message="加入成功!!!")
        else:
            while x < len(self.allstudent):
                if self.allstudent[x][0] != sno:
                    x += 1
                else:
                    showerror(title="错误界面", message="学号重复!!!\n请重新输入序号!!!")
                    break
            else:
                self.allstudent.append(student)
                showinfo(title="提示界面", message="加入成功!!!")

    #     删除学生
    def deletestudnet(self, sno):
        x = 0
        while x < len(self.allstudent):
            if self.allstudent[x][0] == sno:
                del self.allstudent[x]
                showinfo(title="提示界面", message="删除学生成功!!!")
                break
            else:
                x += 1
        else:
            showerror(title="错误界面", message="不存在当前学生!!!")

    # 查询学生
    def selectstudent(self, sno, entry_2, entry_3, entry_4, entry_5, entry_6):
        entry_2.delete(0, 'end')
        entry_3.delete(0, 'end')
        entry_4.delete(0, 'end')
        entry_5.delete(0, 'end')
        entry_6.delete(0, 'end')
        x = 0
        while x < len(self.allstudent):
            if self.allstudent[x][0] == sno:
                entry_2.insert(0, self.allstudent[x][1])
                entry_3.insert(0, self.allstudent[x][2])
                entry_4.insert(0, self.allstudent[x][3])
                entry_5.insert(0, self.allstudent[x][4])
                entry_6.insert(0, self.allstudent[x][5])
                break
            else:
                x += 1
        else:
            showerror(title="错误界面", message="未查询到当前学生!!!")

    # 修改学生
    def changestudent(self, sno, sname, sex, birthday, phone, dorm):
        x = 0
        while x < len(self.allstudent):
            if self.allstudent[x][0] == sno:
                # 如果姓名不为空
                if sname != "":
                    self.allstudent[x][1] = sname
                if sex != "":
                    self.allstudent[x][2] = sex
                if birthday != "":
                    self.allstudent[x][3] = birthday
                if phone != "":
                    self.allstudent[x][4] = phone
                if dorm != "":
                    self.allstudent[x][5] = dorm
                showinfo(title="提示界面", message="修改学生信息成功!!!")
                return
            else:
                x += 1
        else:
            showerror(title="错误界面", message="不存在当前学生!!!")

    # 输出学生
    def showstudent(self, lb):
        for i in range(len(self.allstudent)):
            lb.insert(END, "学号:%s  姓名:%s  性别:%s  年龄:%s  电话:%s  宿舍号:%s" %
                      (self.allstudent[i][0], self.allstudent[i][1], self.allstudent[i][2],
                       self.allstudent[i][3], self.allstudent[i][4], self.allstudent[i][5]))

    # 另存学生信息
    def savestudent(self):
        # 以追加的形式添加
        dataFile = open("D:\\text.txt", "w")
        for row in self.allstudent:
            dataFile.write(
                    "学号:" + row[0] + "  姓名:" + row[1] + " 性别:" + row[2] + "  年龄" + row[3] + "  电话:" +
                    row[4] + "  宿舍号:" + row[5] + "\n")
        showinfo(title="提示界面", message="保存学生信息成功!!!\n保存路径如下:\nD:\\\\text.txt")

 

 

 

 

到了这里,关于Python学生信息管理系统【GUI界面版 + 期末报告书 + 功能实现讲解】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA GUI 学生信息管理系统(Swing)

    一、JAVA GUI 项目介绍 ​ GUI 是指图形用户界面显示的计算机操作用户界面,GUI主要有两个核心库,分别是AWT和Swing,本项目就是使用Swing进行开发。项目基于Swing,使用JDBC操作数据库,并且在程序运行阶段创建数据库表结构信息,可做为JAVA课程实训。 容器 ​ 容器是组件的子

    2024年02月04日
    浏览(42)
  • Java学生信息管理系统(Swing<GUI>+JDBC<MySQL>)

    本文有借鉴别人的代码,但是也是自己理解之后写出来的,文中有注释,并且有个别文件也用红框和黄字体讲解,并且能解决其他文件90%看不懂的问题,如果还是看不懂清留言,源码在文章末尾,附上了全部代码,这个注册系统比较简陋,供大家学习参考。 ** 这是一个简单的

    2024年02月09日
    浏览(30)
  • 面向对象程序设计(Java)课程设计——学生信息管理系统(GUI+文件)

    一、团队成员及任务 组长:宗庆亮  计科(智能)22-1  202203200021 负责模块:静态登录界面实现以及学生信息系统管理界面的创建 组员:郑金洲  计科(智能)22-1  202203200022 负责模块:增加,删除,修改以及查询功能的实现 团队博客:面向对象程序设计(Java)课程设计——学生

    2024年02月03日
    浏览(41)
  • 大一下java期末设计:学生信息管理系统(荣获班上第一)

      分享一个IDEA的破解网站教程:IDEA2023.1破解 永久激活 最新版IDEA激活 亲测可用! – 爱激活网 (aijihuo.cn) 数据使用的mysql数据库,版本是8.1,创建student表的数据库代码: create table student(id int name varchar(20),password varchar(20),score int);

    2024年02月16日
    浏览(26)
  • C语言程序设计期末大作业(学生信息管理系统)(可自取源码)

    高校学生信息管理系统 (一)在高校学生管理系统中包含九个主要操作: 退出系统; 学生信息的录入; 学生信息的打印; 学生信息的保存; 学生信息的读取; 学生人数的统计; 学生信息的查找; 学生信息的修改; 学生信息的删除。 (二)设计流程 首先确认用switch ca

    2024年02月10日
    浏览(37)
  • 学生信息管理系统(c++,可视化界面,文件操作)

    大一期末作业,老师要求设计一个学生信息管理系统,还要可视化界面。说实话,之前从来没接触过可视化界面,一直都是黑窗口,还以为可视化界面离我还远,直到我开始去了解,去网上查资料,搜索自学,才发现…额,原来这么简单,只要会写程序就可以做,只是老师从

    2024年02月12日
    浏览(29)
  • python + GUI 实现学生管理系统 数据用TXT文档存储 亲测可用

    运行登录界面即可自动跳转学生管理界面 先把登录界面代码和学生管理代码放在同一个文件夹, 再在这个文件夹创建两个空的users.txt,students.txt文件 即可正常运行 登录界面代码运行效果   登录界面代码 学生管理运行效果显示 可增删改查   学生管理模块代码

    2024年02月03日
    浏览(26)
  • python_学生信息管理系统

    学习python时自己做的小东西,供大家学习参考。源码放到最后。 运行《学生信息管理系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时,有两种方法,一种是输入1,另一种是按下键盘上的↑或↓方向键进

    2024年02月03日
    浏览(35)
  • 学生信息管理系统(Python实现)

    目录 1.功能介绍 2.代码模块 3.全局代码 摘剑!!! 采用列表+类的组合来实现对信息的增删改查,整体代码比较简单,只用了100余行 1)添加学生信息 2)查询学生信息 3)删除学生信息 4)修改学生信息 5)遍历学生信息 1)学生类 2)菜单menu 3)添加insert  4)查询search 5)删

    2024年02月13日
    浏览(38)
  • 学生信息管理系统(Python)完整版

    目录 功能模块: 实现思路: 运行功能演示: 具体实现过程: 定义学生类: 定义学生管理类 定义显示学生信息函数 输入成绩函数: 添加学生信息: 删除学生信息 修改学生信息 导入学生信息 导出学生信息 求课程平均分 求课程最高分 求课程最低分 最后定义菜单函数和主

    2024年02月03日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包