用python编写一个体育馆预约管理系统
时间: 2023-08-26 09:07:18 浏览: 42
好的,下面是一个简单的体育馆预约管理系统的示例代码,使用Python实现:
```python
import datetime
class Gym:
def __init__(self):
self.schedule = {}
def add_reservation(self, date, time, name):
if date not in self.schedule:
self.schedule[date] = {}
if time not in self.schedule[date]:
self.schedule[date][time] = []
self.schedule[date][time].append(name)
def remove_reservation(self, date, time, name):
if date in self.schedule and time in self.schedule[date] and name in self.schedule[date][time]:
self.schedule[date][time].remove(name)
if not self.schedule[date][time]:
del self.schedule[date][time]
if not self.schedule[date]:
del self.schedule[date]
return True
else:
return False
def get_schedule(self, date):
if date in self.schedule:
return self.schedule[date]
else:
return {}
def print_schedule(self, date):
schedule = self.get_schedule(date)
if not schedule:
print("No reservations for this date.")
else:
print("Reservations for", date)
for time in sorted(schedule):
print(time, ":", ", ".join(schedule[time]))
def is_available(self, date, time):
if date not in self.schedule or time not in self.schedule[date]:
return True
else:
return False
def get_available_times(self, date):
available_times = []
for i in range(8, 22):
time = str(i) + ":00"
if self.is_available(date, time):
available_times.append(time)
return available_times
gym = Gym()
while True:
print("\nGym Reservation System")
print("1. Add Reservation")
print("2. Remove Reservation")
print("3. View Schedule")
print("4. View Available Times")
print("5. Quit")
choice = input("Enter choice (1-5): ")
if choice == "1":
name = input("Enter name: ")
date_str = input("Enter date (MM/DD/YYYY): ")
time_str = input("Enter time (HH:MM): ")
try:
date = datetime.datetime.strptime(date_str, "%m/%d/%Y").date()
time = datetime.datetime.strptime(time_str, "%H:%M").time().strftime("%H:%M")
if gym.is_available(date, time):
gym.add_reservation(date, time, name)
print("Reservation added.")
else:
print("This time slot is not available.")
except ValueError:
print("Invalid date or time format.")
elif choice == "2":
name = input("Enter name: ")
date_str = input("Enter date (MM/DD/YYYY): ")
time_str = input("Enter time (HH:MM): ")
try:
date = datetime.datetime.strptime(date_str, "%m/%d/%Y").date()
time = datetime.datetime.strptime(time_str, "%H:%M").time().strftime("%H:%M")
if gym.remove_reservation(date, time, name):
print("Reservation removed.")
else:
print("No reservation found.")
except ValueError:
print("Invalid date or time format.")
elif choice == "3":
date_str = input("Enter date (MM/DD/YYYY): ")
try:
date = datetime.datetime.strptime(date_str, "%m/%d/%Y").date()
gym.print_schedule(date)
except ValueError:
print("Invalid date format.")
elif choice == "4":
date_str = input("Enter date (MM/DD/YYYY): ")
try:
date = datetime.datetime.strptime(date_str, "%m/%d/%Y").date()
available_times = gym.get_available_times(date)
if not available_times:
print("No available times for this date.")
else:
print("Available times for", date, ":", ", ".join(available_times))
except ValueError:
print("Invalid date format.")
elif choice == "5":
print("Exiting program.")
break
else:
print("Invalid choice. Try again.")
```
这个程序使用了一个简单的类来表示体育馆,其中包含了添加、删除、查看预约等功能。用户可以根据菜单选择进行操作。请注意,这只是一个简单的示例,实际的体育馆预约管理系统可能需要更复杂的功能和界面。