Автосервис
Создайте программу записи на техническое обслуживание. Программа должна позволять клиентам записываться на свободное время, отменять запись, следить, чтобы клиенты не пересекались. Программа должна быть выполнена без визуального интерфейса
напиши код python
python
from datetime import datetime, timedelta
class Client:
def __init__(self, name):
self.name = name
self.appointments = [] # Записи клиента
def add_appointment(self, appointment):
self.appointments.append(appointment)
def cancel_appointment(self, appointment):
self.appointments.remove(appointment)
class Appointment:
def __init__(self, client, time):
self.client = client
self.time = time
class CarService:
def __init__(self):
self.appointments = [] # Записи на техническое обслуживание
def add_appointment(self, appointment):
self.appointments.append(appointment)
def remove_appointment(self, appointment):
self.appointments.remove(appointment)
def check_availability(self, time):
for appointment in self.appointments:
if time == appointment.time:
return False
return True
def get_appointments(self):
return self.appointments
# Создаем сервис
service = CarService()
# Создаем клиентов
client1 = Client("Иванов")
client2 = Client("Петров")
# Создаем записи на техническое обслуживание
appointment1 = Appointment(client1, datetime.now() + timedelta(days=1))
appointment2 = Appointment(client2, datetime.now() + timedelta(days=2))
# Добавляем записи в сервис
if service.check_availability(appointment1.time):
service.add_appointment(appointment1)
else:
print("Время занято")
if service.check_availability(appointment2.time):
service.add_appointment(appointment2)
else:
print("Время занято")
# Проверяем записи в сервисе
appointments = service.get_appointments()
for appointment in appointments:
print(appointment.client.name, appointment.time)
# Удаляем запись из сервиса
service.remove_appointment(appointment1)
# Проверяем записи после удаления
appointments = service.get_appointments()
for appointment in appointments:
print(appointment.client.name, appointment.time)
В этом коде мы сначала создаем классы `Client`, `Appointment` и `CarService`, которые представляют клиентов, записи на техническое обслуживание и сам автосервис соответственно. В каждом из классов определены методы для добавления и удаления записей, а также проверки доступности времени.
Далее мы создаем экземпляры классов `Client`, `Appointment` и `CarService` и добавляем записи на техническое обслуживание в сервис. Затем проверяем записи и удаляем одну из них, после чего снова проверяем записи.
Таким образом, данный код позволяет создавать записи на техническое обслуживание, проверять доступность времени и отменять записи при необходимости. Этот код является примером и может быть доработан под конкретные требования и особенности автосервиса.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет