KNikov

carSalesman

Jun 25th, 2016
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.90 KB | None | 0 0
  1. package carSalesman;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. public class Main {
  10.     static List<Car> carList = new ArrayList<>();
  11.     static List<Engine> engineList = new ArrayList<>();
  12.  
  13.     public static void main(String[] args) throws IOException {
  14.         BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  15.         int engineCount = Integer.parseInt(bf.readLine());
  16.         for(int i = 0;i <engineCount ;i++){
  17.             String [] engineInput = bf.readLine().split("\\s+");
  18.             addEngine(engineInput);
  19.         }
  20.         int carCount = Integer.parseInt(bf.readLine());
  21.         for(int i = 0; i< carCount;i++){
  22.             String [] carInput = bf.readLine().split("\\s+");
  23.             addCar(carInput);
  24.         }
  25.         carList.stream().forEach(System.out::println);
  26.     }
  27.  
  28.     private static void addCar(String[] carInput) {
  29.  
  30.         String carModel = carInput[0];
  31.         String engineModel = carInput[1];
  32.         String carWeight = null;
  33.         String  carColor = null;
  34.  
  35.         if(carInput.length>2){
  36.             carWeight = tryParse(carInput[2]);
  37.             carColor = carInput.length>3 ? carInput[3] : carWeight==null ? carInput[2] : null;
  38.         }
  39.         for(Engine engine : engineList){
  40.             if(engine.getEngineModel().equals(engineModel)){
  41.                 Car currentCar = new Car(carModel,engine,carWeight,carColor);
  42.                 carList.add(currentCar);
  43.                 break;
  44.             }
  45.         }
  46.     }
  47.  
  48.     public static void addEngine(String[] engineInput){
  49.         String engineModel = engineInput[0];
  50.         Integer enginePower = Integer.parseInt(engineInput[1]);
  51.         String engineDisplacement = null;
  52.         String engineEfficiency = null;
  53.         if(engineInput.length>2){
  54.             engineDisplacement = tryParse(engineInput[2]);
  55.             engineEfficiency = engineInput.length>3 ? engineInput[3] : engineDisplacement==null ? engineInput[2] : null;
  56.         }
  57.         Engine currentEngine = new Engine(engineModel,enginePower,engineDisplacement,engineEfficiency);
  58.         engineList.add(currentEngine);
  59.     }
  60.     public static String tryParse(Object obj) {
  61.         String retVal;
  62.         Integer tryNum;
  63.         try {
  64.             tryNum = Integer.parseInt((String) obj);
  65.             retVal = tryNum.toString();
  66.         } catch (NumberFormatException nfe) {
  67.             retVal = null;
  68.         }
  69.         return retVal;
  70.     }
  71. }
  72.  class Engine {
  73.     String engineModel;
  74.     Integer enginePower;
  75.     String engineDisplacement;
  76.     String efficiency;
  77.  
  78.     Engine(String model, Integer power, String displacement, String efficiency) {
  79.         this.setEngineModel(model);
  80.         this.setEnginePower(power);
  81.         this.setEngineDisplacement(displacement);
  82.         this.setEfficiency(efficiency);
  83.     }
  84.  
  85.     public String getEngineModel() {
  86.         return this.engineModel;
  87.     }
  88.  
  89.     private void setEngineModel(String engineModel) {
  90.         this.engineModel = engineModel;
  91.     }
  92.  
  93.     public int getEnginePower() {
  94.         return this.enginePower;
  95.     }
  96.  
  97.     private void setEnginePower(Integer enginePower) {
  98.         this.enginePower = enginePower;
  99.     }
  100.  
  101.     public String getEngineDisplacement() {
  102.         return this.engineDisplacement;
  103.     }
  104.  
  105.     private void setEngineDisplacement(String engineDisplacement) {
  106.         if (engineDisplacement == null) {
  107.             this.engineDisplacement = "n/a";
  108.             return;
  109.         }
  110.         this.engineDisplacement = engineDisplacement;
  111.     }
  112.  
  113.     public String getEfficiency() {
  114.         return this.efficiency;
  115.     }
  116.  
  117.     private void setEfficiency(String efficiency) {
  118.         if (efficiency == null) {
  119.             this.efficiency = "n/a";
  120.             return;
  121.         }
  122.         this.efficiency = efficiency;
  123.     }
  124. }
  125.  class Car {
  126.     private String carModel;
  127.     private Engine carEngine;
  128.     private String carWeight;
  129.     private String carColor;
  130.  
  131.     public Car(String carModel, Engine carEngine, String carWeight, String carColor) {
  132.         this.setCarModel(carModel);
  133.         this.setCarEngine(carEngine);
  134.         this.setCarWeight(carWeight);
  135.         this.setCarColor(carColor);
  136.     }
  137.  
  138.     public String getCarModel() {
  139.         return carModel;
  140.     }
  141.  
  142.     private void setCarModel(String carModel) {
  143.         this.carModel = carModel;
  144.     }
  145.  
  146.     public Engine getCarEngine() {
  147.         return carEngine;
  148.     }
  149.  
  150.     private void setCarEngine(Engine carEngine) {
  151.         this.carEngine = carEngine;
  152.     }
  153.  
  154.     public String getCarWeight() {
  155.         return carWeight;
  156.     }
  157.  
  158.     public void setCarWeight(String carWeight) {
  159.         if (carWeight == null) {
  160.             this.carWeight = "n/a";
  161.             return;
  162.         }
  163.         this.carWeight = carWeight;
  164.     }
  165.  
  166.     public String getCarColor() {
  167.         return carColor;
  168.     }
  169.  
  170.     private void setCarColor(String carColor) {
  171.         if (carColor == null) {
  172.             this.carColor = "n/a";
  173.             return;
  174.         }
  175.         this.carColor = carColor;
  176.     }
  177.  
  178.     @Override
  179.     public String toString() {
  180.         StringBuilder carBuilder = new StringBuilder();
  181.         carBuilder.append(String.format("%s:\n",this.getCarModel()));
  182.         carBuilder.append(String.format("  %s:\n",this.getCarEngine().getEngineModel()));
  183.         carBuilder.append(String.format("\tPower: %d\n",this.getCarEngine().getEnginePower()));
  184.         carBuilder.append(String.format("\tDisplacement: %s\n",this.getCarEngine().getEngineDisplacement()));
  185.         carBuilder.append(String.format("\tEfficiency: %s\n",this.getCarEngine().getEfficiency()));
  186.         carBuilder.append(String.format("  Weight: %s\n",this.getCarWeight()));
  187.         carBuilder.append(String.format("  Color: %s",this.getCarColor()));
  188.  
  189.         String output = carBuilder.toString();
  190.         return output;
  191.     }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment