// Регистрация клиентов static void RegistrationClients() { try { Clear(); if (hostel == null) { WriteLine("Отель не создан!"); ReadLine(); Clear(); Menu(); } Write("Введите имя: "); string name = ReadLine(); Write("Введите фамилию: "); string surname = ReadLine(); Write("Введите отчество: "); string lastName = ReadLine(); restart: Write("Полных лет: "); int age = ToInt32(ReadLine()); if (age < 18) { WriteLine("Клиенту меньше 18. Попробуйте снова."); goto restart; } Write("Дата рождения: "); DateTime dB = ToDateTime(ReadLine()); int temp = DateTime.Now.Year - dB.Year; if (temp != age) { WriteLine("Год рождения не совпадает с датой. Попробуйте снова."); goto restart; } Write("Введите адрес проживания: "); string address = ReadLine(); restart2: WriteLine("Пол: Ж, М?"); char sex = ToChar(ReadLine()); if (sex != 1046 && sex != 1052 && sex != 1078 && sex != 1084) { Write("Некорректно введён пол. Попробуйте снова."); goto restart2; } restart3: Write("Введите дату заезда: "); DateTime dStayInHotel1 = ToDateTime(ReadLine()); Write("Введите дату выезда: "); DateTime dStayInHotel2 = ToDateTime(ReadLine()); if (DateTime.Now.Year > dStayInHotel1.Year && DateTime.Now.Year < dStayInHotel1.Year || DateTime.Now.Year > dStayInHotel2.Year && DateTime.Now.Year < dStayInHotel2.Year || dStayInHotel1 > dStayInHotel2) { WriteLine("Введена некорректная дата заезда или выезда. Попробуйте снова."); goto restart3; } if (dStayInHotel2.Day - dStayInHotel2.Day > 20) { WriteLine("Нельзя останавливаться в отеле более чем на 20 дней. Попробуйте снова."); goto restart3; } if (name != null && surname != null && lastName != null && address != null) { if (CountClients != 100) { restart5: Clear(); WriteLine("------------Типы номеров------------"); WriteLine("1. Standart;"); WriteLine("2. Economy;"); WriteLine("3. JuniorSuite;"); WriteLine("4. Luxe."); WriteLine("В какой хотите поселиться?"); int tt = ToInt32(ReadLine()); RoomCathegories roomCathegories = RoomCathegories.Standart; double salary = 0; switch (tt) { case 1: roomCathegories = RoomCathegories.Standart; salary = hostel.RoomRate(dStayInHotel1, dStayInHotel2); break; case 2: roomCathegories = RoomCathegories.Economy; salary = hostel.RoomRate(dStayInHotel1, dStayInHotel2) - 800; break; case 3: roomCathegories = RoomCathegories.JuniorSuite; salary = hostel.RoomRate(dStayInHotel1, dStayInHotel2) + 1200; break; case 4: roomCathegories = RoomCathegories.Luxe; salary = hostel.RoomRate(dStayInHotel1, dStayInHotel2) + 2500; break; default: WriteLine("Неверный пункт. Попробуйте снова."); ReadLine(); goto restart5; } CountClients++; Clients client = new Clients(name, surname, lastName, age, dB, sex, address, salary, roomCathegories); WriteLine("Клиент успешно добавлен!"); restart4: Clear(); WriteLine("Забронируйте номер."); hostel.OutputInHotel(); Write("Какой номер выберите: "); int numberRoom = ToInt32(ReadLine()); Write("Этаж: "); int floor = ToInt32(ReadLine()); if (floor <= 4 || numberRoom <= 25) { if (roomCathegories == RoomCathegories.Standart && floor != 1) { WriteLine("1 этаж - Standart. Попробуйте снова."); ReadLine(); Clear(); goto restart4; } if (roomCathegories == RoomCathegories.Economy && floor != 2) { WriteLine("2 этаж - Economy. Попробуйте снова."); ReadLine(); Clear(); goto restart4; } if (roomCathegories == RoomCathegories.JuniorSuite && floor != 3) { WriteLine("3 этаж - JuniorSuite(Полулюкс). Попробуйте снова."); ReadLine(); Clear(); goto restart4; } if (roomCathegories == RoomCathegories.Luxe && floor != 4) { WriteLine("4 этаж - Luxe. Попробуйте снова."); ReadLine(); Clear(); goto restart4; } if (client.ReservationRoom(floor, numberRoom) == false) { goto restart4; } else { WriteLine("Номер забронирован!"); } } else { WriteLine("Такого номера и этажа нет."); goto restart4; } using (StreamWriter sw = new StreamWriter("clients.txt", true)) { string[] tmp = { " Номер клиента: " + CountClients + Environment.NewLine + '{' + Environment.NewLine + " Имя: " + name + Environment.NewLine + " Фамилия: " + surname + Environment.NewLine + " Отчество: " + lastName + Environment.NewLine + " Возраст: " + age.ToString() + Environment.NewLine + " Дата рождения: " + dB.ToShortDateString() + Environment.NewLine + " Адрес проживания: " + address + Environment.NewLine + " Пол: " + sex.ToString() + Environment.NewLine + " Дата заезда: " + dStayInHotel1.ToShortDateString() + Environment.NewLine + " Дата выезда: " + dStayInHotel2.ToShortDateString() + Environment.NewLine + " Этаж: " + floor + Environment.NewLine + " Номер: " + numberRoom + Environment.NewLine + " Стоимость номера: " + salary + Environment.NewLine + " Тип номера: " + roomCathegories.ToString() + Environment.NewLine + '}' }; foreach (string t in tmp) { sw.WriteLine(t); } sw.Close(); } ReadLine(); Clear(); WriteLine("Какие действия будут дальше?"); WriteLine("1. Продолжить заполнение клиентов;"); WriteLine("2. Вернуться в меню."); char n = ToChar(ReadLine()); switch (n) { case '1': Clear(); RegistrationClients(); break; case '2': Clear(); Menu(); break; default: WriteLine("Неверный пункт меню. Попробуйте снова."); ReadLine(); Clear(); Menu(); break; } } else { WriteLine("Отель заполнен!"); ReadLine(); Clear(); Menu(); } } else { WriteLine("Поля не могут быть пустыми. Попробуйте снова."); ReadLine(); RegistrationClients(); } } catch (Exception e) { WriteLine(e.Message); ReadLine(); Clear(); Menu(); } }
public Clients(string Name, string Surname, string LastName, int Age, DateTime dB, char Sex, string Address, double salary, RoomCathegories roomCathegories) { this.Name = Name; this.Surname = Surname; this.LastName = LastName; this.Age = Age; this.DateBithday = dB; this.Sex = Sex; this.Address = Address; this.SalaryRoom = salary; this.RoomCathegories = roomCathegories; }