python 会员管理系统

news/2024/11/17 3:49:19/

问题介绍

综合案例:会员管理系统实现-V2版(不可超前使用面向对象)

利用函数,编写会员管理系统,实现进入系统显示系统功能界面,选择添加、删除、修改,查询、显示所有会员信息以及退出系统等响应功能。

有三步骤:

第一步:显示功能界面

第二步:用户输入功能序号--(第一步第二步整体,每一次选择功能都需要展示功能界面10分)

第三步:根据用户输入的功能序号,执行不同的功能,其中包括定义函数和调用函数。--(添加(30分)、删除(10分)、修改(20分),查询(10分)、显示所有会员信息(10分)以及退出系统(10分),总90分)

按要求踩点给分

具体要求如下:

第一步、第二步:显示功能界面,用户输入功能序号选择对应的功能

第三步具体功能如下:

1:定义实现添加会员功能函数(提示会员信息使用全局变量):

        (1)接受用户输入会员信息,并保存。

        (2)判断是否添加会员信息:如果会员姓名已经存在,则报错提示。如果会员姓名不存在,则准备空字典,将用户追加到字典,再用列表追加字典数据。(姓名做好敏感词校验,手机号做好位数和字母的校验)

        (3)输出会员的信息(重点如何抓取列表当中的字典元素?)

2:删除会员功能函数:删除会员要按用户输入的会员姓名进行删除。

         (1)用户输入会员的姓名

         (2)检查会员是否存在:如果存在,则删除这个会员信息;如果不存在,则提示用户不存在。

         (3)提示删除成功,输出剩下会员的信息

3:修改:输入用户的姓名进行修改。

         (1)用户输入会员的姓名

         (2)检查会员是否存在:如果存在,则修改这个会员信息,例如手机号;如果不存在,则提示报错未找到此会员。

         (3)提示修改会员的信息成功,把具体的会员信息输出

4:查询:输入用户的姓名进行查询。

         (1)用户输入会员的姓名

         (2)检查会员是否存在:如果存在,则提示这个会员信息;如果不存在,则提示报错查无此人。

5:显示所有会员信息:没有会员信息,提示会员列表为空;输出每次添加会员之后的信息。

6:退出系统:友好输出提示是否真的退出,选择yes or no,yes为退出系统,提示欢迎下次再来,no为继续进行功能的选择。

代码实现

members=[]
def show_menu():print("========== 会员管理系统功能界面 ==========")print("==========1. 添加会员==========")print("==========2. 删除会员==========")print("==========3. 修改会员信息==========")print("==========4. 查询会员信息==========")print("==========5. 显示所有会员信息==========")print("==========6. 退出系统==========")print("======================================")def add_member():print("添加会员信息")global memberswords = {"死": "*","笨": "*","坏": "*"}name = input("请输入用户名:")for char in name:if char in words:name = name.replace(char, words[char])print("该用户名含有敏感词,不可注册,重新输入")add_member()for member in members:if member['name'] == name:print("该会员已存在,请勿重复添加。")returnphone = input("请输入手机号:")if len(phone) != 11 or not phone.isdigit():print("手机号格式不对,请重新输入")add_member()members.append({"name": name, "phone": phone})print("会员信息添加成功")def delete_member():print("删除会员信息")name = input("请输入要删除的会员姓名: ")for member in members:if member['name'] == name:members.remove(member)print("会员删除成功!")returnprint("查无此人,无法删除。")def modify_member():print("修改会员信息")name = input("请输入要修改的会员姓名: ")for member in members:if member['name'] == name:new_phone = input("请输入新的手机号: ")if len(new_phone) != 11 or not new_phone.isdigit():print("手机号格式不正确,请重新输入。")returnmember['phone'] = new_phoneprint("会员信息修改成功!")returnprint("未找到此会员,无法修改。")def query_member():print("查询会员信息")name = input("请输入要查询的会员姓名: ")for member in members:if member['name'] == name:print("会员信息如下:")print("姓名:", member['name'])print("手机号:", member['phone'])returnprint("查无此人。")def show_members():print("显示会员信息")if not members:print("会员列表为空。")else:for i, member in enumerate(members):print(f"会员{i + 1}:")print("姓名:", member['name'])print("手机号:", member['phone'])def exit_system():choice = input("确定退出系统吗?(yes/no): ")if choice.lower() == 'yes':print("欢迎下次再来!")exit()elif choice.lower() == 'no':returnelse:print("输入有误,请重新选择。")def main():while True:show_menu()choice = input("请输入功能序号: ")if choice == '1':add_member()elif choice == '2':delete_member()elif choice == '3':modify_member()elif choice == '4':query_member()elif choice == '5':show_members()elif choice == '6':exit_system()else:print("输入有误,请重新输入。")if __name__ == "__main__":main()

添加会员编号

members = []def show_menu():print("========== 会员管理系统功能界面 ==========")print("==========1. 添加会员==========")print("==========2. 删除会员==========")print("==========3. 修改会员信息==========")print("==========4. 查询会员信息==========")print("==========5. 显示所有会员信息==========")print("==========6. 退出系统==========")print("======================================")def add_member():print("添加会员信息")global memberswords = {"死": "*","笨": "*","坏": "*"}id = input("请输入会员编号: ")name = input("请输入用户名: ")for char in name:if char in words:name = name.replace(char, words[char])print("该用户名含有敏感词,不可注册,重新输入")add_member()for member in members:if member['id'] == id:print("该会员编号已存在,请勿重复添加。")returnphone = input("请输入手机号: ")if len(phone) != 11 or not phone.isdigit():print("手机号格式不对,请重新输入")add_member()members.append({"id": id, "name": name, "phone": phone})print("会员信息添加成功")def delete_member():print("删除会员信息")id = input("请输入要删除的会员编号: ")for member in members:if member['id'] == id:members.remove(member)print("会员删除成功!")returnprint("查无此人,无法删除。")def modify_member():print("修改会员信息")id = input("请输入要修改的会员编号: ")for member in members:if member['id'] == id:new_phone = input("请输入新的手机号: ")if len(new_phone) != 11 or not new_phone.isdigit():print("手机号格式不正确,请重新输入。")returnmember['phone'] = new_phoneprint("会员信息修改成功!")returnprint("未找到此会员,无法修改。")def query_member():print("查询会员信息")id = input("请输入要查询的会员编号: ")for member in members:if member['id'] == id:print("会员信息如下:")print("会员编号:", member['id'])print("姓名:", member['name'])print("手机号:", member['phone'])returnprint("查无此人。")def show_members():print("显示会员信息")if not members:print("会员列表为空。")else:for member in members:print("会员编号:", member['id'])print("姓名:", member['name'])print("手机号:", member['phone'])def exit_system():choice = input("确定退出系统吗?(yes/no): ")if choice.lower() == 'yes':print("欢迎下次再来!")exit()elif choice.lower() == 'no':returnelse:print("输入有误,请重新选择。")def main():while True:show_menu()choice = input("请输入功能序号: ")if choice == '1':add_member()elif choice == '2':delete_member()elif choice == '3':modify_member()elif choice == '4':query_member()elif choice == '5':show_members()elif choice == '6':exit_system()else:print("输入有误,请重新输入。")if __name__ == "__main__":main()


http://www.ppmy.cn/news/1412379.html

相关文章

【13137】第一章 质量与质量管理导论

目录 1.单选题 2.多选题 3.简答题 【13137】质量管理-考试分析: 1.单选题

基于SpringBoot注入Bean形式的监听(端口)

起一个线程、监听对应的端口,注入到容器 package com.port.component;import com.port.service.PortListenerService; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.stereoty…

线性变换在人工智能领域的深度实践与应用探索

线性变换,作为数学中的一种基本工具,在人工智能领域中发挥着举足轻重的作用。其强大的表示能力和灵活的运算特性使得线性变换成为机器学习、深度学习等多个子领域的核心组成部分。本文将详细探讨线性变换在人工智能领域中的实践应用,旨在揭示…

【攻防世界】web2(逆向解密)

进入题目环境&#xff0c;查看页面信息&#xff1a; <?php $miwen"a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_ostrrev($str);// echo $_o;for($_00;$_0<strlen($_o);$_0){$_csubstr($_o,$_0,1);$__ord($_c)1;…

leetcode hot100中的经典背包问题

通过对比完全背包和01背包的leetcode hot100中几个小题目&#xff0c;明确应用场景&#xff0c;以及代码书写的遍历顺序。 完全背包问题 完全背包指的是每件物品可以重复被使用&#xff0c;放入背包中。 322. 零钱兑换 给你一个整数数组 coins &#xff0c;表示不同面额的硬币…

ctfshow web入门 文件上传web162--web167

web162 session文件包含条件竞争 直接包含不传马了 我们上传的文件如果不符合要求&#xff0c;就会被删除&#xff0c;导致成功上传无法访问&#xff0c;没有用。但是如果我们上传的速度比服务器删的速度快&#xff0c;就可以了。 上传.user.ini GIF89a auto_append_file/tmp/…

【leetcode面试经典150题】6.轮转数组(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

Mysql中将查询字段中间部分加密(CONCAT函数和SUBSTRING函数)

场景&#xff1a; 我想将openid字段和order_no字段前后保留4个字符&#xff0c;中间部分无论多长都用“******”进行替换掉&#xff0c;我应该怎么写sql&#xff1f; 示例&#xff1a; SELECT CONCAT(SUBSTRING(openid, 1, 4), ******, SUBSTRING(openid, LENGTH(openid) - …