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编程中的运用实例
Jun 26 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
python保存网页图片到本地的方法
Jul 24 Python
python仿抖音表白神器
Apr 08 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 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中的数组操作函数整理
2008/08/18 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php查询whois信息的方法
2015/06/08 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
web页面数据展示新想法(json)
2010/06/08 Javascript
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
python如何使用unittest测试接口
2018/04/04 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
如何在C# winform中异步调用web services
2015/09/21 面试题
大学生求职简历的自我评价范文
2013/10/12 职场文书
运动会班级口号
2014/06/09 职场文书
服务理念口号
2014/06/11 职场文书
高中军训的心得体会
2014/09/01 职场文书
投资入股合作协议书
2014/10/28 职场文书
酒店前台岗位职责
2015/04/16 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
python代码实现备忘录案例讲解
2021/07/26 Python
Selenium浏览器自动化如何上传文件
2022/04/06 Python