Beispiel #1
0
        static void Main(string[] args)
        {
            System.Console.OutputEncoding = Encoding.UTF8;
            ConsoleKeyInfo pressedKey;

            bool flag     = true;
            int  carCount = 0;

            while (flag)
            {
                Console.Write("Введите модель машины: ");
                string modele = Console.ReadLine().Trim();

                Console.Write("Введите цвет машины: ");
                string color = Console.ReadLine().Trim();

                string priceStr;
                int    price;

                do
                {
                    Console.Write("Введите цену машины: ");
                    priceStr = Console.ReadLine();
                } while (!int.TryParse(priceStr, out price));

                Car car = new Car(modele, color, price);
                CarsKeeper.AddCar(car);
                carCount++;

                Console.WriteLine($"Название автомобиля: {car.Modele}, Цвет автомобиля: {car.Color}, Цена автомобиля: {car.Price}$, Текущая скидка на автомобиль: {car.Discount}%");

                Console.WriteLine("Желаете получить случайную скидку? Нажмите \"Y\" - ДА, \"N\" - НЕТ.");
                pressedKey = Console.ReadKey(true);

                switch (pressedKey.Key.ToString())
                {
                case "Y":
                    car.SetDiscount(car);
                    Console.WriteLine($"Название автомобиля: {car.Modele}, Цвет автомобиля: {car.Color}, Цена автомобиля: {car.Price}$, Текущая скидка на автомобиль: {car.Discount}%");
                    break;

                case "N":
                    break;
                }

                if (carCount >= 3)
                {
                    Console.WriteLine("Лимит в магазине - 3 машины.");
                    break;
                }
            }

            Console.WriteLine("Желаете просмотреть все автомобили? Нажмите \"Y\" - ДА, \"N\" - НЕТ.");
            pressedKey = Console.ReadKey(true);

            switch (pressedKey.Key.ToString())
            {
            case "Y":
                var savedCars = CarsKeeper.GetCars;

                foreach (Car myCar in savedCars)
                {
                    Console.WriteLine($"Название автомобиля: {myCar.Modele}, Цвет автомобиля: {myCar.Color}, Цена автомобиля: {myCar.Price}$, Текущая скидка на автомобиль: {myCar.Discount}%");
                }
                break;

            case "N":
                break;
            }

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            System.Console.OutputEncoding = Encoding.UTF8;
            ConsoleKeyInfo pressedKey;

            bool flag     = true;
            int  carCount = 0;

            while (flag)
            {
                Console.Write("Введите модель машины: ");
                string modele = Console.ReadLine().Trim();

                Console.Write("Введите цвет машины: ");
                string color = Console.ReadLine().Trim();

                string priceStr;
                int    price;

                do
                {
                    Console.Write("Введите цену машины: ");
                    priceStr = Console.ReadLine();
                    // isPriceOk = !int.TryParse(priceStr, out price);
                    // while (isPriceOk)
                } while (!int.TryParse(priceStr, out price)); // cтарайся писать один оператор в одном лайне Func1(Func2(Func3(a))) плохо читается


                Car car = new Car(modele, color, price);
                CarsKeeper.AddCar(car);
                carCount++;

                Console.WriteLine($"Название автомобиля: {car.Modele}, Цвет автомобиля: {car.Color}, Цена автомобиля: {car.Price}$, Текущая скидка на автомобиль: {car.Discount}%");

                Console.WriteLine("Желаете получить случайную скидку? Нажмите \"Y\" - ДА, \"N\" - НЕТ.");
                pressedKey = Console.ReadKey(true);

                switch (pressedKey.Key.ToString())
                {
                case "Y":
                    car.SetDiscount(car);
                    Console.WriteLine($"Название автомобиля: {car.Modele}, Цвет автомобиля: {car.Color}, Цена автомобиля: {car.Price}$, Текущая скидка на автомобиль: {car.Discount}%");
                    break;

                case "N":
                    break;

                    // всегда добавляй default хорошая практика
                }

                if (carCount >= 3) // магические числа в коде выноси это в отдельную переменую с самодокументируемым названием
                {
                    Console.WriteLine("Лимит в магазине - 3 машины.");
                    break;
                }
            }

            Console.WriteLine("Желаете просмотреть все автомобили? Нажмите \"Y\" - ДА, \"N\" - НЕТ.");
            pressedKey = Console.ReadKey(true);

            switch (pressedKey.Key.ToString())
            {
            case "Y":
                var savedCars = CarsKeeper.GetCars;

                foreach (Car myCar in savedCars)
                {
                    Console.WriteLine($"Название автомобиля: {myCar.Modele}, Цвет автомобиля: {myCar.Color}, Цена автомобиля: {myCar.Price}$, Текущая скидка на автомобиль: {myCar.Discount}%");
                    // попрбуй еще string.Format для вывода строк чисто для расширения кругозора
                }
                break;

            case "N":
                break;
            }

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            System.Console.OutputEncoding = Encoding.UTF8;
            ConsoleKeyInfo pressedKey;

            bool flag             = true;
            int  carCount         = 0;
            bool insurance        = false;
            int  carryingCapacity = 0;
            int  carCapacity      = 0;
            int  mileage          = 0;
            int  price;

            while (flag)
            {
                Console.Write("Укажите тип добавляемого автомобиля 1 - грузовик, 2 - минивен: ");
                pressedKey = Console.ReadKey();
                string carType;

                switch (pressedKey.Key.ToString())
                {
                case "D1":
                    carType = "truck";
                    break;

                case "D2":
                    carType = "minivan";
                    break;

                default:
                    carType = "truck";
                    break;
                }
                Console.WriteLine();

                Console.Write("Введите модель автомобиля: ");
                string modele = Console.ReadLine().Trim();

                Console.Write("Введите цвет автомобиля: ");
                string color = Console.ReadLine().Trim();

                string carryingCapacityStr;

                string carCapacityStr;

                switch (carType)
                {
                case "truck":
                    do
                    {
                        Console.Write("Введите грузоподъёмность автомобиля: ");
                        carryingCapacityStr = Console.ReadLine();
                    } while (!int.TryParse(carryingCapacityStr, out carryingCapacity));

                    Console.Write("Укажите наличие страховки \"YES\" или \"NO\": ");
                    string insuranceLine = Console.ReadLine().Trim();

                    switch (insuranceLine)
                    {
                    case "YES":
                        insurance = true;
                        break;

                    case "NO":
                        insurance = false;
                        break;

                    default:
                        insurance = false;
                        break;
                    }


                    string mileageStr;

                    do
                    {
                        Console.Write("Введите пробег автомобиля: ");
                        mileageStr = Console.ReadLine();
                    } while (!int.TryParse(mileageStr, out mileage));

                    break;

                case "minivan":
                    do
                    {
                        Console.Write("Введите вместительность пассажиров автомобиля: ");
                        carCapacityStr = Console.ReadLine();
                    } while (!int.TryParse(carCapacityStr, out carCapacity));
                    break;
                }

                string priceStr;

                do
                {
                    Console.Write("Введите цену автомобиля: ");
                    priceStr = Console.ReadLine();
                } while (!int.TryParse(priceStr, out price));

                switch (carType)
                {
                case "truck":
                    Truck truck = new Truck(modele, color, carryingCapacity, insurance, mileage, price);
                    CarsKeeper.AddCar(truck);
                    break;

                case "minivan":
                    Minivan minivan = new Minivan(modele, color, carCapacity, price);
                    CarsKeeper.AddCar(minivan);
                    break;
                }

                Console.WriteLine("Автомобиль добавлен.");
                Console.WriteLine(new string('-', 50));

                carCount++;

                if (carCount >= 3) // магические числа в коде выноси это в отдельную переменую с самодокументируемым названием
                {
                    Console.WriteLine("Максимальный лимит в магазине - 3 автомобиля.");
                    break;
                }
            }

            Console.WriteLine("Желаете просмотреть все автомобили? Нажмите \"Y\" - ДА, \"N\" - НЕТ.");
            pressedKey = Console.ReadKey(true);

            switch (pressedKey.Key.ToString())
            {
            case "Y":
                var savedCars = CarsKeeper.GetCars;

                foreach (Car myCar in savedCars)
                {
                    Console.WriteLine($"Название автомобиля: {myCar.Modele}, Тип автомобиля: {myCar.Type}, Цвет автомобиля: {myCar.Color}, Цена автомобиля: {myCar.Price}$, Текущая скидка на автомобиль: {myCar.Discount}%");
                    // попрбуй еще string.Format для вывода строк чисто для расширения кругозора
                }
                break;

            case "N":
                break;
            }

            Console.ReadKey();
        }