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 01 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
利用Python破解验证码实例详解
Dec 08 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
python2和python3的输入和输出区别介绍
Nov 20 Python
python可视化爬虫界面之天气查询
Jul 03 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
python 如何引入协程和原理分析
Nov 30 Python
python中 .npy文件的读写操作实例
Apr 14 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
Session的工作方式
2006/10/09 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php获取参数的几种方法总结
2014/02/18 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
node.js Web应用框架Express入门指南
2014/05/28 Javascript
js自定义回调函数
2015/12/13 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
工作中常用到的ES6语法
2018/09/04 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python k-近邻算法实例分享
2014/06/11 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
分享Python字符串关键点
2015/12/13 Python
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
大专自我鉴定范文
2013/10/23 职场文书
大学生最常用的自我评价
2013/12/07 职场文书
优秀护士演讲稿
2014/04/30 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
先进典型事迹材料
2014/12/29 职场文书
清洁工个人总结
2015/03/04 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
Python中异常处理用法
2021/11/27 Python
Mysql忘记密码解决方法
2022/02/12 MySQL
app场景下uniapp的扫码记录
2022/07/23 Java/Android