Untitled
unknown
plain_text
a year ago
7.2 kB
5
Indexable
class Program { static Random random = new Random(); // Создаем генератор случайных чисел static string[] drivers = { "Иванов", "Петров", "Сидоров" }; // Создаем массив водителей static Dictionary<string, string[]> carModelsByBrand = new Dictionary<string, string[]>() // Создаем словарь, где ключ - марка автомобиля, значение - массив моделей для каждой марки { { "Toyota", new string[] { "Camry" } }, // Пример: Toyota имеет модель Camry { "Honda", new string[] { "Accord" } }, // Пример: Honda имеет модель Accord { "Ford", new string[] { "Focus" } }, // Пример: Ford имеет модель Focus { "BMW", new string[] { "X5" } }, // Пример: BMW имеет модель X5 { "Audi", new string[] { "A4" } } // Пример: Audi имеет модель A4 }; static string[] carColors = { "Чёрный", "Белый", "Серый", "Синий", "Красный" }; // Создаем массив цветов машин static double minPrice = 400; // Устанавливаем минимальную цену поездки static double loadNone = 1; // Устанавливаем коэффициент для нулевой загруженности static double loadSmall = 1.5; // Устанавливаем коэффициент для малой загруженности static double loadMedium = 2; // Устанавливаем коэффициент для средней загруженности static double loadHigh = 2.5; // Устанавливаем коэффициент для высокой загруженности static double correction = 1.75; // Устанавливаем корректировку для цены static void Main(string[] args) { Console.Write("Откуда: "); // Приглашение ввести место отправления string from = Console.ReadLine(); // Считываем место отправления с консоли Console.Write("Куда: "); // Приглашение ввести место назначения string to = Console.ReadLine(); // Считываем место назначения с консоли double distance = random.NextDouble() * 5; // Генерируем случайное расстояние от 0 до 5 км double load = GetRandomLoad(); // Получаем случайную загруженность double price = CalculatePrice(distance, load); // Вычисляем цену поездки string loadText = GetLoadText(load); // Получаем текстовое представление загруженности string driver = GetRandomDriver(); // Получаем случайного водителя string carBrand = GetRandomCarBrand(); // Получаем случайную марку машины string carModel = GetRandomCarModel(carBrand); // Получаем случайную модель машины для данной марки string carColor = GetRandomCarColor(); // Получаем случайный цвет машины string carNumber = GenerateCarNumber(); // Генерируем случайный гос. номер машины int arrivalTime = random.Next(1, 11); // Генерируем время прибытия от 1 до 10 минут Console.WriteLine("Ваш заказ принят!"); // Сообщаем о принятии заказа Console.WriteLine($"Вы поедете с {from} до {to} расстояние - {distance:F2} км"); // Выводим информацию о расстоянии Console.WriteLine($"Сейчас нагруженность - {loadText}"); // Выводим информацию о загруженности Console.WriteLine($"Стоимость поездки: {price} тенге"); // Выводим стоимость поездки Console.WriteLine($"Ваш водитель: {driver}, {carBrand} {carModel} {carColor} {carNumber} прибудет через {arrivalTime} мин"); // Выводим информацию о водителе и его машине } static double GetRandomLoad() { int loadIndex = random.Next(4); // Генерируем случайный индекс для выбора уровня загрузки switch (loadIndex) { case 0: return loadNone; // Нет загрузки case 1: return loadSmall; // Малая загрузка case 2: return loadMedium; // Средняя загрузка case 3: return loadHigh; // Высокая загрузка default: return loadNone; // По умолчанию нет загрузки } } static string GetLoadText(double load) { if (load == loadNone) return "нет"; else if (load == loadSmall) return "маленькая"; else if (load == loadMedium) return "средняя"; else if (load == loadHigh) return "большая"; else return "неизвестная"; } static double CalculatePrice(double distance, double load) { return distance / correction * load * minPrice; // Расчет стоимости поездки } static string GetRandomDriver() { return drivers[random.Next(drivers.Length)]; // Выбор случайного водителя из массива } static string GetRandomCarBrand() { return carModelsByBrand.Keys.ToArray()[random.Next(carModelsByBrand.Count)]; // Выбор случайной марки машины из словаря } static string GetRandomCarModel(string carBrand) { return carModelsByBrand[carBrand][random.Next(carModelsByBrand[carBrand].Length)]; // Выбор случайной модели машины для данной марки из словаря } static string GetRandomCarColor() { return carColors[random.Next(carColors.Length)]; // Выбор случайного цвета машины из массива } static string GenerateCarNumber() { string letters = "АВЕКМНОРСТУХ"; string numbers = "0123456789"; string result = ""; for (int i = 0; i < 4; i++) { result += letters[random.Next(letters.Length)]; // Выбор случайных букв для гос. номера } for (int i = 0; i < 3; i++) { result += numbers[random.Next(numbers.Length)]; // Выбор случайных цифр для гос. номера } return result; } }
Editor is loading...
Leave a Comment