Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Linq;
- namespace homework
- {
- class Program
- {
- static int InputInt(int minValue, int maxValue)
- {
- int number = 0;
- bool success = false;
- while (!success)
- {
- success = int.TryParse(Console.ReadLine(), out number);
- if (!success)
- {
- Console.BackgroundColor = ConsoleColor.Red;
- Console.ForegroundColor = ConsoleColor.White;
- Console.WriteLine("Введено не число. Повторите попытку");
- Console.ResetColor();
- }
- else if (number <= 0 || number > maxValue)
- {
- success = false;
- Console.BackgroundColor = ConsoleColor.Red;
- Console.ForegroundColor = ConsoleColor.White;
- Console.WriteLine("Введено недопустимое число!");
- Console.ResetColor();
- }
- }
- return number;
- }
- static void AllocateRoom(string[] HotelRoom, ref int[] bookedRoom, int[] standartHotelRoom, int numberBooked)
- {
- Console.CursorVisible = true;
- PrintAllRoom(HotelRoom, bookedRoom, standartHotelRoom);
- Console.WriteLine("Введите номер комнаты: ");
- int number = InputInt(0, HotelRoom.Length)-1;
- Console.Clear();
- if (bookedRoom[number] == 1 || bookedRoom[number] == 2)
- {
- Console.BackgroundColor = ConsoleColor.Red;
- Console.ForegroundColor = ConsoleColor.White;
- Console.Write("Невозможно выбрать этот номер!");
- Console.ResetColor();
- Console.ReadKey();
- return;
- }
- PrintAllRoom(HotelRoom[number], bookedRoom[number], standartHotelRoom[number]);
- Console.WriteLine("Введите количество посетителей: ");
- int countMan = InputInt(0, standartHotelRoom[number]);
- bookedRoom[number] = numberBooked;
- Console.CursorVisible = false;
- if (numberBooked == 2) Console.WriteLine("Успешно! Номер забронирован.\nДля выхода нажмите клавишу...");
- else if (numberBooked == 1) Console.WriteLine("Успешно! Номер занят.\nДля выхода нажмите клавишу...");
- Console.ReadKey();
- }
- static void PrintAllRoom(string[] room, int[] bookedRoom, int[] standartHotelRoom)
- {
- Console.Clear();
- if (room.Length <= 0)
- {
- Console.WriteLine("Комнат не обнаружено.\nВведите данные про номара.\nНажмите клавишу для продолжения...");
- Console.ReadKey();
- return;
- }
- for (int i=0; i<room.Length;i++)
- {
- Console.WriteLine(" Комната №"+(i+1));
- Console.WriteLine("\t"+room[i]);
- if (bookedRoom[i] == 0)
- Console.WriteLine("\tВ комнате доступно мест: " + standartHotelRoom[i]);
- else if (bookedRoom[i] == 1)
- Console.WriteLine("\tКомната занята");
- else if (bookedRoom[i] == 2)
- Console.WriteLine("\tКомната забронирована");
- Console.WriteLine("-----------------------------------");
- }
- Console.WriteLine("Для подолжения нажмите клавишу...");
- Console.ReadKey();
- }
- static void PrintAllRoom(string room, int bookedRoom, int standartHotelRoom)
- {
- Console.WriteLine(" Комната:");
- Console.WriteLine("\t" + room);
- if (bookedRoom == 0)
- Console.WriteLine("\tВ комнате доступно мест: " + standartHotelRoom);
- Console.WriteLine("-----------------------------------");
- }
- static void AddNewRoom(ref string[] HotelRoom, ref int[] bookedRoom, ref int[] standartHotelRoom)
- {
- Console.CursorVisible = true;
- Console.Clear();
- string[] copyRoom = new string[HotelRoom.Length + 1];
- int[] copyBooked = new int[HotelRoom.Length + 1],
- copyStandart = new int[HotelRoom.Length + 1];
- for (int i = 0; i < HotelRoom.Length; i++) copyRoom[i] = HotelRoom[i];
- for (int i = 0; i < bookedRoom.Length; i++) copyBooked[i] = bookedRoom[i];
- for (int i = 0; i < standartHotelRoom.Length; i++) copyStandart[i] = standartHotelRoom[i];
- Console.WriteLine("Введите название. К примеру: \"Номер с видом на море\"");
- copyRoom[copyRoom.Length - 1] = Console.ReadLine();
- Console.Write("Введите количество доступных мест:");
- copyStandart[copyStandart.Length - 1] = InputInt(0, int.MaxValue);
- copyBooked[copyBooked.Length - 1] = 0;
- HotelRoom = copyRoom;
- bookedRoom = copyBooked;
- standartHotelRoom = copyStandart;
- }
- static void ReallocateNewRoom(ref string[] HotelRoom, ref int[] bookedRoom, ref int[] standartHotelRoom)
- {
- Console.CursorVisible = true;
- PrintAllRoom(HotelRoom, bookedRoom, standartHotelRoom);
- Console.WriteLine("Введите номер комнаты: ");
- int number = InputInt(0, HotelRoom.Length)-1;
- bookedRoom[number] = 0;
- Console.WriteLine("Успешно! Нажмите клавишу для продолжения...");
- Console.ReadKey();
- }
- static void RemoveRoom(ref string[] HotelRoom, ref int[] bookedRoom, ref int[] standartHotelRoom)
- {
- Console.CursorVisible = true;
- Console.Clear();
- string[] copyRoom = new string[HotelRoom.Length - 1];
- int[] copyBooked = new int[HotelRoom.Length - 1],
- copyStandart = new int[HotelRoom.Length - 1];
- PrintAllRoom(HotelRoom, bookedRoom, standartHotelRoom);
- Console.WriteLine("Введите номер комнаты: ");
- int numberRoom = InputInt(0, HotelRoom.Length)-1;
- for (int i =0, j = 0; i< copyRoom.Length;i++, j++)
- {
- if (i < HotelRoom.Length - 1)
- {
- if (numberRoom - 1 == i) i++;
- copyRoom[j] = HotelRoom[i];
- copyBooked[j] = bookedRoom[i];
- copyStandart[j] = standartHotelRoom[i];
- }
- }
- HotelRoom = copyRoom;
- bookedRoom = copyBooked;
- standartHotelRoom = copyStandart;
- Console.WriteLine("Упешно! Комната удалена. Нажмите клавишу для продолжения.");
- Console.ReadKey();
- }
- static void Main(string[] args)
- {
- int[] standartHotelRoom = {2, 4,6 };
- string[] HotelRoom = {"С видом на море", "С видом на помойку", "С видом в город"};
- int[] bookedRoom = {0, 1, 2 }; // 0 - свободно, 1 - занято, 2 - забронировано
- string nameApplication = "Hôtel Plaza Athénée";
- string[] menu = {
- "Забронировать номер",
- "Размещение посетителей",
- "Снять бронь с номера",
- "Список номеров",
- "Добавить номер",
- "Удалить номер",
- "Выход" };
- while (true)
- {
- Console.Clear();
- Console.WriteLine(nameApplication);
- for (int i = 0; i < menu.Length; i++)
- {
- Console.WriteLine(" "+menu[i]);
- }
- int selectCommand = 0;
- ConsoleKeyInfo charKey;
- bool selectMenuCommand = false;
- Console.CursorVisible = false;
- Console.SetCursorPosition(1, 1 + selectCommand);
- Console.Write(" >");
- while (!selectMenuCommand)
- {
- charKey = Console.ReadKey();
- switch (charKey.Key)
- {
- case ConsoleKey.UpArrow:
- Console.SetCursorPosition(1, 1 + selectCommand);
- Console.Write(" ");
- selectCommand--;
- if (selectCommand < 0) selectCommand = 6;
- Console.SetCursorPosition(1, 1 + selectCommand);
- Console.Write(" >");
- break;
- case ConsoleKey.DownArrow:
- Console.SetCursorPosition(1, 1 + selectCommand);
- Console.Write(" ");
- selectCommand++;
- if (selectCommand >= menu.Length) selectCommand = 0;
- Console.SetCursorPosition(1, 1 + selectCommand);
- Console.Write(" >");
- break;
- case ConsoleKey.Enter:
- selectMenuCommand = true;
- break;
- }
- }
- switch (selectCommand)
- {
- case 0:
- AllocateRoom(HotelRoom, ref bookedRoom, standartHotelRoom, 2);
- break;
- case 1:
- AllocateRoom(HotelRoom, ref bookedRoom, standartHotelRoom, 1);
- break;
- case 2:
- ReallocateNewRoom(ref HotelRoom, ref bookedRoom, ref standartHotelRoom);
- break;
- case 3:
- PrintAllRoom(HotelRoom,bookedRoom,standartHotelRoom);
- break;
- case 4:
- AddNewRoom(ref HotelRoom, ref bookedRoom, ref standartHotelRoom);
- break;
- case 5:
- RemoveRoom(ref HotelRoom, ref bookedRoom, ref standartHotelRoom);
- break;
- case 6:
- Console.SetCursorPosition(0, 8);
- return;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement