python 会员信息管理系统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.pyclass Member:def __init__(self, name, gender, phone):self.name = nameself.gender = genderself.phone = phonedef __str__(self):return f"姓名:{self.name},性别:{self.gender},手机号:{self.phone}"
# system.py
from member import Memberclass 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("会员删除成功!")returnprint("查无此人!")def modify_member(self, name, new_name, new_gender, new_phone):for member in self.members:if member.name == name:member.name = new_namemember.gender = new_gendermember.phone = new_phoneprint("会员信息修改成功!")returnprint("查无此人!")def search_member(self, name):for member in self.members:if member.name == name:print(member)returnprint("查无此人!")def display_all_members(self):print("所有会员信息:")for member in self.members:print(member)def exit_system(self):print("退出系统,谢谢使用!")exit()@staticmethoddef 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 MemberSystemif __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()
相关文章:
python 会员信息管理系统2.0
问题介绍 综合案例实现:会员管理系统设计与实现-V3 利用所学习的知识点 ,结合会员管理系统的分析与实现, 了解面向对象开发过程中类内部功能的分析方法,系统讲解 Python语法、控制结构、四种典型序列 ,函数定义以及面向对象语法和模块的应用…...
HTTP的强制缓存和协商缓存
HTTP的强制缓存和协商缓存 HTTP的缓存技术强制缓存ExpiresCache-Control 协商缓存If-Modified-Since和Last-ModifiedIf-None-Match和ETag优先级 可被缓存的请求方法总结 HTTP的缓存技术 当我们进行HTTP请求时,需要将请求报文发送给对端,当服务端收到请求…...
Prometheus-Grafana基础篇安装绘图
首先Prometheus安装 1、下载 https://prometheus.io/download/ 官网路径可以去这儿下载 2、如图: 3.解压: tar -xf prometheus-2.6.1.linux-amd64 cd prometheus-2.6.1.linux-amd64 4.配置文件说明: vim prometheus.yml 5.启动Promethe…...
探索艺术的新领域——3D线上艺术馆如何改变艺术作品的传播方式
在数字化时代的浪潮下,3D线上艺术馆成为艺术家们展示和传播自己作品的新平台。不仅突破了地域和物理空间的限制,还提供了全新的互动体验。 一、无界限的展示空间:艺术家的新展示平台 3D线上艺术馆通过数字化技术,为艺术家提供了一…...
[dvwa] file upload
file upload 0x01 low 直接上传.php 内容写<? eval($_POST[jj]);?> 用antsword连 路径跳两层 0x02 medium 添加了两种验证,格式为图片,大小限制小于1000 上传 POST /learndvwa/vulnerabilities/upload/ HTTP/1.1 Host: dvt.dv Content-Le…...
pygame发射子弹后绘制射线
import pygame import sys import mathpygame.init()screen pygame.display.set_mode((800, 600)) pygame.display.set_caption("Rotate and Shoot Bullets")# 定义子弹类 class Bullet:def __init__(self, x, y, angle):self.x xself.y yself.angle angleself.s…...
逻辑回归都有什么类型
逻辑回归是一种用于解决分类问题的统计学习方法,它基于概率理论,将输入特征与输出类别之间的关系建模为一个概率分布。逻辑回归模型可以用不同的方法来表示,其中包括: 1. **基本逻辑回归模型**:最简单的逻辑回归模型假…...
基于springboot+vue实现的高校宿舍管理系统(界面优美,十分推荐)
一、项目简介 本项目是一套基于springbootvue实现的高校宿舍管理系统设计与实现 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观…...
C语言学习笔记day18
1. 指针基本概念 1.地址:用来区分内存中不同字节的编号 2.指针:地址就是指针,指针就是地址 3.指针变量:存储指针的变量,有时去掉变量,称为指针 2. 指针运算符 1.&: 1.获得一个变量在内存空间中的首地址 2.让表达式类型升级 2.*: 1.取…...
JSP内置对象session
1.session对象,为会话对象,封装当前用户会话中的有关信息。 网页数据传递是单向传递的,session能够将数据进行多个数据互相传递,使用的是同一个东西 实例1: 利用session对象String getId() 方法获取当前session对象…...
BM96 主持人调度(二)(贪心算法)
一开始写的时候忘了给start、end数组赋值了 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 计算成功举办活动需要多少名主持人* param n int整型 有n个活动* param start…...
【TB作品】MSP430单片机读取大气压强传感器BMP180
文章目录 实物main所有代码 实物 main #include <msp430.h> #include "stdio.h" #include "OLED.h"#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h>// P2.2 oled scl // P2.3 oled sda// p…...
Github第一Star数的国产免费开源防火墙--雷池社区版初步体验
前言 近期准备搭建一个博客网站,用来存储工作室同学们的学习笔记。服务器准备直接放在公网上,方便大家随时随地的上传和浏览,为了防止网站被人日穿成为肉鸡,一些防御措施还是要部署的。 首先明确自己的需求: 零成本…...
自动驾驶涉及相关的技术
自动驾驶涉及多种技术,包括传感器、数据处理、决策制定和执行控制等方面。以下是一些关键技术的详细说明: 传感器技术: 激光雷达(LiDAR):激光雷达通过发射激光束并测量其反射时间来获取周围环境的高精度三维…...
简单高效的GO发票识别+发票查验接口
在这个瞬息万变的商业世界里,商业欺诈如影随形,虚假发票成为企业难以忽视的风险。而发票作为每笔交易的重要凭证,对其进行入账前的真伪查验显得尤为重要。但面对海量的发票查验与发票录入工作,人工手动查验的方式,速度…...
c++和python基本数据类型比较
以下是 C 和 Python 中一些基本数据类型的比较: 1. 整数类型: C: C 中的整数类型包括 int, short, long, long long 等,它们的大小和范围取决于编译器和操作系统。 Python: Python 中只有一个整数类型 int࿰…...
运维工具如此割裂,九招帮你统一纳管
背景 在运维工具这个江湖中,出现了众多独行侠客,各怀绝技,各自为战。这些开源监控软件如同武林中的各派门派:SkyWalking 以精湛的追踪功夫独步武林;Prometheus 以灵活的告警机制纵横江湖;ELK 则如同黯然销…...
基于springboot的大创管理系统源码数据库
基于springboot的大创管理系统源码数据库 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了大创管理系统的开发全过程。通过分析大创管理系统管理的不足,创建了一个计算机管理大创管理系统的方案。…...
解密辛普森悖论:如何在数据分析中保持清醒头脑
解密辛普森悖论:如何在数据分析中保持清醒头脑 之前也参加fine Bi的 培训,学到了辛普森悖论,今天为大家介绍一下 文章目录 解密辛普森悖论:如何在数据分析中保持清醒头脑前言我们来举一个例子数据分析解释管理应用的启示 前言 什…...
Vue前端框架
1.vue基本使用1 1.vue环境搭建 一般创建vue项目是在cmd命令中用:vue ui 命令,采用ui图形界面的方式直观创建项目。 2.vue基本使用方式:vue组件 3.文本插值 4.属性绑定 5.事件绑定 6.双向绑定 7.条件渲染 2.vue基本使用2 1.axios 安装axios命令…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
