static void AddClient() // Метод создания нового клиента и сохранения данных в файл { try // точка старта обработки исключений { FlagName: // точка возврата Console.Write("\n Full name:"); // Вывод текста на экран string name = Console.ReadLine(); // Считывание строки if (name.Length < 4) //проверка на длинну строки { Console.Write("\n Wrong input! Name must be greater 4 symbol!"); // вывод на экран сообщения Console.ReadKey(); // одидание ввода символа goto FlagName; // отправиться к точке возврата } FlagPas: Console.Write("\n Passport number:"); // Вывод текста на экран string passport = Console.ReadLine(); // Считывание строки if (passport.Length < 8) { Console.Write("\n Wrong input! Passport must be greater 8! "); // вывод на экран сообщения Console.ReadKey(); // одидание ввода символа goto FlagPas; // отправиться к точке возврата } Console.Write("\n--------------------------------------------"); // рамка ShowTariff(); // вызов метода отобрадения всех тарифов Console.Write("\n--------------------------------------------"); // рамка Console.Write("\n Input name TARIFF:"); // Вывод текста на экран string tar = Console.ReadLine(); // Считывание строки FlagCount: // точка возврата Console.Write(" Count of TICKETS: "); // Вывод текста на экран int count = Int32.Parse(Console.ReadLine()); // Считывание строки if (count < 1) //проверка на идиотизм { Console.Write("\n Count must be greater 0 "); // вывод на экран сообщения Console.ReadKey(); // одидание ввода символа Console.Clear(); // чистка консоли goto FlagCount; // отправиться к точке возврата } // Find tariff in file StreamReader readT = new StreamReader("base.txt", Encoding.Default); // Открытие файла для чтения string line; // объявление строчной переменной while ((line = readT.ReadLine()) != null) // цикл, считыввающий файл построчно, пока там есть информация { string[] var = line.Split(' '); // разбиение строки на строчный массив if (var[0] == tar) // проверка на искомый тариф { Tariff t = new Tariff(var[0], var[1], var[2], Convert.ToDateTime(var[3]), Convert.ToDateTime(var[4]), Convert.ToInt32(var[5])); // запись тарифа из файла Client client = new Client(name, passport, t, count, Sale(t)); // создание объекта клинт StreamWriter save = new StreamWriter("clients.txt", true, Encoding.Default); // открыте файла для записи (режим доавления строки) save.WriteLine(client); // сохранение строки в файл save.Close(); // закрытие файла записи break; // прерывание цикла } } readT.Close(); // закрытие файла чтения } catch (Exception e) // ловим все исключения { Console.Clear(); // чистка экрана консоли Console.WriteLine(" " + e.Message); // вывод текста ошибки Console.ReadKey(); // ожидание ввода символа AddClient(); // вызов метода занова } }
/* * ADD TARIFF * * **/ public static void AddTariff() //метод добавления тарифа { try //объявления начала точки обработыки исключений { FlagName: //точка возврата для имени Console.Write("\n TARIFF NAME: "); // вывод на экран сообщения string nameTarrif = Console.ReadLine(); //считывание строки if (nameTarrif.Length < 4) //проверка на длинну строки { Console.Write("\n You must input greater 4 sybhol: "); // вывод на экран сообщения Console.ReadKey(); //ожидание ввода символа goto FlagName; //отправиться к точке возврата } Console.Write("\n--------------------------------------------"); //вывод рамки FlagDep: //точка возвращения Console.Write("\n POINT OF DEPARTURE: "); // вывод на экран сообщения string departure = Console.ReadLine(); //считывание строки if (departure.Length < 4) //проверка на длинну строки { Console.Write("\n You must input greater 4 sybhol: "); // вывод на экран сообщения Console.ReadKey(); //ожидание ввода символа goto FlagDep; //отправиться к точке возврата } Console.WriteLine("\n DEPARTURE DATE"); // вывод на экран сообщения Console.Write(" Year: "); // вывод на экран сообщения int year = Int32.Parse(Console.ReadLine()); // считывание года Console.Write(" Month: "); // вывод на экран сообщения int month = Int32.Parse(Console.ReadLine()); // считывание месяца Console.Write(" Day: "); // вывод на экран сообщения int day = Int32.Parse(Console.ReadLine()); // считывание дня DateTime dateOfDeparture = new DateTime(year, month, day); // создание объекта даты Console.Write("\n--------------------------------------------"); // Рамка FlagArr: // точка возврата Console.Write("\n POINT OF ARRIVAL: "); // вывод на экран сообщения string arrival = Console.ReadLine(); // считывание строки if (arrival.Length < 4) //проверка на длинну строки { Console.Write("\n You must input greater 4 sybhol: "); // вывод на экран сообщения Console.ReadKey(); // одидание ввода символа goto FlagArr; // отправиться к точке возврата } FlagDate: // точка возврата Console.WriteLine("\n ARRIVAL DATE"); // вывод на экран сообщения Console.Write(" Year: "); // вывод на экран сообщения year = Int32.Parse(Console.ReadLine()); // считывание года Console.Write(" Month: "); // вывод на экран сообщения month = Int32.Parse(Console.ReadLine()); // считывание месяца Console.Write(" Day: "); // вывод на экран сообщения day = Int32.Parse(Console.ReadLine()); // считывание дня DateTime dateOfArrival = new DateTime(year, month, day); // создание объекта даты if (dateOfDeparture > dateOfArrival) // проверка на корректность ввода даты { Console.WriteLine("\n /(0 o 0)/ Arrival Date must be greater than the Departure Date! Retruy! "); // вывод на экран сообщения goto FlagDate; // отправиться к точке возврата } FlagCost: // точка возврата Console.Write("\n COST of tarrif: "); // вывод на экран сообщения double cost = double.Parse(Console.ReadLine()); // чтение числа if (cost < 1) // проверка на нулевую или отрицательную цену { Console.WriteLine("\n /(0 o 0)/ Too small cost! Retruy! "); // вывод на экран сообщения goto FlagCost; // отправиться к точке возврата } StreamWriter save = new StreamWriter("base.txt", true, Encoding.Default); // открыте файла для записи (режим доавления строки) Tariff tar = new Tariff(nameTarrif, departure, arrival, dateOfDeparture, dateOfArrival, cost); // создание объекта класса Тариф save.WriteLine(tar); // записать в файл параметров объекта save.Close(); // Закрытие файла } catch (Exception e) // ловим все исключительные ситуации { Console.WriteLine(" " + e.Message); // вывод на экран текста ошибки Console.ReadKey(); // ожидание ввода символа Console.Clear(); // чистка консоли AddTariff(); // вызов метода } }