Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста решить задачу на JAVA

Николай Ученик (91), на голосовании 11 месяцев назад
Спортивный календарь.
Условие. Необходимо разработать программу, которая будет вести календарь спортивных событий.
Требования:
1. Пользователь должен иметь возможность добавлять новые спортивные события в программу. Каждое событие должно содержать следующую информацию:
- Название спортивного события
- Дата и время начала события
2. Пользователь должен иметь возможность удалять спортивные события по их названию.
3. Пользователь должен иметь возможность получить расписание спортивных событий на определенную дату. Программа должна выводить все события, которые происходят в указанную дату, отсортированные по времени начала.
Голосование за лучший ответ
Пророк Памперс (ПП) Профи (869) 1 год назад
import java.util.*;

// Класс, представляющий спортивное событие
class SportsEvent {
private String eventName;
private Date eventDateTime;

public SportsEvent(String eventName, Date eventDateTime) {
this.eventName = eventName;
this.eventDateTime = eventDateTime;
}

public String getEventName() {
return eventName;
}

public Date getEventDateTime() {
return eventDateTime;
}
}

// Класс, управляющий календарем спортивных событий
class SportsCalendar {
private Map<String, List<SportsEvent>> eventsByDate;

public SportsCalendar() {
eventsByDate = new HashMap<>();
}

// Метод для добавления нового спортивного события
public void addEvent(String date, SportsEvent event) {
List<SportsEvent> events = eventsByDate.getOrDefault(date, new ArrayList<>());
events.add(event);
events.sort(Comparator.comparing(SportsEvent::getEventDateTime));
eventsByDate.put(date, events);
}

// Метод для удаления спортивного события по названию
public void removeEvent(String eventName) {
for (List<SportsEvent> events : eventsByDate.values()) {
events.removeIf(event -> event.getEventName().equals(eventName));
}
}

// Метод для получения расписания спортивных событий на определенную дату
public void getEventsForDate(String date) {
List<SportsEvent> events = eventsByDate.get(date);
if (events == null || events.isEmpty()) {
System.out.println("На эту дату нет спортивных событий.");
} else {
System.out.println("Спортивные события на " + date + ":");
for (SportsEvent event : events) {
System.out.println(event.getEventName() + " - " + event.getEventDateTime());
}
}
}
}

public class Main {
public static void main(String[] args) {
SportsCalendar calendar = new SportsCalendar();

// Пример добавления спортивных событий
SportsEvent event1 = new SportsEvent("Футбол", new Date());
SportsEvent event2 = new SportsEvent("Баскетбол", new Date());
calendar.addEvent("2023-11-20", event1);
calendar.addEvent("2023-11-20", event2);

// Пример удаления спортивного события
calendar.removeEvent("Баскетбол");

// Пример получения расписания на определенную дату
calendar.getEventsForDate("2023-11-20");
}
}
Похожие вопросы