用phython写一个网吧管理系统
时间: 2024-01-02 21:02:15 浏览: 97
好的,这是一个简单的网吧管理系统,它可以用来管理网吧的会员和机器使用情况。这个系统使用了 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 来实现更友好的界面。但是,这个简单的网吧管理系统已经可以满足基本的需求了。
阅读全文