namespace ConsoleApp1 { class Program { public static Katalog katalog = new Katalog(); static void Main(string[] args) { katalog.SeedDefaultSeans(); while (true) { Console.Clear(); Console.WriteLine("Wybierz opcję:"); Console.WriteLine("1. Dodaj nowy seans"); Console.WriteLine("2. Wyświetl wszystkie seanse"); Console.WriteLine("3. Rezerwuj miejsce"); Console.WriteLine("4. Wyjście"); Console.Write("Wybór: "); string wybor = Console.ReadLine(); switch (wybor) { case "1": DodajSeans(); break; case "2": WyswietlSeanse(); break; case "3": RezerwujMiejsce(); break; case "4": return; default: Console.WriteLine("Nieprawidłowy wybór, spróbuj ponownie."); break; } } } // Funkcja do dodania nowego seansu private static void DodajSeans() { Console.Clear(); Console.WriteLine("Dodaj nowy seans:"); // Pobranie danych od użytkownika Console.Write("Podaj tytuł filmu: "); string tytul = Console.ReadLine(); Console.Write("Podaj datę seansu (yyyy-MM-dd): "); DateTime data = DateTime.Parse(Console.ReadLine()); Console.Write("Podaj godzinę seansu (HH:mm): "); DateTime godzina = DateTime.ParseExact(Console.ReadLine(), "HH:mm", null); // Ustalanie liczby miejsc Console.Write("Ile miejsc ma sala? "); int liczbaMiejsc = int.Parse(Console.ReadLine()); // Tworzenie nowego seansu Seans nowySeans = new Seans(tytul, data, godzina, liczbaMiejsc); katalog.Add(nowySeans); Console.WriteLine("Seans został dodany."); Console.WriteLine("Naciśnij dowolny klawisz, aby wrócić do menu."); Console.ReadKey(); } // Funkcja do wyświetlania wszystkich seansów private static void WyswietlSeanse() { Console.Clear(); Console.WriteLine("Wszystkie dostępne seanse:"); if (katalog.Seanse.Count == 0) { Console.WriteLine("Brak seansów w katalogu."); } else { foreach (var show in katalog.Seanse) { Console.WriteLine($"{show.Tytul} - {show.DataSeansu.ToShortDateString()} {show.GodzinaSeansu.ToShortTimeString()}"); Console.WriteLine("Miejsca:"); foreach (var miejsce in show.Miejsca) { string status = miejsce.CzyRezerwacja ? "Zajęte" : "Wolne"; Console.WriteLine($"Miejsce {miejsce.Id}, Rząd {miejsce.Rzad}: {status}"); } Console.WriteLine(); } } Console.WriteLine("Naciśnij dowolny klawisz, aby wrócić do menu."); Console.ReadKey(); } // Funkcja do rezerwowania miejsca private static void RezerwujMiejsce() { Console.Clear(); WyswietlSeanse(); Console.WriteLine("Wybierz seans do rezerwacji:"); int numerSeansu = int.Parse(Console.ReadLine()) - 1; if (numerSeansu < 0 || numerSeansu >= katalog.Seanse.Count) { Console.WriteLine("Nieprawidłowy numer seansu."); Console.WriteLine("Naciśnij dowolny klawisz, aby wrócić do menu."); Console.ReadKey(); return; } Seans seans = katalog.Seanse[numerSeansu]; Console.WriteLine("Wybierz miejsce do rezerwacji (numer miejsca):"); int numerMiejsca = int.Parse(Console.ReadLine()); Miejsce miejsce = seans.Miejsca.FirstOrDefault(m => m.Id == numerMiejsca); if (miejsce == null) { Console.WriteLine("Nie ma takiego miejsca w tym seansie."); Console.WriteLine("Naciśnij dowolny klawisz, aby wrócić do menu."); Console.ReadKey(); return; } if (miejsce.CzyRezerwacja) { Console.WriteLine("To miejsce jest już zajęte."); } else { // Rezerwacja miejsca miejsce.Rezerwuj(); Console.Write("Podaj imię: "); string imie = Console.ReadLine(); Console.Write("Podaj nazwisko: "); string nazwisko = Console.ReadLine(); Rezerwacja rezerwacja = new Rezerwacja { Id = new Random().Next(1000, 9999), // generowanie ID dla rezerwacji WidocznyTytul = seans.Tytul, GodzinaRezerwacji = DateTime.Now, IdMiejsca = miejsce.Id, Imie = imie, Nazwisko = nazwisko }; Console.WriteLine($"Rezerwacja miejsca {miejsce.Id} na film {seans.Tytul} została dokonana."); } Console.WriteLine("Naciśnij dowolny klawisz, aby wrócić do menu."); Console.ReadKey(); } } }