python实现学生管理系统源码
作者:Henrik-Yao 发布时间:2023-05-29 22:05:16
标签:python,学生,管理系统
本文实例为大家分享了python实现学生管理系统的具体代码,供大家参考,具体内容如下
一.面向过程版
import os
stu_list = []
def show_menu():
print('1.添加学生')
print('2.删除学生')
print('3.修改学生信息')
print('4.查询单个学生信息')
print('5.查询所有学生信息')
print('6.退出系统')
def insert_student():
name = input('请输入学生名字:')
for stu in stu_list:
if stu['name'] == name:
print('.........学生信息已存在........')
return
age = input('请输入学生年龄:')
gender = input('请输入学生性别:')
stu_dict = {'name': name, 'age': int(age), 'gender': gender}
stu_list.append(stu_dict)
print("学生信息添加成功!")
def remove_student():
name = input('请输入要操作的学生的名字:')
for stu in stu_list:
if stu['name'] == name:
stu_list.remove(stu)
print('删除成功!')
break
else:
print('........该学生信息不存在,无法删除.........')
def modify_student():
name = input('请输入要操作的学生的名字:')
for stu in stu_list:
if stu['name'] == name:
stu['age'] = int(input('请输入新的年龄:'))
print('修改成功!')
break
else:
print('........该学生信息不存在,无法修改.........')
def search_student():
name = input('请输入要操作的学生的名字:')
for stu in stu_list:
if stu['name'] == name:
print(f'姓名:{stu["name"]},年龄:{stu["age"]},性别:{stu["gender"]}')
break
else:
print('........该学生信息不存在.......')
def show_all_stu():
if len(stu_list):
for stu in stu_list:
print(f'姓名:{stu["name"]},年龄:{stu["age"]},性别:{stu["gender"]}')
else:
print("目前没有学生信息!")
def save():
f = open('student.txt', 'w')
f.write(str(stu_list))
f.close()
def read_file():
global stu_list
if os.path.exists('student.tct'):
f = open('student.txt', 'r', encoding='utf-8')
buf = f.read()
if buf:
stu_list = eval(buf)
f.close()
def main():
read_file()
while True:
show_menu()
opt = input('请输入用来选择的编号:')
if opt == '1':
print('1.添加学生')
insert_student()
elif opt == '2':
print('2.删除学生')
remove_student()
elif opt == '3':
print('3.修改单个学生信息')
modify_student()
elif opt == '4':
print('查询单个学生信息')
search_student()
elif opt == '5':
print('5.查询所有学生信息')
show_all_stu()
elif opt == '6':
print('欢迎下次使用本系统')
save()
break
else:
print('输入有误,请重新输入')
continue
input('........回车键继续操作........')
main()
二.面向对象版
1.工程文件
2.main.py
import student_manage_sysytem as sms
if __name__ == '__main__':
stu_sms = sms.StudenManagerSystem()
stu_sms.start()
3.student.py
class Student():
def __init__(self, stu_id, name, age, gender):
self.sut_id = stu_id
self.name = name
self.age = age
self.gender = gender
def __str__(self):
return f"{self.sut_id},{self.name},{self.age},{self.gender}"
4.student_manage_system.py
import student
class StudenManagerSystem():
def __init__(self):
self.stu_dict = {}
@staticmethod
def __show_menu():
print('1.添加学生')
print('2.删除学生')
print('3.修改学生信息')
print('4.查询单个学生信息')
print('5.查询所有学生信息')
print('6.退出系统')
def __insert_student(self):
stu_id = input('请输入学生学号:')
if stu_id in self.stu_dict:
print('学生信息已经存在,不需要重复添加')
return
name = input('请输入学生名字:')
age = input('请输入学生年龄:')
gender = input('请输入学生性别:')
stu = student.Student(stu_id, name, age, gender)
self.stu_dict[stu_id] = stu
def __removw_student(self):
stu_id = input('请输入学号:')
if stu_id in self.stu_dict:
del self.stu_dict[stu_id]
print('学生已经删除')
else:
print('学生信息不存在,无法删除')
def __modify_student(self):
stu_id = input('请输入学号:')
if stu_id in self.stu_dict:
stu = self.stu_dict[stu_id]
stu.age = input('请输入新的年龄:')
print('信息已经修改完毕')
else:
print('学生信息不存在,无法修改')
def __search_student(self):
stu_id = input('请输入学号:')
if stu_id in self.stu_dict:
stu = self.stu_dict[stu_id]
print(stu)
else:
print('学生信息不存在')
def __save(self):
f = open('student.txt', 'w', encoding='utf-8')
for stu in self.stu_dict.values():
f.write(str(stu) + '\n')
f.close()
def __load_info(self):
try:
f = open('student.txt', 'r', encoding='utf-8')
buf_list = f.readlines()
for buf in buf_list:
buf = buf.strip()
info_list = buf.split(',')
stu = student.Student(*info_list)
stu_id = info_list[0]
self.stu_dict[stu_id] = stu
f.close()
except Exception:
pass
def __show_all_info(self):
for stu in self.stu_dict.values():
print(stu)
def start(self):
self.__load_info()
while True:
self.__show_menu()
opt = input('请输入用来选择的编号:')
if opt == '1':
print('1.添加学生')
self.__insert_student()
elif opt == '2':
print('2.删除学生')
self.__removw_student()
elif opt == '3':
print('3.修改单个学生信息')
self.__modify_student()
elif opt == '4':
print('查询单个学生信息')
self.__search_student()
elif opt == '5':
print('5.查询所有学生信息')
self.__show_all_info()
elif opt == '6':
self.__save()
print('欢迎下次使用本系统')
break
else:
print('输入有误,请重新输入')
continue
input('........回车键继续操作........')
来源:https://blog.csdn.net/qq_50216270/article/details/112914099


猜你喜欢
- 一、继承的格式类的继承格式如下,括号中的为父类名。class 类名(父类名): 代码二、单继承下面我们让Man继承自Master类,并调用继
- 并发与锁多个线程共享数据的时候,如果数据不进行保护,那么可能出现数据不一致现象,使用锁,信号量、条件锁互斥锁1. 互斥锁,是使用一把锁把代码
- 应该来说,学会了如何插入记录,如何显示记录,那么现在简单的完整的文章系统、新闻系统和留言系统不成问题。那接着下面的问题就是:随着信息内容的不
- Python-OpenCV环境的配置看上一篇OpenCV环境的配置本篇主要介绍一下OpenCV的基本使用和相关函数的介绍。以下所有操作都基于
- 写在前面:这次我主要想总结一下微信小程序实现上下滚动消息提醒,主要是利用swiper组件来实现,swiper组件在小程序中是滑块视图容器。我
- SQL Server查询速度慢的原因有很,常见的有以下几种:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2、I/
- 观察一下”插入排序“:其实不难发现她有个缺点:如果当数据是”5, 4, 3, 2, 1“的时候,此时我们将“无序块”中的记录插入到“有序块”
- 题记:django如果要并和原有的数据库,那么就需要把现有数据库的表写入model.py中。一,在setting.py中配置好连接数据库的参
- 本文实例为大家分享了pygame实现弹球游戏的具体代码,供大家参考,具体内容如下pygame弹球游戏写的很简陋pip install pyg
- 前言最近新来的小老弟问我,按照公司规定,电脑只有十分钟就锁屏,但是他不想让电脑在空闲十分钟后锁屏。于是我问他,是不是想挑战一下公司信息安全?
- 目录项目介绍已有功能环境安装Windows用看这里ubuntu用户看这里使用方式:主要代码项目地址项目介绍可以下载doc,ppt,pdf.对
- 用来批量切割视频的开头部分,比如去掉一部电视剧的序幕,看着难受不说数量还很多,很菜鸟的一篇,毕竟我也是一个菜鸟,首先要有ffmpeg这个软件
- 最近学了一点点python爬虫的知识,面向百度编程爬了一本小说之后感觉有点不满足,于是突发奇想尝试爬一本漫画下来看看。一、效果展示首先是我们
- 在知识库的建立的时候,用普通VARCHAR2存放文章是显然不够的,只有区区4000的字节,放不了多少字, 而CLOB数据类型,则能最多存放8
- 大部分情况下,这种动态生成的sql查询语句写法如下: 代码如下:select A表.字段1,A表.字段2,B表.字段返回,C表.字段返回 f
- 很多应用要用到TreeView来显示组织机构,以下演示TreeView如何与数据库进行绑定。数据库结构如下(递归现实):id(guid)&n
- 大致介绍拖拽改变元素大小是在模拟拖拽上增加了一些功能拖拽改变元素大小原理首先这个方块得知道我们想要改变这个它的大小,所以我给它设定一个范围,
- 1. 匿名函数匿名函数(anonymous function)是指未与任何标识符绑定的函数,多用在functional programmin
- 笔者需要tensorflow仅运行在一个GPU上(机器本身有多GPU),而且需要依据系统参数动态调节,故无法简单使用CUDA_VISIBLE
- mysql中You can't specify target table for update in FROM clause错误的意