用phython写一个网吧管理系统

时间: 2024-01-02 10:02:15 浏览: 27
好的,这是一个简单的网吧管理系统,它可以用来管理网吧的会员和机器使用情况。这个系统使用了 Python 的面向对象编程思想,将会员和机器都看作是对象,并使用类来实现它们的属性和方法。 ```python class Member: def __init__(self, name, id): self.name = name self.id = id self.balance = 0 def deposit(self, amount): self.balance += amount def withdraw(self, amount): if self.balance < amount: print("余额不足!") else: self.balance -= amount def display_balance(self): print(f"{self.name}的余额是{self.balance}元") class Machine: def __init__(self, id): self.id = id self.is_busy = False self.member = None def login(self, member): if self.is_busy: print("机器正在使用中!") else: self.member = member self.is_busy = True def logout(self): self.member = None self.is_busy = False def display_status(self): if self.is_busy: print(f"机器{self.id}正在被{self.member.name}使用!") else: print(f"机器{self.id}空闲中!") class InternetCafe: def __init__(self, name): self.name = name self.members = [] self.machines = [] def add_member(self, member): self.members.append(member) def add_machine(self, machine): self.machines.append(machine) def find_member_by_id(self, id): for member in self.members: if member.id == id: return member return None def find_machine_by_id(self, id): for machine in self.machines: if machine.id == id: return machine return None def display_members(self): print("会员列表:") for member in self.members: print(f"编号:{member.id},姓名:{member.name},余额:{member.balance}元") def display_machines(self): print("机器列表:") for machine in self.machines: machine.display_status() def run(self): while True: print("=" * 30) print("欢迎使用网吧管理系统!") print("1.新增会员") print("2.充值会员余额") print("3.显示会员列表") print("4.添加机器") print("5.机器登录") print("6.机器登出") print("7.显示机器列表") print("0.退出系统") choice = input("请输入选项:") print("=" * 30) if choice == "1": name = input("请输入会员姓名:") id = input("请输入会员编号:") member = Member(name, id) self.add_member(member) print("会员添加成功!") elif choice == "2": id = input("请输入会员编号:") member = self.find_member_by_id(id) if member is None: print("会员不存在!") else: amount = int(input("请输入充值金额:")) member.deposit(amount) member.display_balance() elif choice == "3": self.display_members() elif choice == "4": id = input("请输入机器编号:") machine = Machine(id) self.add_machine(machine) print("机器添加成功!") elif choice == "5": id = input("请输入机器编号:") member_id = input("请输入会员编号:") machine = self.find_machine_by_id(id) if machine is None: print("机器不存在!") else: member = self.find_member_by_id(member_id) if member is None: print("会员不存在!") else: machine.login(member) machine.display_status() elif choice == "6": id = input("请输入机器编号:") machine = self.find_machine_by_id(id) if machine is None: print("机器不存在!") else: machine.logout() machine.display_status() elif choice == "7": self.display_machines() elif choice == "0": print("谢谢使用,再见!") break else: print("无效选项,请重新选择!") ``` 这个系统有三个类,分别是 Member、Machine 和 InternetCafe。Member 类表示会员,包含姓名、编号和余额三个属性,以及 deposit、withdraw 和 display_balance 三个方法;Machine 类表示机器,包含编号、是否正在使用和当前使用的会员三个属性,以及 login、logout 和 display_status 三个方法;InternetCafe 类表示网吧,包含名称、会员列表和机器列表三个属性,以及 add_member、add_machine、find_member_by_id、find_machine_by_id、display_members、display_machines 和 run 七个方法。 在 run 方法中,我们使用一个 while 循环来不断地显示菜单,根据用户的选择来执行不同的操作。用户可以新增会员、充值会员余额、显示会员列表、添加机器、机器登录、机器登出和显示机器列表。当用户选择退出系统时,程序会退出循环并结束。 这个系统还有很多可以改进的地方,比如可以将会员和机器的数据存储到文件中,或者使用 GUI 来实现更友好的界面。但是,这个简单的网吧管理系统已经可以满足基本的需求了。

相关推荐

最新推荐

recommend-type

使用Python实现 学生学籍管理系统

主要介绍了使用Python实现 学生学籍管理系统,代码大致分为五个函数组成,具体内容详情本文给大家介绍的非常详细,需要的朋友可以参考下
recommend-type

使用Python写一个量化股票提醒系统

主要介绍了小白用Python写了一个股票提醒系统,迷你版量化系统,完美的实现了实时提醒功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
recommend-type

python学生信息管理系统实现代码

主要介绍了python学生信息管理系统的实现代码,代码简单,复制即可使用,需要的朋友可以参考下
recommend-type

python实现超市商品销售管理系统

主要为大家详细介绍了python实现超市商品销售管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

python+mysql实现个人论文管理系统

主要为大家详细介绍了python+mysql实现个人论文管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

spring添加xml配置文件

1. 创建一个新的Spring配置文件,例如"applicationContext.xml"。 2. 在文件头部添加XML命名空间和schema定义,如下所示: ``` <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。