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 相关文章推荐
详解Python中用于计算指数的exp()方法
May 14 Python
python定时执行指定函数的方法
May 27 Python
python 数据的清理行为实例详解
Jul 12 Python
Python使用pip安装pySerial串口通讯模块
Apr 20 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Tensorflow训练模型越来越慢的2种解决方案
Feb 07 Python
Django choices下拉列表绑定实例
Mar 13 Python
python实现拼接图片
Mar 23 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
通过cmd进入python的步骤
Jun 16 Python
Windows下Sqlmap环境安装教程详解
Aug 04 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
Zend Guard一些常见问题解答
2008/09/11 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
django实现日志按日期分割
2020/05/21 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
大学自主招生自荐信范文
2014/02/26 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
指导教师推荐意见
2015/06/05 职场文书
golang中的空接口使用详解
2021/03/30 Python
golang slice元素去重操作
2021/04/30 Golang
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript