python实现学生信息管理系统(面向对象)
作者:Divetime 发布时间:2022-06-13 16:16:07
标签:python,信息,管理系统
本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下
1.主要内容
python种的.py文件如图所示
第一个文件是用来管理文件中包中各个模块的关系的文件
第二个文件是主函数文件,就是在主函数文件调用其余文件和模块
第三个模块式学生信息管理的模块
第四个文件是用来存放学生数据的文件
第五个文件是学生信息的定义和显示模块
2.实现代码
1)第一个文件是包中的管理文件自动生成且不需要修改
2)main.py文件
from managerSystem import *#导入模块managerSystem,可以使用其中的功能
if __name__=='__main__':#定义只能在运行main.py文件中运行,才执行的代码
student_manager=StudentManager()
student_manager.run()
3)学生信息管理模块
from student import *
class StudentManager(object):
def __init__(self):
self.student_list = []
def run(self):
self.load_student()
while True:
self.show_menu()
ret = int(input('请输入数字1——7:'))
if ret == 1:
self.add_student()
elif ret == 2:
self.del_student()
elif ret == 3:
self.modify_student()
elif ret == 4:
self.search_student()
elif ret == 5:
self.show_student()
elif ret == 6:
self.save_student()
elif ret == 7:
break
@staticmethod#此方法在执行时,不需要传入任何参数
def show_menu():
print('请选择如下序号:')
print('1.添加学员')
print('2.删除学员')
print('3.修改学员信息')
print('4.查找学员')
print('5.显示学员信息')
print('6.保存学员信息')
print('7.退出系统')
def add_student(self):
name = input('请输入学员姓名:')
gender = input('请输入学员性别:')
tel = input('请输入电话号码:')
student = Student(name, gender, tel)
self.student_list.append(student)
# print(self.student_list)
# print(student)
def del_student(self):
del_name = input('请输入需要删除的学员姓名:')
for i in self.student_list:
if i.name == del_name:
self.student_list.remove(i)
break
else:
print('查无此人')
# print(self.student_list)
def modify_student(self):
modify_name = input('请输入需要修改的学员姓名:')
for i in self.student_list:
if i.name == modify_name:
i.name = input('亲输入需要修改的学员姓名:')
i.gender = input('请输入需要修过的学员性别:')
i.tel = input('请输入需要修改的学员手机号:')
print(f'修改的信息为{i.name},{i.gender},{i.tel}')
break
else:
print('需要修改的学员不存在')
def search_student(self):
searce_name = input('请输入需要查询的学员姓名:')
for i in self.student_list:
if i.name == searce_name:
print(f'姓名:{i.name},性别:{i.gender},手机号:{i.tel}')
break
else:
print('查无此人')
def show_student(self):
print('姓名:\t性别:\t手机号:')
for i in self.student_list:
print(f'{i.name}\t{i.gender}\t{i.tel}')
def save_student(self):
f = open('student.data', 'w')
new_list = [i.__dict__ for i in self.student_list]
print(new_list)
f.write(str(new_list))
f.close()
def load_student(self):
# 1. 打开文件:尝试r打开,如果有异常w
try:
f = open('student.data', 'r')
except:
f = open('student.data', 'w')
else:
# 2. 读取数据:文件读取出的数据是字符串还原列表类型;[{}] 转换 [学员对象]
data = f.read() # 字符串
if data != '': # 此时需要添加判断文件是否为空,否则会发生报错
new_list = eval(data)
self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
finally:
# 3. 关闭文件
f.close()
4)存储数据的文件不需要编辑
5)student.py文件主要是用来存放学生的主要信息的模块,以及可以查看学生信息的方法
class Student(object):
def __init__(self, name, gender, tel):
self.name = name
self.gender = gender
self.tel = tel
def __str__(self):
return f'{self.name},{self.gender}, {self.tel}'
来源:https://blog.csdn.net/weixin_52788247/article/details/119392809
0
投稿
猜你喜欢
- 本文实例讲述了Python 类的私有属性和私有方法。分享给大家供大家参考,具体如下:xx:公有变量_xx:公有变量或方法,不能通过impor
- 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法。由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的
- 一、连接MYSQL:格式: mysql -h主机地址 -u用户名 -p用户密码1、例1:连接到本机上的MYSQL。首先在打开DOS窗口,然后
- <% class menusPublic Title, ID, Image, TitleColor, Target, Backgrou
- 由于车票难抢,有时需要的车票已经售空,而我们需要捡漏,便可使用这个脚本。具体实现了,自动查询某一车票的余票数量,当数量产生变化时,将自动发送
- 打开在节点中加入一句:max_allowed_packet=5M 将MySQL的容量扩大到5M  
- 运行效果:完整源码:##import libraryfrom tkinter import *import timefrom playsou
- PHP使用Swagger生成好看的API文档不是不可能,而是非常简单。首先本人使用Laravel框架,所以在Laravel上安装swagge
- 本文实例讲述了微信小程序实现图片上传、删除和预览功能的方法。分享给大家供大家参考,具体如下:这里主要介绍一下微信小程序的图片上传图片删除和图
- 因此为了节省服务器资源,应该尽可能关闭连接以释放连接所占有的资源,这种关闭记录集的连接而不关闭记录集的技术叫做断开记录集,这个记录集本身则称
- 最近要做数据库同步,如果网上找了例子,成功,记录下来,下回再看。这个是网上找的一编文章。以下配置在本机上已经成功:实现功能:A为主服务器,B
- 本文从多个角度来讲解如何在Access数据库上如何上传并且显示上所上传图片。在 * 站制做过程中,需要上传图片、显示图片,上传的图片要能够保
- 在运用xmlhttp组件编写程序中,会碰到 "msxml3.dll 错误 ‘800c0005’&nb
- 导言到目前为止的讨论编辑DataList的教程里,没有包含任何验证用户的输入,即使是用户非法输入— 遗漏了product的name或者负的p
- 在使用Ajax过程中,有时候总会遇到一些难题,浏览器兼容、编码、IE下的特殊处理等等,偶尔会搞的人头昏脑胀哭笑不得,这里列一些小贴士,或许有
- 1 文件处理形式 近期由于处理大量数据,所以对于采用python进行处理文件的一些操作也打算整理一下;接下
- 在工作中,我们经常需要从命令行当中解析出指定的参数,而 Python 也提供了相应的标准库来做这件事情,比如 sys, optparse,
- 用两个文件.GLOBAL.ASA和online.asp下面分别给出两个文件的源代码.呵呵,我也是菜鸟,大家加油哟!<SCR
- strSourceFile = Server.MapPath(dataXML&"/Advertisement/"
- ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?]产生原因:这种错误