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

标签:python,学员,管理系统
0
投稿

猜你喜欢

  • Python配置文件yaml的用法详解

    2023-07-04 21:02:56
  • python 自动提交和抓取网页

    2022-11-16 17:47:01
  • python如何保存文本文件

    2021-10-27 23:16:25
  • 基于go微服务效率工具goctl深度解析

    2023-07-12 03:57:13
  • JavaScript事件委托技术实例分析

    2023-07-01 01:18:23
  • css命名及书写规范大全

    2008-05-24 08:52:00
  • PHP IN_ARRAY 函数使用注意事项

    2023-11-16 19:24:24
  • 在ASP.NET 2.0中操作数据之十二:在GridView控件中使用TemplateField

    2023-07-07 07:02:50
  • Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI功能

    2021-09-08 18:07:26
  • python 实现创建文件夹和创建日志文件的方法

    2023-07-07 11:35:10
  • 10张动图学会python循环与递归问题

    2023-08-23 10:55:42
  • Python实现语音合成功能详解

    2023-11-28 16:09:17
  • python实现批量视频分帧、保存视频帧

    2023-07-04 19:59:18
  • python/sympy求解矩阵方程的方法

    2023-07-04 07:06:34
  • python中set()函数简介及实例解析

    2022-05-15 17:12:24
  • Oracle 启动例程 STARTUP参数说明

    2009-07-07 10:26:00
  • JavaScript中的函数声明和函数表达式区别浅析

    2023-08-05 23:22:36
  • 解决pycharm启动后总是不停的updating indices...indexing的问题

    2023-03-05 07:35:38
  • python自动提取文本中的时间(包含中文日期)

    2023-08-22 21:32:11
  • 使用Python和xlwt向Excel文件中写入中文的实例

    2023-08-27 19:18:08
  • asp之家 网络编程 m.aspxhome.com