Python面向对象实现学员管理系统完整教程
本文详细介绍如何使用Python面向对象编程思想开发学员管理系统。通过定义Student类和ManagerSystem类,实现添加、删除、修改、查询、显示及保存学员信息等功能。文章涵盖项目结构搭建、文件分工及主程序入口设计,帮助开发者掌握面向对象在小型管理系统中的应用。
前言
本教程旨在展示如何利用面向对象编程(OOP)的核心思想来构建一个功能完整的学员管理系统。
- 系统需严格遵循面向对象的设计原则进行开发。
- 系统需具备以下核心功能:添加新学员、删除现有学员、修改学员资料、查询特定学员信息、展示所有学员列表、持久化保存学员数据以及安全退出系统。
开发分析
- 角色分析
- 学员实体 - 管理系统核心
- 工程实践注意事项
- 为提升代码可维护性,建议每个主要角色或模块独立存放于单独的程序文件中。 - 项目必须包含一个明确的主程序入口文件,通常命名为main.py。
创建程序文件
1. 建立项目根目录,例如命名为StudentManagerSystem。 2. 在该项目目录下创建以下程序文件:
- 主程序入口文件:main.py
- 学员数据模型文件:student.py
- 管理系统逻辑文件:managerSystem.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.py
同样应用面向对象思想,将系统各项功能封装为类的实例方法。功能菜单的展示也设计为一个实例方法。为了实现程序的持续运行,需要编写一个运行逻辑,循环调用功能菜单及各业务方法。同时,使用if-elif语句判断用户输入的功能序号,并匹配执行对应的功能方法。
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等IDE中先创建项目,再依次创建这三个文件以保证路径正确。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













