示例#1
0
        private Engine.eTypeOfEngine getEngineTypeFromUser()
        {
            bool inputFlag = false;

            Screen.Clear();
            Engine.eTypeOfEngine engineType = Engine.eTypeOfEngine.Fuel;

            while (!inputFlag)
            {
                try
                {
                    Console.WriteLine("Select engine type :{0}1) Fuel engine{0}2) Electric engine", Environment.NewLine);
                    bool inputValid = int.TryParse(Console.ReadLine(), out int UserInput);

                    if (inputValid == false)
                    {
                        throw new FormatException();
                    }

                    if (UserInput <= 0 || UserInput > 2)
                    {
                        throw new ValueOutOfRangeException(2, 0);
                    }

                    if (UserInput == 2)
                    {
                        engineType = Engine.eTypeOfEngine.Battery;
                    }
                    else
                    {
                        engineType = Engine.eTypeOfEngine.Fuel;
                    }

                    inputFlag = true;
                }
                catch (FormatException)
                {
                    Screen.Clear();
                    Console.WriteLine("{0}", Environment.NewLine);
                    Console.WriteLine("->[Only numbers are acceptable,please enter number]<-");
                    Console.WriteLine("{0}", Environment.NewLine);
                }
                catch (ValueOutOfRangeException ex)
                {
                    Screen.Clear();
                    Console.WriteLine("{0}", Environment.NewLine);
                    Console.WriteLine("{0}", ex.Message);
                    Console.WriteLine("{0}", Environment.NewLine);
                }
            }

            return(engineType);
        }
示例#2
0
        public Truck(string i_ModelName, string i_LicenseNumber, Engine.eTypeOfEngine i_EngineTypeSource, string i_WheelsModel)
            : base(i_ModelName, i_LicenseNumber, i_EngineTypeSource)
        {
            const int k_NumOfWheels = 16;

            for (int i = 0; i < k_NumOfWheels; i++)
            {
                m_Wheels.Add(new Wheel(i_WheelsModel, (float)Wheel.eMaxAirPressure.Truck));
            }

            EngineType.CurrCapacity = (float)Fuel.eMaximumFuelCapacity.Truck;
            SetFuel();
        }
示例#3
0
        protected Vehicle(string i_Model, string i_LicenseNumber, Engine.eTypeOfEngine i_EngineType)
        {
            this.Model         = i_Model;
            this.LicenseNumber = i_LicenseNumber;
            this.m_Wheels      = new List <Wheel>();

            if (i_EngineType == Engine.eTypeOfEngine.Fuel)
            {
                EngineType = new Fuel();
            }
            else
            {
                EngineType = new Battery();
            }
        }
示例#4
0
        public Vehicle AddVehicle(string i_Model, string i_LicenseNumber, string i_WheelModel, Engine.eTypeOfEngine i_EngineTypeType, Vehicle.eVehicleType i_VehicleType)
        {
            Vehicle newVehicleToAdd = null;

            switch (i_VehicleType)
            {
            case Vehicle.eVehicleType.Car:
                newVehicleToAdd = new Car(i_Model, i_LicenseNumber, i_EngineTypeType, i_WheelModel);
                break;

            case Vehicle.eVehicleType.Motorcycle:
                newVehicleToAdd = new Motorcycle(i_Model, i_LicenseNumber, i_WheelModel, i_EngineTypeType);
                break;

            case Vehicle.eVehicleType.Truck:
                newVehicleToAdd = new Truck(i_Model, i_LicenseNumber, i_EngineTypeType, i_WheelModel);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(i_VehicleType), i_VehicleType, null);
            }

            return(newVehicleToAdd);
        }
示例#5
0
        public Motorcycle(string i_ModelName, string i_LicenseNumber, string i_WheelModel, Engine.eTypeOfEngine i_EngineTypeSource)
            : base(i_ModelName, i_LicenseNumber, i_EngineTypeSource)
        {
            const int k_NumOfWheels = 2;

            for (int i = 0; i < k_NumOfWheels; i++)
            {
                m_Wheels.Add(new Wheel(i_WheelModel, (float)Wheel.eMaxAirPressure.Motorcycle));
            }

            SetFuel();
        }