python实现学员管理系统(面向对象版)
作者:卄青 发布时间:2022-04-08 12:55:32
前言
使用面向对象编程思想完成学员管理系统的开发,具体如下:
系统要求:使用面向对象的方法
系统功能:添加学员、删除学员、修改学员信息、查询学员信息、显示所有学员信息、保存学员信息及退出系统等功能。
分析
角色分析
- 学员
- 管理系统
工作中注意事项
-为了方便维护代码,一般一个角色一个程序文件
- 项目要有主程序入口,习惯称为main.py
创建程序文件
1.创建项目目录,例如:StudentmangerSystem
2.程序文件如下:
程序入口文件:main.py
学员文件:studnet.py
管理系统文件:mangerSystem.py
书写程序
student.py
需求:储存数据的形式:列表存储学员对象
管理系统框架
需求:系统功能循环使用,用户输入不同的功能序号执行不同的功能
步骤:
定义程序入口函数
显示功能菜单
用户输入功能序号
根据用户驶入的功能序号执行不同的功能
定义系统功能函数,添加、删除学员等
student.py
需求是让我们把学员的数据放在列表里面,而且要用到面向对象。由此我们将学员看成是一个类,一个个学员就是实例对象。注意:这个时候列表里放的将是对象,而非其他数据类型。切记切记!
class Student(object):
# 初始化学生类,传入学员的三个参数
def __init__(self,sname,sgender,stel):
self.name = sname
self.gender = sgender
self.tel = stel
# 便于格式化返回字符串,浙江影响到对象的打印
def __str__(self):
return f'{self.name}的性别是{self.gender},电话号码是{self.tel}'
managerSystem
同样也是要用到面向对象,由此,将需求中的各种功能看成是一个个实例方法。
功能面板也看成是一个实例方法
要求使用循环,则需要一个运行程序,将功能面板,实例方法调用。同时使用if判断语句判断将用户输入的功能序号和功能的运行相对应。
from Student import *
class managerSystem(object):
# 初始化
def __init__(self):
self.student_list = []
# 定义功能面板
def show_menu(self):
print("请选择如下功能:")
print("1.添加学员")
print("2.删除学员")
print("3.修改学员信息")
print("4.查询学员信息")
print("5.显示所有学员信息")
print("6.保存学员信息")
print("7.退出系统")
# 定义功能函数:添加学员
def student_add(self):
name = input('请输入姓名:')
for i in self.student_list:
if i.name != name:
gender = input('请输入性别:')
tel = input('请输入电话号:')
break
else:
print('库中已有此人!')
student = Student(name,gender,tel)
self.student_list.append(student) # 注意:这里加入到列表中的是一个实例对象,打印只会得到一个内存地址
# 定义功能函数:删除学员
def student_del(self):
name = input('请输入删除学员的姓名:')
for i in self.student_list:
if i.name == name:
del i
else:
print('查无此人!')
# 定义功能函数:修改信息
def student_change(self):
name = input('请输入姓名:')
for i in self.student_list:
if i.name == name:
i.gender = input('请输入性别:')
i.tel = input('请输入电话号:')
break
else:
print('查无此人!')
# 定义功能函数:查询功能信息
def student_search(self):
name = input('请输入姓名:')
for i in student_list:
if i.name == name:
print(f'{i.name}的性别{i.gender}电话号是{i.tel}')
break
else:
print('查无此人!')
# 定义功能函数:显示所有信息
def student_show_all(self):
for i in student_list:
print(f'{i.name}的性别是{i.gender}电话号是{i.tel}')
# 定义功能函数:保存学员信息
def student_save(self):
print('保存信息成功!')
# 定义功能函数:退出系统
def student_exit(self):
print('退出成功!')
“”“
定义主运行程序
”“”
def run(self):
# 定义一个变量,用以跳出循环
i = 0
while i == 0:
srlf.show_menu()
func_sum = input('请输入功能序号:')
if func_sum == '1':
self.student_add() # 添加学员
elif func_sum == '2':
self.student_del() # 删除学员
elif func_sun == '3':
self.student_change() # 修改学员信息
elif func_sum == '4':
self.student_search() # 查询学员信息
elif func_sum == '5':
self.student_show_all() # 显示所有信息
elif func_sum == '6':
self.studnet_save() # 保存信息
else:
i += 1 # 当i不等于0时,跳出循环
self.student_exit() # 退出程序
main.py
管理学员系统的执行文件
from managerSystem import *
if __name__ == '__main__':
Mangersystem = managerSystem()
Mangersystem.run()
最后,这三个文件要在同一个目录下,最好先在pycharm中创建一个项目后,再创建者三个文件。
来源:https://blog.csdn.net/weixin_50184720/article/details/115036157
猜你喜欢
- G2 是蚂蚁金服开源一个基于图形语法,面向数据分析的统计图表引擎。G2Plot 是在 G2 基础上,屏蔽复杂概念的前提下,保留 G2 强大图
- 场景描述今天在将 Hive 表同步到 MySQL 之后,其中有一列是唯一列,但是在 MySQL 中查询的时候 count 与 distinc
- '创建DOM对象set objDom=server.CreateObject("MicroSoft.XMLDom"
- 1、打印九九乘法表#只打印结果for i in range(1,10): for j in range(1,i+1): &nbs
- mock简介mock原是python的第三方库python3以后mock模块已经整合到了unittest测试框架中,不用再单独安装Mock这
- python中ord函数Python ord()函数 (Python ord() function)ord() function is a
- 本文实例讲述了Python实现PS滤镜的万花筒效果。分享给大家供大家参考,具体如下:这里用 Python 实现 PS 的一种滤镜效果,称为万
- 单位的小王学习SQL Server已有一段时间了,已经做了个不错的管理系统,有次小王让我帮着看看库的设计有没有问题,其间我发现他的安全意识非
- IE6下浮出层常会需要增加一个iframe来解决浮出层被Obj穿透的问题,这个是目前最有效的方案,不过这个方案本身有个缺陷,就是iframe
- 遵循Web标准的思想,网页要表现出一种亲和力。那么,针对残障用户来说,其“阅读”器可不能读取图像上传递的信息的。所以我们会采用一种Using
- 区域(Area)是一个 ASP.NET MVC 功能,用于将相关功能组织为一个单独的命名空间(用于路由)和文件结构(用于视图)。使用区域通过
- python使用ctypes模块调用windows api GetVersionEx获取当前系统版本,没有使用python32#!c:/py
- 参考文章ubuntu源码安装python3linux 编译安装python3.6的教程详解准备工作安装工具sudo apt updatesu
- 一:关于MySQL5 MySQL5系列数据库是MySQL的最新版本的数据库,比较流行的发行版是mysql-5.0.18。MySQL 英文官方
- 以读取VOC2012语义分割数据集为例,具体见代码注释:VocDataset.pyfrom PIL import Imageimport t
- 首先要注意 vue3中 v-model 默认绑定的变量名变了,从原理的 value 改成了 modelValue,如果要改变变量的值,要执行
- 1、说明Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。asyncio的
- 开发高质量软件的过程中,我们经常会为每个函数编写测试,这样在开发过程中运行这些测试的时候就比较方便,doctest是一个python标准库自
- 给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除主要涉及的知识点有:os模块综合应用glob模块综合应用利用f
- 利用python进行求解,求解的要求是不能使用python内部封装好的函数例如:maxway1:def findmax(data,n): i