python实现学员管理系统(面向对象版)


Posted in Python onJune 05, 2022

前言

使用面向对象编程思想完成学员管理系统的开发,具体如下:

  • 系统要求:使用面向对象的方法
  • 系统功能:添加学员、删除学员、修改学员信息、查询学员信息、显示所有学员信息、保存学员信息及退出系统等功能。

分析

  • 角色分析

- 学员
- 管理系统

  • 工作中注意事项

-为了方便维护代码,一般一个角色一个程序文件
- 项目要有主程序入口,习惯称为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中创建一个项目后,再创建者三个文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。


Tags in this post...

Python 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
Python基于FTP模块实现ftp文件上传操作示例
Apr 23 Python
python批量修改图片后缀的方法(png到jpg)
Oct 25 Python
详解python pandas 分组统计的方法
Jul 30 Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
Python生成词云的实现代码
Jan 14 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
PyQt5的相对布局管理的实现
Aug 07 Python
python中的None与NULL用法说明
May 25 Python
python实现学生信息管理系统(面向对象)
Jun 05 #Python
Python使用pyecharts控件绘制图表
Jun 05 #Python
Python使用openpyxl模块处理Excel文件
Jun 05 #Python
Python中requests库的用法详解
Jun 05 #Python
Python加密与解密模块hashlib与hmac
Jun 05 #Python
Python日志模块logging用法
Jun 05 #Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 05 #Python
You might like
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
php绘制一条弧线的方法
2015/01/24 PHP
php实现删除空目录的方法
2015/03/16 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
jQuery实现日历效果
2020/09/11 jQuery
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
小学生自我评价范例
2013/09/24 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
小学师德师风整改措施
2014/10/27 职场文书
英文自荐信范文
2015/03/25 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python