Програма за провеждане на държавен изпит за придобиване на втора степен на професионална квалификация за специалност


първи ред – информация за колата във формат {Car {fuel quantity} {liters per km}}



Pdf просмотр
страница9/38
Дата27.09.2022
Размер2.08 Mb.
#115149
ТипПрограма
1   ...   5   6   7   8   9   10   11   12   ...   38
Изпитни теми
първи ред – информация за колата във формат {Car {fuel quantity} {liters per km}}
● На
втори ред – информация за камиона във формат {Truck {fuel quantity} {liters per km}}
● На трети ред –
брой команди N, които ще бъдат подадени на следващите N реда
● На следващите N реда – команди във формат:

Drive Car {distance}

Drive Truck {distance}

Refuel Car {liters}

Refuel Truck {liters}
Изход:
След всяка
Drive команда отпечатайте дали колата/камионът може да пропътува разстоянието, като използвате следния формат при успех:
Car/Truck travelled {distance} km
Или при неуспех:
Car/Truck needs refueling
Накрая отпечатайте
оставащото гориво за колата и камиона закръглено до 2 знака след запетаята във формат:
Car: {liters}
Truck: {liters}
Пример:
Вход
Изход


Car 15 0.3
Truck 100 0.9 4
Drive Car 9
Drive Car 30
Refuel Car 50
Drive Truck 10
Car travelled 9 km
Car needs refueling
Truck travelled 10 km
Car: 54.20
Truck: 75.00
Car 30.4 0.4
Truck 99.34 0.9 5
Drive Car 500
Drive Car 13.5
Refuel Truck 10.300
Drive Truck 56.2
Refuel Car 100.2
Car needs refueling
Car travelled 13.5 km
Truck needs refueling
Car: 113.05
Truck: 109.13
Фрагмент:
IVehicle.cs interface IVehicle
{ double Fuel { get; } double Litersperkm { get;} double Distance { get;} void Drive(double km); void Refuel(double litres);
}
Car.cs class Car : IVehicle
{ private double fuel, litersperkm, distance; public double Fuel { get { return fuel; } } public double Litersperkm { get { return litersperkm; } } public double Distance { get { return distance; } } public void Drive(double km)
{ double travel = litersperkm * km; if (travel <= fuel)
{ fuel -= travel;
Console.WriteLine($"Car travelled {km} km"); distance += km;
} else
{


Console.WriteLine("Car needs refueling");
}
} public void Refuel(double litres)
{ this.fuel += litres;
} public Car(double fuel,double l)
{ this.fuel = fuel; this.litersperkm = l+0.9;
}
}
Truck.cs class Truck:IVehicle
{ private double fuel, litersperkm, distance; public double Fuel { get { return fuel; } } public double Litersperkm { get { return litersperkm; } } public double Distance { get { return distance; } } public void Drive(double km)
{ double travel = litersperkm * km; if (travel <= fuel)
{ fuel -= travel;
Console.WriteLine($"Truck travelled {km} km"); distance += km;
} else
{
Console.WriteLine("Truck needs refueling");
}
} public void Refuel(double litres)
{ this.fuel += litres;
} public Truck(double fuel, double l)
{ this.fuel = fuel*0.95; this.litersperkm = l + 1.6;
}
}


Program.cs static void Main(string[] args)
{ var input =
Console.ReadLine().Split().Skip(1).Select(double.Parse).ToArray();
Car car = new Car(input[0], input[1]); input =
Console.ReadLine().Split().Skip(1).Select(double.Parse).ToArray();
Truck truck = new Truck(input[0], input[1]); int n = int.Parse(Console.ReadLine()); for (int i = 0; i < n; i++)
{ var cmd = Console.ReadLine().Split().ToArray(); if (cmd[0] == "Drive")
{ if (cmd[1] == "Car")
{ car.Drive(double.Parse(cmd[2]));
} else
{ truck.Drive(double.Parse(cmd[2]));
}
} else
{ if (cmd[1] == "Car")
{ car.Refuel(double.Parse(cmd[2]));
} else
{ truck.Refuel(double.Parse(cmd[2]));
}
}
}
Console.WriteLine($"Car: {car.Fuel:F2}");
Console.WriteLine($"Truck: {truck.Fuel:f2}");
}




Сподели с приятели:
1   ...   5   6   7   8   9   10   11   12   ...   38




©obuch.info 2024
отнасят до администрацията

    Начална страница