python学生成绩管理系统源码
欢迎进入python世界
你好!通过仔细阅读本文,你可以认识到通过python语言开发学生成绩管理系统的原貌。
第一部分:系统介绍
一个带有登录功能的学生管理系统,具备增删改查的功能。
要点1:面对对象思想
要点2:利用tkinter库进行制作,利用.txt文件进行存储
第二部分:源代码
students.txt main.py Login.py db.py MenuPage.py view.py
第三部分:代码展示&分析
1.students.txt:存储数据
2.main.py:主文件
"""
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。
"""
from tkinter import *
# from Tkinter的意思就是导入Tkinter,它是一个库,也可以简单称之为类;import *的意思是导入库中所有的类,函数,变量等等信息,这样在调用相关函数或者变量的时候,就不用加Tkinter前缀了。
from Login import * #从登录导入
import tkinter as tk # 在代码里面导入库,起一个别名,以后代码里面就用这个别名
root = tk.Tk() # 这个库里面有Tk()这个方法,这个方法的作用就是创建一个窗口
root.title('欢迎进入python学生成绩管理系统')
LoginPage(root)
root.mainloop()# 加上这一句,就可以看见窗口了
3.Login.py:登录界面代码
from tkinter import *
from tkinter.messagebox import *
from MenuPage import *
class LoginPage(object):
def __init__(self, master=None):
self.root = master # 定义内部变量root
self.root.geometry('%dx%d' % (600, 360)) # 设置窗口大小
self.username = StringVar()
self.password = StringVar()
self.createPage()
def createPage(self):
self.page = Frame(self.root) # 创建Frame
self.page.pack()
Label(self.page).grid(row=0, stick=W)
Label(self.page, text='账户: ').grid(row=1, stick=W, pady=50)
Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=E)
Label(self.page, text='密码: ').grid(row=2, stick=W, pady=50)
Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E)
Button(self.page, text='登陆', command=self.loginCheck).grid(row=3, stick=W, pady=50)
Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=E)
def loginCheck(self):
name = self.username.get()
password = self.password.get()
if name == '123' and password == '123':
self.page.destroy()
MenuPage(self.root)
else:
showinfo(title='错误', message='账号或密码错误!')
4.db.py
import json
class StudentDB(object):
def __init__(self):
self.students = []
self._load_students_data()
def insert(self, student):
self.students.append(student)
print(self.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)
break
else:
return False
return True
# 查询
def search_by_name(self, name):
for student in self.students:
if name == student["name"]:
return student # 姓名+成绩
else:
return False
# 修改
def update(self, stu): # 修改数据
name = stu["name"]
for student in self.students:
if