static void Main(string[] args) { string[] carInfo = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries); double carfuelQuantity = double.Parse(carInfo[1]); double carConsumption = double.Parse(carInfo[2]); double carTank = double.Parse(carInfo[3]); string[] truckInfo = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries); double truckFuelQuantity = double.Parse(truckInfo[1]); double truckConsumption = double.Parse(truckInfo[2]); double truckTank = double.Parse(truckInfo[3]); string[] busInfo = Console.ReadLine().Split(" ", StringSplitOptions.RemoveEmptyEntries); double busFuelQuantity = double.Parse(busInfo[1]); double busConsumption = double.Parse(busInfo[2]); double busTank = double.Parse(busInfo[3]); Vehicle car = new Car(carfuelQuantity, carConsumption, carTank); Vehicle truck = new Truck(truckFuelQuantity, truckConsumption, truckTank); Bus bus = new Bus(busFuelQuantity, busConsumption, busTank); int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++) { string[] inputInfo = Console.ReadLine().Split(); string action = inputInfo[0]; string type = inputInfo[1]; if (action == "Drive") { double distance = double.Parse(inputInfo[2]); try { if (type == "Car") { Console.WriteLine(car.Drive(distance)); } else if (type == "Truck") { Console.WriteLine(truck.Drive(distance)); } else { Console.WriteLine(bus.Drive(distance)); } } catch (NotEnoughFuelException ex) { Console.WriteLine(ex.Message, type); } } else if (action == "DriveEmpty") { double distance = double.Parse(inputInfo[2]); try { Console.WriteLine(bus.DriveEmpty(distance)); } catch (NotEnoughFuelException ex) { Console.WriteLine(ex.Message, type); } } else if (action == "Refuel") { double liters = double.Parse(inputInfo[2]); try { if (type == "Car") { car.Refuel(liters); } else if (type == "Truck") { truck.Refuel(liters); } else { bus.Refuel(liters); } } catch (TankCapacityException ex) { Console.WriteLine(ex.Message, liters); } catch (FuelExcpetion fex) { Console.WriteLine(fex.Message); } } } Console.WriteLine($"Car: {car.FuelQuantity:F2}"); Console.WriteLine($"Truck: {truck.FuelQuantity:F2}"); Console.WriteLine($"Bus: {bus.FuelQuantity:F2}"); }
public static void Main() { List <Vehicle> vehicles = new List <Vehicle>(); var carInfo = Console.ReadLine() .Split(' ', StringSplitOptions.RemoveEmptyEntries); double carFuelQuantity = double.Parse(carInfo[1]); double carFuelConsumption = double.Parse(carInfo[2]); var truckInfo = Console.ReadLine() .Split(' ', StringSplitOptions.RemoveEmptyEntries); double truckFuelQuantity = double.Parse(truckInfo[1]); double truckFuelConsumption = double.Parse(truckInfo[2]); Car car = new Car(carFuelQuantity, carFuelConsumption); Truck truck = new Truck(truckFuelQuantity, truckFuelConsumption); vehicles.Add(car); vehicles.Add(truck); int rowCommans = int.Parse(Console.ReadLine()); for (int i = 1; i <= rowCommans; i++) { string input = Console.ReadLine(); var splittedInput = input .Split(' ', StringSplitOptions.RemoveEmptyEntries); string command = splittedInput[0].ToUpper(); string type = splittedInput[1].ToUpper(); if (type == "CAR") { if (command == "DRIVE") { double distance = double.Parse(splittedInput[2]); Console.WriteLine(vehicles .FirstOrDefault(t => t.GetType().Name == "Car") .Drive(distance)); } else if (command == "REFUEL") { double fuel = double.Parse(splittedInput[2]); vehicles .FirstOrDefault(t => t.GetType().Name == "Car") .Refuel(fuel); } } else if (type == "TRUCK") { if (command == "DRIVE") { double distance = double.Parse(splittedInput[2]); Console.WriteLine(vehicles .FirstOrDefault(t => t.GetType().Name == "Truck") .Drive(distance)); } else if (command == "REFUEL") { double fuel = double.Parse(splittedInput[2]); vehicles .FirstOrDefault(t => t.GetType().Name == "Truck") .Refuel(fuel); } } } foreach (var vehicle in vehicles) { Console.WriteLine(vehicle); } }
public static void Main() { var carInfo = Console.ReadLine().Split(); var truckInfo = Console.ReadLine().Split(); var busInfo = Console.ReadLine().Split(); IVehicle car = new Car(double.Parse(carInfo[1]), double.Parse(carInfo[2]), double.Parse(carInfo[3])); IVehicle truck = new Truck(double.Parse(truckInfo[1]), double.Parse(truckInfo[2]), double.Parse(truckInfo[3])); IVehicle bus = new Bus(double.Parse(busInfo[1]), double.Parse(busInfo[2]), double.Parse(busInfo[3])); int lines = int.Parse(Console.ReadLine()); for (int i = 0; i < lines; i++) { string[] input = Console.ReadLine().Split(); string command = input[0]; string type = input[1]; double distance = double.Parse(input[2]); double litters = double.Parse(input[2]); try { if (command == "Drive") { if (type == "Car") { Console.WriteLine(car.Drive(distance)); } else if (type == "Truck") { Console.WriteLine(truck.Drive(distance)); } else if (type == "Bus") { bus.IsEmpty = false; Console.WriteLine(bus.Drive(distance)); } } else if (command == "DriveEmpty") { bus.IsEmpty = true; Console.WriteLine(bus.Drive(distance)); } else if (command == "Refuel") { if (type == "Car") { car.Refuel(litters); } else if (type == "Truck") { truck.Refuel(litters); } else if (type == "Bus") { bus.Refuel(litters); } } } catch (Exception ae) { Console.WriteLine(ae.Message); } } Console.WriteLine(car); Console.WriteLine(truck); Console.WriteLine(bus); }
static void Main(string[] args) { List <Vehicle> vehilcles = new List <Vehicle>(); for (int i = 0; i <= 3; i++) { string[] vehileArgs = Console.ReadLine().Split(); double fuelQuantity = double.Parse(vehileArgs[1]); double fuelConsupmtion = double.Parse(vehileArgs[2]); int tankCapacity = int.Parse(vehileArgs[3]); Vehicle vehicle = null; if (i == 1) { vehicle = new Car(fuelQuantity, fuelConsupmtion, tankCapacity); } else if (i == 2) { vehicle = new Truck(fuelQuantity, fuelConsupmtion, tankCapacity); } else { vehicle = new Bus(fuelQuantity, fuelConsupmtion, tankCapacity); } vehilcles.Add(vehicle); } int commandsCount = int.Parse(Console.ReadLine()); for (int i = 0; i < commandsCount; i++) { string[] commandArgs = Console.ReadLine().Split(); string command = commandArgs[0]; string commandType = commandArgs[1]; if (command == "Drive") { double distance = double.Parse(commandArgs[2]); if (commandType == "Car") { Vehicle currentVehicles = vehilcles .FirstOrDefault(x => x.GetType().Name == commandType); Console.WriteLine(currentVehicles.Drive(distance)); } } else if (command == "Refuel") { double fuelAmount = double.Parse(commandArgs[2]); Vehicle currentVehicles = vehilcles .FirstOrDefault(x => x.GetType().Name == commandType); try { currentVehicles.Refuel(fuelAmount); } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { double distance = double.Parse(commandArgs[2]); Bus currentBus = (Bus)vehilcles .FirstOrDefault(x => x.GetType().Name == commandType); Console.WriteLine(currentBus.DriveEmpty(distance)); } } foreach (var vehicle in vehilcles) { Console.WriteLine(vehicle); } }