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中面向对象编程的相关知识
May 25 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python列表list保留顺序去重的实例
Dec 14 Python
python3 求约数的实例
Dec 05 Python
python单例设计模式实现解析
Jan 07 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
python如何求圆的面积
Jul 01 Python
python SOCKET编程基础入门
Feb 27 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/11/03 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
详解Vue内部怎样处理props选项的多种写法
2018/11/06 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
python pycharm的安装及其使用
2019/10/11 Python
python向图片里添加文字
2019/11/26 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
python文件及目录操作代码汇总
2020/07/08 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
html5唤醒APP小记
2019/03/27 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
教师个人的自我评价分享
2014/01/02 职场文书
承诺书范文
2014/06/03 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
通知格式
2015/04/27 职场文书
旅游安全责任协议书
2016/03/22 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python