首页 > 编程语言 >python 会员信息管理系统2.0

python 会员信息管理系统2.0

时间:2024-04-10 13:30:54浏览次数:26  
标签:name python self member phone 会员 print 信息管理系统 2.0

问题介绍

综合案例实现:会员管理系统设计与实现-V3

利用所学习的知识点 ,结合会员管理系统的分析与实现, 了解面向对象开发过程中类内部功能的分析方法,系统讲解 Python语法、控制结构、四种典型序列 ,函数定义以及面向对象语法和模块的应用。(使用面向对象的思想)

面向对象编程思想完成会员管理系统的开发, 具体要求如下。
(1)系统功能:添加会员、删除会员、修改会员信息 ,查询会员信息、显示所有会员信息及退出系统等功能。
该系统从角色分析来看,可以分为: 会员和管理系统。 为了方便维护代码,一般一个角色一个程序文件。--(会员模块--10分,管理系统模块中,添加会员--30分、删除会员--10分、修改会员信息--10分 ,查询会员信息--10分、显示所有会员信息--10分及退出系统--10分,总共90分)

(2)系统设计。
项目要有主程序入口,习惯为main.py或者自定义py程序。--(10分)

按要求踩点给分(截图截不全的可酌情扣分)

其中具体要求为:

一:会员当中包含姓名、性别、手机号等基本信息。

二:管理系统包含系统功能各个的具体定义。主要实现添加删除修改查询显示所有信息等功能。(使用实例方法、静态方法)

显示功能菜单、用户输入功能序号,然后根据用户输入的功能序号执行不同的功能。

(1)添加功能:通过用户输入会员姓名、性别、手机号,将会员添加到系统中,打印添加此会员的信息添加成功,而且打印添加过的会员列表信息。(提示思路:用户输入姓名、性别、手机号,然后创建该会员对象,最后将该会员添加到列表中)

(2)删除功能:用户输入目标会员姓名,如果会员存在则删除会员。(提示思路:用户输入目标会员姓名,然后遍历会员数据列表,如果用户输入的会员姓名存在则删除,否则提示该会员不存在,查无此人)

(3)修改功能:用户输入目标会员姓名,如果会员存在则修改该会员信息。(提示思路:首先用户输入目标会员姓名;然后遍历会员姓名数据列表,如果用户输入的会员姓名存在则修改会员的姓名、性别、手机号,否则提示该会员不存在。)

(4)查询功能:用户输入目标会员姓名,如果会员存在则打印该会员信息。(提示思路:首先用户输入目标会员姓名,然后遍历会员数据列表,如果用户输入的会员姓名存在则打印会员信息,否则提示该会员不存在。)

(5)显示全部会员信息功能:显示所有会员信息,通过遍历会员数据列表,打印所有会员信息。

三:在main.py启动管理系统。(利用模块导入功能import)

代码展示

# member.py

class Member:
    def __init__(self, name, gender, phone):
        self.name = name
        self.gender = gender
        self.phone = phone

    def __str__(self):
        return f"姓名:{self.name},性别:{self.gender},手机号:{self.phone}"
# system.py
from member import Member

class MemberSystem:
    def __init__(self):
        self.members = []

    def add_member(self, name, gender, phone):
        member = Member(name, gender, phone)
        self.members.append(member)
        print("会员添加成功!")
        self.display_all_members()

    def delete_member(self, name):
        for member in self.members:
            if member.name == name:
                self.members.remove(member)
                print("会员删除成功!")
                return
        print("查无此人!")

    def modify_member(self, name, new_name, new_gender, new_phone):
        for member in self.members:
            if member.name == name:
                member.name = new_name
                member.gender = new_gender
                member.phone = new_phone
                print("会员信息修改成功!")
                return
        print("查无此人!")

    def search_member(self, name):
        for member in self.members:
            if member.name == name:
                print(member)
                return
        print("查无此人!")

    def display_all_members(self):
        print("所有会员信息:")
        for member in self.members:
            print(member)

    def exit_system(self):
        print("退出系统,谢谢使用!")
        exit()

    @staticmethod
    def display_menu():
        print("===== 会员管理系统 =====")
        print("1. 添加会员")
        print("2. 删除会员")
        print("3. 修改会员信息")
        print("4. 查询会员信息")
        print("5. 显示所有会员信息")
        print("6. 退出系统")

    def run(self):
        while True:
            self.display_menu()
            choice = input("请输入功能序号:")
            if choice == '1':
                name = input("请输入会员姓名:")
                gender = input("请输入会员性别:")
                phone = input("请输入会员手机号:")
                self.add_member(name, gender, phone)
            elif choice == '2':
                name = input("请输入要删除的会员姓名:")
                self.delete_member(name)
            elif choice == '3':
                name = input("请输入要修改的会员姓名:")
                new_name = input("请输入新的会员姓名:")
                new_gender = input("请输入新的会员性别:")
                new_phone = input("请输入新的会员手机号:")
                self.modify_member(name, new_name, new_gender, new_phone)
            elif choice == '4':
                name = input("请输入要查询的会员姓名:")
                self.search_member(name)
            elif choice == '5':
                self.display_all_members()
            elif choice == '6':
                self.exit_system()
            else:
                print("输入有误,请重新输入!")
# main.py
from system import MemberSystem

if __name__ == "__main__":
    system = MemberSystem()
    system.run()

部分解释

1. 会员类 Member (member.py

  • Member 类包含了会员的基本信息:姓名、性别、手机号。
  • __init__ 方法用于初始化会员对象的属性。
  • __str__ 方法用于返回会员对象的字符串表示,方便打印会员信息

 2. 管理系统类 MemberSystem (system.py

  • MemberSystem 类包含了会员管理系统的各项功能。
  • __init__ 方法用于初始化会员列表,存储所有会员对象。
  • add_member(self, name, gender, phone):添加会员信息到系统中,并打印添加成功信息。
  • delete_member(self, name):根据会员姓名删除会员信息。
  • modify_member(self, name, new_name, new_gender, new_phone):根据会员姓名修改会员信息。
  • search_member(self, name):根据会员姓名查询会员信息。
  • display_all_members(self):显示所有会员信息。
  • exit_system(self):退出系统。
  • display_menu(self):显示系统功能菜单。
  • run(self):启动系统,接受用户输入的功能序号,并执行相应功能

 3. 主程序入口 main.py

main.py 是整个程序的入口,通过导入 MemberSystem 类来启动会员管理系统

补充

`@staticmethod` 是 Python 中的一个装饰器(Decorator)。当一个方法被 `@staticmethod` 装饰时,它就成为了一个静态方法。静态方法不需要访问类的实例(即不需要 `self` 参数),因此可以在不创建类实例的情况下调用。

在上面的代码中,`display_menu` 方法被 `@staticmethod` 装饰,这意味着你可以通过类名直接调用该方法,而不需要创建 `MemberSystem` 类的实例。例如:

```python
MemberSystem.display_menu()
```

这样就能够显示会员管理系统的菜单,而不需要先创建 `MemberSystem` 对象。

可以通过添加以下代码对会员姓名,电话号码的输入进行限制

def add_member(self, name, gender, phone):
    # 验证手机号格式是否正确
    if not phone.isdigit() or len(phone) != 11:
        print("手机号格式不正确,请输入11位数字!")
        return
    
    # 验证姓名是否为空
    if not name:
        print("姓名不能为空!")
        return
    
    # 验证姓名是否已存在
    for member in self.members:
        if member.name == name:
            print("姓名已存在,请重新输入!")
            return
    
    # 添加会员
    member = Member(name, gender, phone)
    self.members.append(member)
    print("会员添加成功!")
    self.display_all_members()

标签:name,python,self,member,phone,会员,print,信息管理系统,2.0
From: https://blog.csdn.net/2403_83147124/article/details/137589128

相关文章

  • 零基础入门学习Python第一阶
    01初识PythonPython简介Python的历史1.1989年圣诞节:GuidovonRossum开始写Python语言的编译器。2.1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的......
  • 【Python使用turtle库随便画一些乱七八糟的东西】
    1、画一些五颜六色乱七八糟的Python代码如下:importrandomimportturtle#导入turtle和random库t=turtle.Turtle()#创建海龟笔t#创建一个常用颜色列表用来随机抽取颜色colors=["red","orange","lime","yellow","blue","indigo","p......
  • Python计算两个质谱谱图的相似度——Matchms
    在做实验的时候需要在python环境下比较两个谱图的相似度,对于这个需求就遇到两个问题:如何导入谱图,让其在python环境中显示如何对比相似度,谱图之间的相似度与向量之间的相似度有何差别我调研了一些库可以用在python中去处理谱图,包括pyteomics、spectrum_utils还有今天要介绍的......
  • Ubuntu22.04安装vmtools失败总结
    Ubuntu22.04安装vmtools失败总结问题按照网上安装vmtools方法,点击VMwareWorkstation菜单栏虚拟机重新安装VMtools后再运行下列代码sudo./vmware-install.pl会失败。无法与Windows进行联动。解决方案sudoapt-getupdatesudoapt-getinstallopen-vm-tools-......
  • 一键部署openGauss2.0.1 CentOS 7.6
    一键部署openGauss2.0.1[CentOS7.6]本文档目的是为了帮助高校学生提供基于CentOS7.6操作系统,实现openGauss数据库一键式安装的脚本。该脚本执行成功后,所有关于openGauss数据库的文件将保存在/gaussdb目录中。脚本内容中“...”请替换为服务器实际的私有IP地址。脚......
  • Python教程‘r’的使用技巧
    嗨,大家好!今天,我们将探讨Python中一个重要但经常被忽视的小技巧'r'。 在Python中,r是一个前缀,它用于处理原始字符串(rawstrings)。原始字符串与普通字符串不同,它们让你在字符串中使用反斜杠符号\而不必担心它们被解释成转义字符。为什么要使用原始字符串?原始字符串......
  • python写的收Udp消息后,再发到 MQTT 的例子
    收到Udp消息后,再发到MQTT的例子完整代码udp2mqtt.pyimportjsonimportloggingimportrandomimportsocketimporttimeimportpaho.mqtt.clientasmqtt_clientBROKER='*******.ala.cn-hangzhou.emqxsl.cn'PORT=8084TOPIC="python-mqtt/wss"CLIEN......
  • Python异步HTTP客户端和服务器功能的底层库之httpcore使用详解
    概要httpcore库是一个提供异步HTTP客户端和服务器功能的底层库,它是许多高级HTTP客户端库的基础,如httpx。httpcore旨在提供一个快速、稳定且易于使用的HTTP组件。安装通过pip可以轻松安装httpcore:pip install httpcore特性异步支持:原生支持异步操作,提高I/O效率。......
  • Python快速构建Web API的利器库之Toapi使用详解
      概要Toapi模块是一个强大的Python库,可以帮助开发者快速构建WebAPI。通过Toapi,开发者可以轻松地将网页内容转换为API接口,实现数据的抓取和解析。本文将介绍Toapi模块的基本用法和功能,以及多种Python案例,帮助读者更好地理解和应用Toapi模块。Toapi模块的基本用法Toap......
  • Python中global和nonlocal关键字的妙用:变量管理技巧
        概要在Python中编写函数时,经常会遇到需要在函数内部访问和修改外部变量的情况。在这种情况下,我们可以使用 global 和 nonlocal 关键字来声明变量的作用域,以便正确地访问和修改这些变量。本文将深入探讨 global 和 nonlocal 的用法,包括详细的示例代码和......