Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace CarManufacturer
- {
- public class Car
- {
- public string Make { get; set; }
- public string Model { get; set; }
- public int Year { get; set; }
- public double FuelQuantity { get; set; }
- public double FuelConsumption { get; set; }
- public Engine Engine { get; set; }
- public Tire[] Tires { get; set; }
- public void Drive(double distance)
- {
- bool canContinue = this.FuelQuantity - (distance * (this.FuelConsumption / 100)) >= 0;
- if (canContinue)
- {
- this.FuelQuantity -= distance * (this.FuelConsumption / 100);
- }
- else
- {
- throw new Exception("Not enough fuel to perform this trip!");
- }
- }
- public string WhoAmI()
- {
- StringBuilder sb = new StringBuilder();
- sb.AppendLine($"Make: {this.Make}");
- sb.AppendLine($"Model: {this.Model}");
- sb.AppendLine($"Year: {this.Year}");
- sb.Append($"Fuel: {this.FuelQuantity:F2}L");
- return sb.ToString();
- }
- public Car()
- {
- Make = "VW";
- Model = "Golf";
- Year = 2025;
- FuelQuantity = 200;
- FuelConsumption = 10;
- }
- public Car(string make, string model, int year) : this()
- {
- Make = make;
- Model = model;
- Year = year;
- }
- public Car(string make, string model, int year, double fuelQuantity, double fuelConsumption) : this(make, model, year)
- {
- FuelQuantity = fuelQuantity;
- FuelConsumption = fuelConsumption;
- }
- public Car(string make, string model, int year, double fuelQuantity, double fuelConsumption, Engine engine, Tire[] tires)
- : this(make, model, year, fuelQuantity, fuelConsumption)
- {
- Engine = engine;
- Tires = tires;
- }
- }
- public class Engine
- {
- public int HorsePower { get; set; }
- public double CubicCapacity { get; set; }
- public Engine(int horsePower, double cubicCapacity)
- {
- HorsePower = horsePower;
- CubicCapacity = cubicCapacity;
- }
- }
- public class Tire
- {
- public int Year { get; set; }
- public double Pressure { get; set; }
- public Tire(int year, double pressure)
- {
- this.Year = year;
- this.Pressure = pressure;
- }
- }
- public class StartUp
- {
- public static void Main()
- {
- var tires = new List<Tire[]>();
- while (true)
- {
- var input = Console.ReadLine();
- if (input == "No more tires")
- {
- break;
- }
- var tiresData = input.Split();
- var currCarTires = new Tire[4];
- var year = 0;
- var index = 0;
- for (int i = 0; i < tiresData.Length; i++)
- {
- if (i % 2 == 0)
- {
- year = int.Parse(tiresData[i]);
- }
- else
- {
- var pressure = double.Parse(tiresData[i]);
- var currCarTire = new Tire(year, pressure);
- currCarTires[index++] = currCarTire;
- }
- }
- tires.Add(currCarTires);
- }
- var tiresInArr = tires.ToArray();
- var engines = new List<Engine>();
- while (true)
- {
- var input = Console.ReadLine();
- if (input == "Engines done")
- {
- break;
- }
- var engineData = input.Split();
- var horsePower = int.Parse(engineData[0]);
- var cubicCapacity = double.Parse(engineData[1]);
- var newEngine = new Engine(horsePower, cubicCapacity);
- engines.Add(newEngine);
- }
- var specialCars = new List<Car>();
- while (true)
- {
- var input = Console.ReadLine();
- if (input == "Show special")
- {
- break;
- }
- var data = input.Split();
- var make = data[0];
- var model = data[1];
- var year = int.Parse(data[2]);
- var fuelQuantity = double.Parse(data[3]);
- var fuelConsumption = double.Parse(data[4]);
- var engineIndex = int.Parse(data[5]);
- var tireIndex = int.Parse(data[6]);
- var newCar = new Car(make, model, year, fuelQuantity, fuelConsumption, engines[engineIndex], tires[tireIndex]);
- var pressureSum = 0d;
- for (int i = 0; i < tires[tireIndex].Length; i++)
- {
- pressureSum += tires[tireIndex][i].Pressure;
- }
- if (newCar.Year >= 2017 && newCar.Engine.HorsePower > 330 && pressureSum > 9 && pressureSum < 10)
- {
- specialCars.Add(newCar);
- }
- }
- for (int i = 0; i < specialCars.Count; i++)
- {
- specialCars[i].Drive(20);
- Console.WriteLine($"Make: {specialCars[i].Make} \nModel: {specialCars[i].Model} \nYear: {specialCars[i].Year} \nHorsePowers: {specialCars[i].Engine.HorsePower} \nFuelQuantity: {specialCars[i].FuelQuantity}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment