Python实现学生信息管理系统的示例代码
作者:木木子学python 发布时间:2022-12-06 22:17:56
前言
夏天是用来告别的季节,因为毕业总在七月。那么七月之前的季节是用来干嘛的呢?
当然是用来做毕业设计的啦
今天还是写一些从简单到难的毕业设计或者课程作业项目源码分享给大家吧~相信每个毕业生或者结课学生都是需要这么一份计算机Python项目滴哦~嗯哼,还是大众化的项目,学生信息管理系统分为几个版本分享给大家:
第一个版本就是新手小白的福利————零基础也能上手的项目课——学生信息管理系统。
第二个版本就是GUI界面化————Tkinter的学生信息管理系统。
又是一年毕业季,学生信息管理系统——计算机毕设作品基本上都可以使用必备课设(超级大
众舒适的课设题目)今天小编给大家带来的两个版本,大家一起来看看差距大吗?
一、新手小白的福利——零基础学生信息管理系统
1)运行环境
小编使用的环境:Python3、Pycharm社区版。
第一款新手版本的学生信息管理系统是用:基本的数据类型与结构- 基本的逻辑控制语句组成。
所以是补需要安装什么第三方模块的。安装好Python环境跟Pycharm就可以直接开始敲代码了。
2)代码展示
"""
message = """
**************************************************
欢迎使用【学生信息管理系统】V1.0
请选择你想要进行的操作
1. 新建学生信息
2. 显示全部信息
3. 查询学生信息
4. 删除学生信息
5. 修改学生信息
0. 退出系统
**************************************************
"""
students_list = [
{'name': '李四', 'chinese': '65', 'math': '65', 'english': '65', 'total': 195},
{'name': '王五', 'chinese': '65', 'math': '65', 'english': '65', 'total': 195},
{'name': '张三', 'chinese': '65', 'math': '65', 'english': '65', 'total': 195},
]
# 1. 启动之后显示提示信息
# 进入系统之前加载本地的文件数据
# 2. 进入系统的操作页面
while True:
print(message)
action = input('请选择你想要进行的操作:')
if action == '1':
print('# 2.1 新增数据')
# 新增数据需要录入学员的信息
name = input('请输入学员的姓名:')
math = input('请输入学员的数学成绩:')
chinese = input('请输入学员的语文成绩:')
english = input('请输入学员的英语成绩:')
print(name, math, chinese, english)
student = {
'name': name,
'math': math,
'chinese': chinese,
'english': english,
}
students_list.append(student)
# # 一个人的数据用字典,多个人的数据用列表
# # 没有好与不好,只有合不合适
# # student = [name, math, chinese, english]
# # print(student[1])
# print(student['math']) # 字典非常适合存储个人的数据
# students = [student]
# # 可以什么记录学生成绩? 数据库
# # 增删改查 操作 txt ? csv 网页
# print(students_list)
elif action == '2':
print('# 2.2 查询所有学生成绩')
# 显示所有的学生信息
# 先听思路,课后那录播再复习一遍,有不懂的可以问一下木子老师
# print(students_list)
print('姓名 语文 数学 英语')
for student in students_list:
print(f"{student['name']} {student['chinese']} {student['math']} {student['english']}")
elif action == '3':
print('# 2.3 查询学生信息')
name = input('请输入需要查询的学生姓名:')
flag = False # 默认的情况下没有找到 记录一下学员有没有找到
# 去所有的学生列表里面去找到对应名字的学生
for student in students_list: # 遍历三个学员,三个学员都没有找到,才是没有找到
# 如果变量的学生名字与输入的学生名字是一样的,就是找到了
if student['name'] == name:
print('姓名 语文 数学 英语')
print(f"{student['name']} {student['chinese']} {student['math']} {student['english']}")
flag = True # 找到了之后改变前面的标志位
# 不管怎么覆盖都不能改查 false
# 如果没有找到
if not flag:
print(f'{name} 学员不存在')
elif action == '4':
print('# 2.4 删除学生信息')
# 先找到学员,然后再删除学员
name = input('请输入需要删除的学生姓名:')
flag = False
for student in students_list:
if student['name'] == name:
# 找到之后需要删除
students_list.remove(student)
flag = True
if not flag:
print(f'{name} 学员不存在, 无法删除')
elif action == '5':
print('# 2.5 修改学生信息')
name = input('请输入需要修改的学生姓名:')
flag = False
for student in students_list:
if student['name'] == name:
# 修改需要重新输入信息
# name = input('请输入学员的姓名:')
math = input('请输入学员的数学成绩:')
chinese = input('请输入学员的语文成绩:')
english = input('请输入学员的英语成绩:')
# student['name'] = name
student['math'] = math
student['chinese'] = chinese
student['english'] = english
flag = True
if not flag:
print(f'{name} 学员不存在, 无法修改')
"""
编程思维,你的思维没有转化过来
怎么培养编程思维
1. 多看书、多看视频、多写案例
2. 从量变到质变
不能只停留在基础
"""
elif action == '0':
print('# 2.0 退出系统')
# 退出之前将数据保存到本地
break
else:
print('请选择正确的操作')
# 3. 结束程序
3)效果展示
新手版本运行截图——
进行新建学习信息操作截图——
其他的内容就不一一截图了哈,大家可以自己拿代码运行进行尝试。
二、GUI界面化版本——Tkinter学生信息管理系统
1)运行环境
本文用到的环境如下—— Python3、Pycharm社区版,第三方模块:Tkinter。部分自带的库
只要安装完 Python就可以直接使用了,需要安装 的库的话看教程下🎐
安装模块:
pip install +模块名 镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名
(之前有说过安装报错的几种方式跟解决方法,不会安装的可以去看下,还有很多国内镜像源也有文章的)
2)代码展示
登录页面:
import tkinter as tk
import tkinter.messagebox
from MainPage import MainPage
"""
"""
# 一张画纸
class LoginPage(object):
def __init__(self, master=None):
# master 画板对象,往画板上作画
self.root = master # 定义内部变量root
self.root.geometry('%dx%d' % (400, 280)) # 设置窗口大小
root.title('登陆页面')
# 定义可以在页面更新数据的变量 普通字符串改变之后无法及时在页面中刷新
self.username = tk.StringVar()
self.password = tk.StringVar()
# 画 内容 需要画在纸上面
# 创建新的 布局控件 找一张新的纸作画
self.page = tk.Frame(self.root) # 创建Frame
# 将控件布局到 root 对象 (GUI 程序对象)
self.page.pack()
self.create_page()
def create_page(self):
"""
使用表格布局绘制内容
"""
#
# tk.Label 文本框 显示文字内容
# stick 控件对象方向 tk.W 西方位
# pady padding y 上下的宽度
# row 行 表格布局
tk.Label(self.page).grid(row=0, stick=tk.W)
tk.Label(self.page, text='账户: ').grid(row=1, stick=tk.W, pady=10)
# tk.Label 输入框 显示输入内容
# 输入框的文字等内容需要更新
tk.Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=tk.E)
tk.Label(self.page, text='密码: ').grid(row=2, stick=tk.W, pady=10)
tk.Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=tk.E)
tk.Button(self.page, text='登陆', command=self.login_check).grid(row=3, stick=tk.W, pady=10)
tk.Button(self.page, text='注册', command=self.page.quit).grid(row=3, column=1, stick=tk.E)
def login_check(self):
"""登录检测"""
name = self.username.get()
secret = self.password.get()
if name == 'admin' and secret == '123456':
self.page.destroy()
MainPage(self.root)
else:
tkinter.messagebox.showinfo(title='错误', message='账号或密码错误!')
if __name__ == '__main__':
# root 对象 画板
root = tk.Tk()
# LoginPage 画纸
LoginPage(root)
root.mainloop()
主程序:
import tkinter as tk
from view import * # 菜单栏对应的各个子页面
class MainPage(object):
def __init__(self, master=None):
self.root = master # 定义内部变量root
self.root.geometry('%dx%d' % (600, 400)) # 设置窗口大小
self.create_page()
def create_page(self):
menubar = tk.Menu(self.root)
# menubar.add_command(label='录入')
# menubar.add_command(label='查询')
# menubar.add_command(label='删除')
# menubar.add_command(label='修改')
# menubar.add_command(label='关于')
self.input_page = InputFrame(self.root) # 创建不同 Frame
self.query_page = QueryFrame(self.root)
self.delete_page = DeleteFrame(self.root)
self.change_page = ChangeFrame(self.root)
self.about_page = AboutFrame(self.root)
self.input_page.pack() # 默认显示数据录入界面
# 控件只是显示,如果需要实现切换的逻辑需要用代码实现
menubar.add_command(label='录入', command=self.input_data)
menubar.add_command(label='查询', command=self.query_data)
menubar.add_command(label='删除', command=self.delete_data)
menubar.add_command(label='修改', command=self.change_data)
menubar.add_command(label='关于', command=self.about_disc)
self.root['menu'] = menubar # 设置菜单栏
def input_data(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 query_data(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 delete_data(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 change_data(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 about_disc(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()
def __del__(self):
db.save_data()
if __name__ == '__main__':
root = tk.Tk()
MainPage(root)
root.mainloop()
3)效果展示
登陆页面截图——
管理系统界面——
录入信息查询截图——
来源:https://juejin.cn/post/7199941931677139004


猜你喜欢
- Python获取当前时间_获取格式化时间:Python获取当前时间:使用 time.time( ) 获取到距离1970年1月1日的秒数(浮点
- 在小编学习python中的模拟点击之前,我们想要对某一项操作进行自动指令的重复,可以选择大家熟知的按键精灵。那么对比python的模拟点击,
- 1.使用前先要安装 yagmailpip install yagmail -i https://pypi.douban.com/simple
- 1、字符串的索引与获取字符串的索引方式与列表的索引方式是一样的。只不过列表是每个元素的自身就有一个索引位置,而字符串是每个字符就有一个索引位
- 每个被捕获的参数将被作为纯Python字符串来发送,而不管正则表达式中的格式。 举个例子,在这行URLConf中:(r'^artic
- 摘要:本文主要就数据库恢复与系统任务的调度,在结合一般性的数据库后台处理的经验上,提出较为实用而新颖的解决方法,拓宽了数据库后台开发的思路。
- 摘要:序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻
- SQL概述SQL背景知识1946 年,世界上第一台电脑诞生,如今,借由这台电脑发展起来的互联网已经自成江湖。在这几十年里,无数的技术、产业在
- 本文实例讲述了Python3实现的回文数判断及罗马数字转整数算法。分享给大家供大家参考,具体如下:回文数判断一个整数是否是回文数。回文数是指
- 示例代码: BulkStockBll bll = new BulkStockBll(); DataSet ds = bll.GetBulkS
- XML文档对象模型(DOM)是什么?可扩展标记语言XML的基础是 DOM。XML 文档具有一个称为节点的信息单元层次结构;DOM 是描述那些
- 于是写测试程序。。。不行 下载最新的ODBC。。。还是不行 通过sql plus查询。。。咦?竟然也查不到。。。 于是,折腾。。。折腾。。。
- //屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 function KeyDown(){ 
- 协程协程是一种用户态的轻量级线程,又称微线程。协程拥有自己的寄存器上下文和栈,调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,
- 什么是双端队列双端队列是与队列类似的有序集合。它有一前、一后两端,元素在其中保持自己的位置。与队列不同的是,双端队列对在哪一端添加和移除元素
- 节点类型主要有三种:元素节点,属性节点和文本节点。而对DOM的主要也就是围绕元素节点和属性节点的增删改查。下面就分别从对元素节点的操作和对属
- 本文实例讲述了Python实现运行其他程序的四种方式。分享给大家供大家参考,具体如下:在Python中,可以方便地使用os模块来运行其他脚本
- 前言装饰器(decorator)在Python框架中扮演着重要角色,是Python中实现切面编程(AOP)的重要手段。aspect-orie
- char(n)是定长格式,格式为char(n)的字段固定占用n个字符宽度,如果实际存放的数据长度超过n将被截取多出部分,如果长度小于n就用空
- Master Master数据库保存有放在SQLSERVER实体上的所有数据库,它还是将引擎固定起来的粘合剂。由于如果不使用主数据库,SQL