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中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
对python文件读写的缓冲行为详解
Feb 13 Python
python实现图像拼接
Mar 05 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
Python面向对象多态实现原理及代码实例
Sep 16 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
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
php实现网站插件机制的方法
2009/11/10 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
总结PHP中DateTime的常用方法
2016/08/11 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
React如何避免重渲染
2018/04/10 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
Python字符串详细介绍
2015/05/09 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
python pygame实现五子棋小游戏
2020/10/26 Python
医学类个人求职信范文
2014/02/05 职场文书
小学生节水倡议书
2015/04/29 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python