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之关于类的初步认识
Oct 11 Python
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
python编程使用协程并发的优缺点
Sep 20 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
Python调用服务接口的实例
Jan 03 Python
pandas 对日期类型数据的处理方法详解
Aug 08 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Python测试线程应用程序过程解析
Dec 31 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 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读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP+MYSQL会员系统的开发实例教程
2014/08/23 PHP
PHP数组相关函数汇总
2015/03/24 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
PHP钩子实现方法解析
2019/05/21 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
jquery dialog键盘事件代码
2010/08/01 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
详解python tkinter模块安装过程
2020/01/06 Python
python global和nonlocal用法解析
2020/02/03 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
anaconda3安装及jupyter环境配置全教程
2020/08/24 Python
python asyncio 协程库的使用
2021/01/21 Python
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
教师简历自我评价
2014/02/03 职场文书
人民调解员培训方案
2014/06/05 职场文书
检讨书范文2000字
2015/01/28 职场文书
高二数学教学反思
2016/02/18 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL