python大作业福星——制作GUI学生管理系统

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

  • 解释器版本: python 3.8

  • 代码编辑器: pycharm 2021.2

一些操作:

  • 录入新学生信息:用户在文本框中输入学生信息,点击“录入”按钮,将信息保存到数据库中,并在列表框中添加新的学生。

  • 查询学生信息:用户可以在列表框中选择已注册的学生,然后单击“查询”按钮来显示学生详细信息。

  • 修改学生信息:用户可以选择列表中的学生,然后单击“修改”按钮来更新学生信息。

  • 删除学生:用户可以选择列表中的学生,然后单击“删除”按钮来删除选中的学生。


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可


代码展示

import tkinter as tk
import tkinter.messagebox
from main import MainPage


class LoginPage:
    def __init__(self, master):
        self.root = master
        self.page = tk.Frame(self.root)
        self.page.pack()
        self.root.geometry('300x180')

        self.username = tk.StringVar()
        self.password = tk.StringVar()

        tk.Label(self.page).grid(row=0, column=0)
        tk.Label(self.page, text='账户').grid(row=1, column=0, stick=tk.E, pady=10)
        tk.Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=tk.W, pady=10)
        tk.Label(self.page, text='密码').grid(row=2, column=0, stick=tk.E, pady=10)
        tk.Entry(self.page, textvariable=self.password).grid(row=2, column=1, stick=tk.W, pady=10)

        tk.Button(self.page, text='登录', command=self.login_check).grid(row=3, column=0, stick=tk.W, pady=10)
        tk.Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=tk.E, pady=10)

    def login_check(self):
        name = self.username.get()
        pwd = self.password.get()

        if name == 'admin' and pwd == '123456':
            tkinter.messagebox.showinfo(title='恭喜',message='登录成功!')
            self.page.destroy()
            MainPage(self.root)
            完整源码、解答、教程皆+VX:pytho8987获取,验证备注“777else:
            tkinter.messagebox.showinfo(title='错误',message='账户或密码错误')

if __name__ == '__main__':
    root = tk.Tk()
    LoginPage(root)
    root.mainloop()
import json
import os

file = 'students.json'
if not os.path.exists(file):
    open(file, 'w')

class StudentsDB:
    def __init__(self):
        self.students = []
        self.load_students_data()

    def insert(self, students):
        self.students.append(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)
                return True, f'{name}删除成功'
        return False, f'{name} 不存在'

    def search_by_name(self, name):
        for student in self.students:
            if name == student['name']:
                return True, student
        return False, f'{name} 不存在'

    def update(self, stu):
        name = stu['name']
        for student in self.students:
            if name == student['name']:
                student.update(stu)
                return True, f'{name} 用户数据修改成功'
        return False, f'{name} 不存在'

    def save_data(self):
    完整源码、解答、教程皆+VX:pytho8987获取,验证备注“777with open('students.json', mode='w', encoding='utf-8') as f:
            text = json.dumps(self.students, indent=4, ensure_ascii=False)
            f.write(text)

    def load_students_data(self):
        with open('students.json', mode='r', encoding='utf-8') as f:
            data = f.read()
        if data:
            self.students = json.loads(data)


db = StudentsDB()
import tkinter as tk
from view import InputFrame, QueryFrame, DeleteFrame, ChangeFrame, AboutFrame


class MainPage:
    def __init__(self, master):
        self.root = master
        self.page = tk.Frame(self.root)
        self.page.pack()
        self.root.geometry('600x400')

        menuber = tk.Menu(self.root)
        self.input_page = InputFrame(self.root)
        self.query_page = QueryFrame(self.root)
        self.delete_page = DeleteFrame(self.root)
        self.change_page = ChangeFrame(self.root)
        self.about_page = AboutFrame(self.root)

        menuber.add_command(label='录入', command=self.show_input)
        menuber.add_command(label='查询', command=self.show_all)
        menuber.add_command(label='删除', command=self.show_delete)
        menuber.add_command(label='修改', command=self.show_change)
        menuber.add_command(label='关于', command=self.show_about)

        self.root.config(menu=menuber)

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

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

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

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

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


if __name__ == '__main__':
    root = tk.Tk()
    MainPage(root)
    root.mainloop()

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值