Advertisement
dxoraxs

Untitled

Apr 21st, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.99 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4.  
  5. namespace homework
  6. {
  7.     class Program
  8.     {
  9.         static int InputInt(int minValue, int maxValue)
  10.         {
  11.             int number = 0;
  12.             bool success = false;
  13.             while (!success)
  14.             {
  15.                 success = int.TryParse(Console.ReadLine(), out number);
  16.                 if (!success)
  17.                 {
  18.                     Console.BackgroundColor = ConsoleColor.Red;
  19.                     Console.ForegroundColor = ConsoleColor.White;
  20.                     Console.WriteLine("Введено не число. Повторите попытку");
  21.                     Console.ResetColor();
  22.                 }
  23.                 else if (number <= 0 || number > maxValue)
  24.                 {
  25.                     success = false;
  26.                     Console.BackgroundColor = ConsoleColor.Red;
  27.                     Console.ForegroundColor = ConsoleColor.White;
  28.                     Console.WriteLine("Введено недопустимое число!");
  29.                     Console.ResetColor();
  30.                 }
  31.             }
  32.             return number;
  33.         }
  34.  
  35.         static void AllocateRoom(string[] HotelRoom, ref int[] bookedRoom, int[] standartHotelRoom, int numberBooked)
  36.         {
  37.             Console.CursorVisible = true;
  38.             PrintAllRoom(HotelRoom, bookedRoom, standartHotelRoom);
  39.             Console.WriteLine("Введите номер комнаты: ");
  40.             int number = InputInt(0, HotelRoom.Length)-1;
  41.             Console.Clear();
  42.             if (bookedRoom[number] == 1 || bookedRoom[number] == 2)
  43.             {
  44.                 Console.BackgroundColor = ConsoleColor.Red;
  45.                 Console.ForegroundColor = ConsoleColor.White;
  46.                 Console.Write("Невозможно выбрать этот номер!");
  47.                 Console.ResetColor();
  48.                 Console.ReadKey();
  49.                 return;
  50.             }
  51.             PrintAllRoom(HotelRoom[number], bookedRoom[number], standartHotelRoom[number]);
  52.             Console.WriteLine("Введите количество посетителей: ");
  53.             int countMan = InputInt(0, standartHotelRoom[number]);
  54.             bookedRoom[number] = numberBooked;
  55.             Console.CursorVisible = false;
  56.             if (numberBooked == 2) Console.WriteLine("Успешно! Номер забронирован.\nДля выхода нажмите клавишу...");
  57.             else if (numberBooked == 1) Console.WriteLine("Успешно! Номер занят.\nДля выхода нажмите клавишу...");
  58.             Console.ReadKey();
  59.         }
  60.  
  61.         static void PrintAllRoom(string[] room, int[] bookedRoom, int[] standartHotelRoom)
  62.         {
  63.             Console.Clear();
  64.             if (room.Length <= 0)
  65.             {
  66.                 Console.WriteLine("Комнат не обнаружено.\nВведите данные про номара.\nНажмите клавишу для продолжения...");
  67.                 Console.ReadKey();
  68.                 return;
  69.             }
  70.             for (int i=0; i<room.Length;i++)
  71.             {
  72.                 Console.WriteLine("  Комната №"+(i+1));
  73.                 Console.WriteLine("\t"+room[i]);
  74.                 if (bookedRoom[i] == 0)
  75.                     Console.WriteLine("\tВ комнате доступно мест: " + standartHotelRoom[i]);
  76.                 else if (bookedRoom[i] == 1)
  77.                     Console.WriteLine("\tКомната занята");
  78.                 else if (bookedRoom[i] == 2)
  79.                     Console.WriteLine("\tКомната забронирована");
  80.                 Console.WriteLine("-----------------------------------");
  81.             }
  82.             Console.WriteLine("Для подолжения нажмите клавишу...");
  83.             Console.ReadKey();
  84.         }
  85.  
  86.         static void PrintAllRoom(string room, int bookedRoom, int standartHotelRoom)
  87.         {
  88.                 Console.WriteLine("  Комната:");
  89.                 Console.WriteLine("\t" + room);
  90.                 if (bookedRoom == 0)
  91.                     Console.WriteLine("\tВ комнате доступно мест: " + standartHotelRoom);
  92.                 Console.WriteLine("-----------------------------------");
  93.         }
  94.  
  95.         static void AddNewRoom(ref string[] HotelRoom, ref int[] bookedRoom, ref int[] standartHotelRoom)
  96.         {
  97.             Console.CursorVisible = true;
  98.             Console.Clear();
  99.             string[] copyRoom = new string[HotelRoom.Length + 1];
  100.             int[] copyBooked = new int[HotelRoom.Length + 1],
  101.             copyStandart = new int[HotelRoom.Length + 1];
  102.             for (int i = 0; i < HotelRoom.Length; i++) copyRoom[i] = HotelRoom[i];
  103.             for (int i = 0; i < bookedRoom.Length; i++) copyBooked[i] = bookedRoom[i];
  104.             for (int i = 0; i < standartHotelRoom.Length; i++) copyStandart[i] = standartHotelRoom[i];
  105.             Console.WriteLine("Введите название. К примеру: \"Номер с видом на море\"");
  106.             copyRoom[copyRoom.Length - 1] = Console.ReadLine();
  107.             Console.Write("Введите количество доступных мест:");
  108.  
  109.             copyStandart[copyStandart.Length - 1] = InputInt(0, int.MaxValue);
  110.  
  111.             copyBooked[copyBooked.Length - 1] = 0;
  112.             HotelRoom = copyRoom;
  113.             bookedRoom = copyBooked;
  114.             standartHotelRoom = copyStandart;
  115.         }
  116.  
  117.         static void ReallocateNewRoom(ref string[] HotelRoom, ref int[] bookedRoom, ref int[] standartHotelRoom)
  118.         {
  119.             Console.CursorVisible = true;
  120.             PrintAllRoom(HotelRoom, bookedRoom, standartHotelRoom);
  121.             Console.WriteLine("Введите номер комнаты: ");
  122.             int number = InputInt(0, HotelRoom.Length)-1;
  123.             bookedRoom[number] = 0;
  124.             Console.WriteLine("Успешно! Нажмите клавишу для продолжения...");
  125.             Console.ReadKey();
  126.         }
  127.  
  128.         static void RemoveRoom(ref string[] HotelRoom, ref int[] bookedRoom, ref int[] standartHotelRoom)
  129.         {
  130.             Console.CursorVisible = true;
  131.             Console.Clear();
  132.             string[] copyRoom = new string[HotelRoom.Length - 1];
  133.             int[] copyBooked = new int[HotelRoom.Length - 1],
  134.             copyStandart = new int[HotelRoom.Length - 1];
  135.  
  136.             PrintAllRoom(HotelRoom, bookedRoom, standartHotelRoom);
  137.             Console.WriteLine("Введите номер комнаты: ");
  138.             int numberRoom = InputInt(0, HotelRoom.Length)-1;
  139.             for (int i =0, j = 0; i< copyRoom.Length;i++, j++)
  140.             {
  141.                 if (i < HotelRoom.Length - 1)
  142.                 {
  143.                     if (numberRoom - 1 == i) i++;
  144.                     copyRoom[j] = HotelRoom[i];
  145.                     copyBooked[j] = bookedRoom[i];
  146.                     copyStandart[j] = standartHotelRoom[i];
  147.                 }
  148.             }
  149.             HotelRoom = copyRoom;
  150.             bookedRoom = copyBooked;
  151.             standartHotelRoom = copyStandart;
  152.             Console.WriteLine("Упешно! Комната удалена. Нажмите клавишу для продолжения.");
  153.             Console.ReadKey();
  154.         }
  155.  
  156.         static void Main(string[] args)
  157.         {
  158.             int[] standartHotelRoom = {2, 4,6 };
  159.             string[] HotelRoom = {"С видом на море", "С видом на помойку", "С видом в город"};
  160.             int[] bookedRoom = {0, 1, 2 }; // 0 - свободно, 1 - занято, 2 - забронировано
  161.             string nameApplication = "Hôtel Plaza Athénée";
  162.             string[] menu = {
  163.             "Забронировать номер",
  164.             "Размещение посетителей",
  165.             "Снять бронь с номера",
  166.             "Список номеров",
  167.             "Добавить номер",
  168.             "Удалить номер",
  169.             "Выход" };
  170.             while (true)
  171.             {
  172.                 Console.Clear();
  173.                 Console.WriteLine(nameApplication);
  174.                 for (int i = 0; i < menu.Length; i++)
  175.                 {
  176.                     Console.WriteLine("    "+menu[i]);
  177.                 }
  178.                 int selectCommand = 0;
  179.                 ConsoleKeyInfo charKey;
  180.                 bool selectMenuCommand = false;
  181.                 Console.CursorVisible = false;
  182.                 Console.SetCursorPosition(1, 1 + selectCommand);
  183.                 Console.Write(" >");
  184.                 while (!selectMenuCommand)
  185.                 {
  186.                     charKey = Console.ReadKey();
  187.                     switch (charKey.Key)
  188.                     {
  189.                         case ConsoleKey.UpArrow:
  190.                             Console.SetCursorPosition(1, 1 + selectCommand);
  191.                             Console.Write("  ");
  192.                             selectCommand--;
  193.                             if (selectCommand < 0) selectCommand = 6;
  194.                             Console.SetCursorPosition(1, 1 + selectCommand);
  195.                             Console.Write(" >");
  196.                             break;
  197.                         case ConsoleKey.DownArrow:
  198.                             Console.SetCursorPosition(1, 1 + selectCommand);
  199.                             Console.Write("  ");
  200.                             selectCommand++;
  201.                             if (selectCommand >= menu.Length) selectCommand = 0;
  202.                             Console.SetCursorPosition(1, 1 + selectCommand);
  203.                             Console.Write(" >");
  204.                             break;
  205.                         case ConsoleKey.Enter:
  206.                             selectMenuCommand = true;
  207.                             break;
  208.                     }
  209.                 }
  210.                 switch (selectCommand)
  211.                 {
  212.                     case 0:
  213.                         AllocateRoom(HotelRoom, ref bookedRoom, standartHotelRoom, 2);
  214.                         break;
  215.                     case 1:
  216.                         AllocateRoom(HotelRoom, ref bookedRoom, standartHotelRoom, 1);
  217.                         break;
  218.                     case 2:
  219.                         ReallocateNewRoom(ref HotelRoom, ref bookedRoom, ref standartHotelRoom);
  220.                         break;
  221.                     case 3:
  222.                         PrintAllRoom(HotelRoom,bookedRoom,standartHotelRoom);
  223.                         break;
  224.                     case 4:
  225.                         AddNewRoom(ref HotelRoom, ref bookedRoom, ref standartHotelRoom);
  226.                         break;
  227.                     case 5:
  228.                         RemoveRoom(ref HotelRoom, ref bookedRoom, ref standartHotelRoom);
  229.                         break;
  230.                     case 6:
  231.                         Console.SetCursorPosition(0, 8);
  232.                         return;
  233.                 }
  234.             }
  235.         }
  236.     }
  237. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement