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 排列组合之itertools
Mar 20 Python
python中的五种异常处理机制介绍
Sep 02 Python
Python3.2中的字符串函数学习总结
Apr 23 Python
小米5s微信跳一跳小程序python源码
Jan 08 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
对python3中, print横向输出的方法详解
Jan 28 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
python获取交互式ssh shell的方法
Feb 14 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
Python OpenCV实现图形检测示例详解
Apr 08 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安全性需要注意的几点事项
2014/07/17 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
深入flask之异步非堵塞实现代码示例
2018/07/31 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
详解Python 循环嵌套
2020/07/09 Python
python线程里哪种模块比较适合
2020/08/02 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
日本语毕业生自荐信
2014/02/01 职场文书
英语老师推荐信
2014/02/26 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
汽车车尾标语大全
2015/08/11 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
Python中json.dumps()函数的使用解析
2021/05/17 Python
分析设计模式之模板方法Java实现
2021/06/23 Java/Android