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 相关文章推荐
Hadoop中的Python框架的使用指南
Apr 22 Python
在Django中同时使用多个配置文件的方法
Jul 22 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
python Pandas 读取txt表格的实例
Apr 29 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
使用pyinstaller逆向.pyc文件
Dec 20 Python
记录模型训练时loss值的变化情况
Jun 16 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中使用Oracle数据库(3)
2006/10/09 PHP
基于mysql的bbs设计(四)
2006/10/09 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python lxml模块安装教程
2015/06/02 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
解决python os.mkdir创建目录失败的问题
2018/10/16 Python
3分钟学会一个Python小技巧
2018/11/23 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
构建高效的python requests长连接池详解
2020/05/02 Python
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
法雷奥SQA(electric)面试问题
2016/01/23 面试题
毕业生自荐书
2014/02/02 职场文书
岗位明星事迹材料
2014/05/18 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
2014年关工委工作总结
2014/11/17 职场文书
搞笑结婚保证书
2015/05/08 职场文书
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers