gmiteva

CarPark_ProgramFile

May 11th, 2019
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.84 KB | None | 0 0
  1. namespace Exam
  2. {
  3.     using System;
  4.     using System.Collections.Generic;
  5.     using System.Linq;
  6.     using System.Threading.Tasks;
  7.     class StartUp
  8.     {
  9.         static Dictionary<string, Car> cars = new Dictionary<string, Car>(); // model Car
  10.         static Dictionary<string, Part> parts = new Dictionary<string, Part>(); // name Part
  11.         static void Main(string[] args)
  12.         {
  13.             string command;
  14.  
  15.             while ((command = Console.ReadLine()) != "End")
  16.             {
  17.                 string[] commandArgs = command.Split(' ').ToArray();
  18.  
  19.                 switch (commandArgs[0])
  20.                 {
  21.                     case "OrderCar":
  22.                         OrderCar(commandArgs.Skip(1).ToArray());
  23.                         break;
  24.                     case "CreatePart":
  25.                         CreatePart(commandArgs.Skip(1).ToArray());
  26.                         break;
  27.                     case "PrintPartByName":
  28.                         PrintPartByName(commandArgs.Skip(1).ToArray());
  29.                         break;
  30.                     case "PrintCarByModel":
  31.                         PrintCarByModel(commandArgs.Skip(1).ToArray());
  32.                         break;
  33.                     case "AddPartToCar":
  34.                         AddPartToCar(commandArgs.Skip(1).ToArray());
  35.                         break;
  36.                     case "AddMultiplePartsToCar":
  37.                         AddMultiplePartsToCar(commandArgs.Skip(1).ToArray());
  38.                         break;
  39.                     case "RemovePartFromCar":
  40.                         RemovePartFromCar(commandArgs.Skip(1).ToArray());
  41.                         break;
  42.                     case "PrintCarPrice":
  43.                         PrintCarPrice(commandArgs.Skip(1).ToArray());
  44.                         break;
  45.                     case "PrintPartPrice":
  46.                         PrintPartPrice(commandArgs.Skip(1).ToArray());
  47.                         break;
  48.                     case "CarContainsPart":
  49.                         CarContainsPart(commandArgs.Skip(1).ToArray());
  50.                         break;
  51.                     case "PrintCarMostExpencivePart":
  52.                         PrintCarMostExpencivePart(commandArgs.Skip(1).ToArray());
  53.                         break;
  54.                     case "PrintCarPartsWithPriceAbove":
  55.                         PrintCarPartsWithPriceAbove(commandArgs.Skip(1).ToArray());
  56.                         break;
  57.                     case "DriveCar":
  58.                         DriveCar(commandArgs.Skip(1).ToArray());
  59.                         break;
  60.                     case "PrintTotalCarOrders":
  61.                         PrintTotalCarOrders();
  62.                         break;
  63.                 }
  64.             }
  65.         }
  66.         static void OrderCar(string[] args)
  67.         {
  68.             try
  69.             {
  70.                 Car car = new Car(args[0], args[1], double.Parse(args[2]));
  71.                 cars.Add(car.Model, car);
  72.             }
  73.             catch (Exception ex)
  74.             {
  75.                 Console.WriteLine(ex.Message);
  76.             }
  77.         }
  78.         static void CreatePart(string[] args)
  79.         {
  80.             try
  81.             {
  82.                 Part part = null;
  83.                 if (args.Length == 2)
  84.                 {
  85.                     part = new Part(args[0], double.Parse(args[1]));
  86.                 }
  87.                 else
  88.                 {
  89.                     part = new Part(args[0]);
  90.                 }
  91.  
  92.                 parts.Add(part.Name, part);
  93.             }
  94.             catch (Exception ex)
  95.             {
  96.                 Console.WriteLine(ex.Message);
  97.             }
  98.         }
  99.         static void PrintPartByName(string[] args)
  100.         {
  101.             Console.WriteLine(parts[args[0]]);
  102.         }
  103.         static void PrintCarByModel(string[] args)
  104.         {
  105.             Console.WriteLine(cars[args[0]]);
  106.         }
  107.         static void AddPartToCar(string[] args)
  108.         {
  109.             Car car = cars[args[0]];
  110.             Part part = parts[args[1]];
  111.  
  112.             car.AddPart(part);
  113.         }
  114.         static void AddMultiplePartsToCar(string[] args)
  115.         {
  116.             Car car = cars[args[0]];
  117.             var partsList = new List<Part>();
  118.  
  119.             foreach (var p in args.Skip(1))
  120.             {
  121.                 Part part = parts[p];
  122.                 partsList.Add(part);
  123.             }
  124.  
  125.             car.AddMultipleParts(partsList);
  126.         }
  127.         static void RemovePartFromCar(string[] args)
  128.         {
  129.             cars[args[0]].RemovePartByName(args[1]);
  130.         }
  131.         static void PrintCarPrice(string[] args)
  132.         {
  133.             Console.WriteLine($"{cars[args[0]].Model} with price = {cars[args[0]].GetCarPrice():F2}");
  134.         }
  135.         static void PrintPartPrice(string[] args)
  136.         {
  137.             Console.WriteLine($"{parts[args[0]].Name} with price = {parts[args[0]].Price:F2}");
  138.         }
  139.         static void CarContainsPart(string[] args)
  140.         {
  141.             Console.WriteLine(cars[args[0]].ContainsPart(args[1]));
  142.         }
  143.         static void PrintCarMostExpencivePart(string[] args)
  144.         {
  145.             Console.WriteLine(cars[args[0]].GetMostExpensivePart());
  146.         }
  147.         static void PrintCarPartsWithPriceAbove(string[] args)
  148.         {
  149.             Console.WriteLine(cars[args[0]].Model + " with parts more expensive than " + args[1] + ": ");
  150.             Console.WriteLine(string.Join("",
  151.             cars[args[0]].GetPartsWithPriceAbove(double.Parse(args[1]))));
  152.         }
  153.         static void DriveCar(string[] args)
  154.         {
  155.             try
  156.             {
  157.                 cars[args[0]].Drive(double.Parse(args[1]));
  158.             }
  159.             catch (ArgumentException ex)
  160.             {
  161.                 Console.WriteLine(ex.Message);
  162.             }
  163.         }
  164.         static void PrintTotalCarOrders()
  165.         {
  166.             Console.WriteLine(Car.OrdersCount);
  167.         }
  168.  
  169.     }
  170. }
Add Comment
Please, Sign In to add comment