static void Main(string[] args) { string[] carInput = Console.ReadLine().Split(); double carFuelQuantity = double.Parse(carInput[1]); double carFuelConsumption = double.Parse(carInput[2]); double carTankCapacity = double.Parse(carInput[3]); Vehicle car = new Car(carFuelQuantity, carFuelConsumption, carTankCapacity); string[] truckInput = Console.ReadLine().Split(); double truckFuelQuantity = double.Parse(truckInput[1]); double truckFuelConsumption = double.Parse(truckInput[2]); double truckTankCapacity = double.Parse(truckInput[3]); Vehicle truck = new Truck(truckFuelQuantity, truckFuelConsumption, truckTankCapacity); string[] busInput = Console.ReadLine().Split(); double busFuelQuantity = double.Parse(busInput[1]); double busFuelConsumption = double.Parse(busInput[2]); double busTankCapacity = double.Parse(busInput[3]); Vehicle bus = new Bus(busFuelQuantity, busFuelConsumption, busTankCapacity); Vehicle[] vehicleArr = new Vehicle[3] { car, truck, bus }; int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { string[] commTokens = Console.ReadLine().Split(); string commType = commTokens[0]; string vehicleType = commTokens[1]; try { switch (commType) { case "Drive": double kilometres = double.Parse(commTokens[2]); Console.WriteLine(((Vehicle)vehicleArr.FirstOrDefault(x => x.GetType().ToString() == vehicleType)).Drive(kilometres)); break; case "DriveEmpty": double emptyKilometres = double.Parse(commTokens[2]); Console.WriteLine(bus.DriveEmpty(emptyKilometres)); break; case "Refuel": double fuelToAdd = double.Parse(commTokens[2]); ((Vehicle)vehicleArr.FirstOrDefault(x => x.GetType().ToString() == vehicleType)).Refuel(fuelToAdd); break; default: break; } } catch (Exception e) { Console.WriteLine(e.Message); } } Console.WriteLine(car.ToString()); Console.WriteLine(truck.ToString()); Console.WriteLine(bus.ToString()); }
public static void Main(string[] args) { List <Vehicle> vehicles = new List <Vehicle>(); for (int i = 0; i < 3; i++) { var input = Console.ReadLine().Split(); var quantity = double.Parse(input[1]); var consumption = double.Parse(input[2]); var capacity = double.Parse(input[3]); switch (input[0]) { case "Car": currentCar = new Car(quantity, consumption, capacity); break; case "Truck": currentTruck = new Truck(quantity, consumption, capacity); break; case "Bus": currentBus = new Bus(quantity, consumption, capacity); break; } } int numOfCommands = int.Parse(Console.ReadLine()); for (int i = 0; i < numOfCommands; i++) { var input = Console.ReadLine().Split(); var action = input[0]; var vehicleType = input[1]; var amount = double.Parse(input[2]); Vehicle currentVehicle = null; switch (vehicleType) { case "Car": currentVehicle = currentCar; break; case "Truck": currentVehicle = currentTruck; break; case "Bus": currentVehicle = currentBus; break; } PerformAction(currentVehicle, action, amount); } Console.WriteLine($"{currentCar.ToString()}"); Console.WriteLine($"{currentTruck.ToString()}"); Console.WriteLine($"{currentBus.ToString()}"); }
static void Main(string[] args) { string[] inputCar = Console.ReadLine().Split(); string[] inputTruck = Console.ReadLine().Split(); string[] inputTBus = Console.ReadLine().Split(); Vehicle car = new Car(double.Parse(inputCar[1]), double.Parse(inputCar[2]), double.Parse(inputCar[3])); Vehicle truck = new Truck(double.Parse(inputTruck[1]), double.Parse(inputTruck[2]), double.Parse(inputTruck[3])); Vehicle bus = new Bus(double.Parse(inputTBus[1]), double.Parse(inputTBus[2]), double.Parse(inputTBus[3])); int nLines = int.Parse(Console.ReadLine()); for (int i = 0; i < nLines; i++) { try { string[] commandArgs = Console.ReadLine().Split(); string command = commandArgs[0]; string vehicle = commandArgs[1]; double doubleNumber = double.Parse(commandArgs[2]); if (command == "Drive") { if (vehicle == "Car") { car.Drive(doubleNumber, 0.9); } else if (vehicle == "Truck") { truck.Drive(doubleNumber, 1.6); } else if (vehicle == "Bus") { bus.Drive(doubleNumber, 1.4); } } else if (command == "Refuel") { if (vehicle == "Car") { car.Refuel(doubleNumber); } else if (vehicle == "Truck") { truck.Refuel(doubleNumber); } else if (vehicle == "Bus") { bus.Refuel(doubleNumber); } } else if (command == "DriveEmpty") { bus.Drive(doubleNumber, 0); } } catch (ArgumentException ae) { Console.WriteLine(ae.Message); } } Console.WriteLine(car.ToString()); Console.WriteLine(truck.ToString()); Console.WriteLine(bus.ToString()); }