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

🥝 课程设计说明:

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

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

 

文章目录:

🥥 一:页面展示

增加信息页面

修改信息页面

查找信息页面

 修改信息页面

🥥 二:增删改查实现讲解

增加信息

删除信息

修改信息

查找信息

🥥  三:部分代码:

增删改查功能代码


一:页面展示: 

🍉 增加信息页面:

13bc92e7966b40ce947e22bf961f7c2a.png

🍉 修改信息页面:

61d41cb576d849229ccc270e22426fc5.png

🍉 查找信息页面: 

3ab26bfa389d4bb79c4d51dcb8c5afb6.png

 🍉 修改信息页面:

0632b8be58794170aecd313d70720533.png

 🍉 保存文件:

a80f6af7d034461db60fcebeb09c8b94.jpeg


二:增删改查实现讲解:

🍍 增加信息:

   增加操作也分为了两部分:图形化页面实现 功能实现,二者分别放在两个不同的文件中,分部是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")

 

 

 

 

  • 92
    点赞
  • 244
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 101
    评论
1.学生成绩管理系统分为三个用户角色,登录界面可以选择三种不同的角色进行登录系统 2.管理员角色登录系统可以有以下功能: 管理考试信息:可以对考试批次信息进行增删改查操作 管理教师信息:可以对教师个人信息进行增删改查操作,包括教师的姓名/所属班级/生日/性别/登录密码/家庭住址身份证等信息 管理班级信息:可以对班级名称信息进行增删改查操作 管理学生信息:可以对学生个人信息进行增删改查操作,包括教师的姓名/所属班级/生日/性别/登录密码/家庭住址身份证等信息 查看学生成绩:可以查看学生的所属班级,考试批次,姓名,科目,成绩信息 管理课程信息:可以添加课程,也可以从编辑删除操作 管理专业信息:可以添加专业,也可以从编辑删除操作 注销退出系统 3.教师登录系统可以拥有以下功能: 教师个人信息:可以查看自己的个人信息,可以编辑修改自己的信息 教师录入成绩:可以录入学生的成绩:包含学生的所属班级,考试批次,姓名,科目,成绩,可以编辑删除操作 教师查看班级:可以查看现在的班级情况 教师查看专业:可以查看现在的专业情况 修改密码:可以修改个人的登录密码功能 注销退出系统 4.学生登录系统可以拥有以下功能: 学生个人信息:可以查看自己的个人信息,可以编辑自己的信息 学生查看成绩:可以查看学生的成绩,包含班级,考试批次,姓名成绩等属性,也可以按照考试批次快速检索学生信息 学生成绩排名:可以按照成绩高低排名进行查看 学生选择课程:可以添加学生自己的选课信息,可以编辑删除操作 修改密码:可以修改个人的登录密码功能 注销退出系统 备注:系统使用django+mysql进行开发,前端界面大方美观

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 101
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西最近怎么样

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值