Untitled
unknown
plain_text
2 years ago
7.2 kB
18
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