Summary


Complete Aircraft Engine Simulation Code Listing

Example 10.9: Engine.java

image from book
 1     public class Engine { 2       private Compressor its_compressor = null; 3       private FuelPump its_fuelpump = null; 4       private OilPump its_oilpump = null; 5       private OxygenSensor its_oxygensensor = null; 6       private TemperatureSensor its_temperaturesensor = null; 7       private int its_engine_number = 0; 8       private boolean is_running = false; 9       private PartStatus its_status = null; 10 11      public Engine(int engine_number){ 12        its_engine_number = engine_number; 13        its_compressor = new Compressor(PartStatus.WORKING, its_engine_number); 14        its_fuelpump = new FuelPump(PartStatus.WORKING, its_engine_number); 15        its_oilpump = new OilPump(PartStatus.WORKING, its_engine_number); 16        its_oxygensensor = new OxygenSensor(PartStatus.WORKING, its_engine_number); 17        its_temperaturesensor = new TemperatureSensor(PartStatus.WORKING, its_engine_number); 18        its_status = PartStatus.WORKING; 19        System.out.println("Engine #" + its_engine_number + " created!"); 20      } 21 22      public void setCompressorStatus(PartStatus status){ 23        its_compressor.setPartStatus(status); 24        checkEngineStatus(); 25      } 26 27      public void setFuelPumpStatus(PartStatus status){ 28        its_fuelpump.setPartStatus(status); 29        checkEngineStatus(); 30 31      } 32 33      public void setOilPumpStatus(PartStatus status){ 34        its_oilpump.setPartStatus(status); 35        checkEngineStatus(); 36      } 37 38      public void setOxygenSensorStatus(PartStatus status){ 39        its_oxygensensor.setPartStatus(status); 40        checkEngineStatus(); 41      } 42 43      public void setTemperatureSensor(PartStatus status){ 44        its_temperaturesensor.setPartStatus(status); 45        checkEngineStatus(); 46      } 47 48      public boolean checkEngineStatus(){ 49        if(its_compressor.isWorking() && its_fuelpump.isWorking() && 50           its_oilpump.isWorking() && its_oxygensensor.isWorking() && 51           its_temperaturesensor.isWorking()){ 52             its_status = PartStatus.WORKING; 53             System.out.println("All engine #" + its_engine_number + " components working properly."); 54           } else { 55                    its_status = PartStatus.NOT_WORKING; 56                    System.out.println("Engine #" + its_engine_number + " malfunction."); 57                    if(is_running){ 58                      System.out.println("Engine #" + its_engine_number + " shutting down!"); 59                      stopEngine(); 60                    } 61                  } 62 63          return its_status.isWorking(); 64        } 65 66        public void startEngine(){ 67          if(!is_running){ 68           if(checkEngineStatus()){ 69             is_running = true; 70              System.out.println("Engine #" + its_engine_number + " is running!"); 71           } else { 72                  System.out.println("There is a problem with an engine #" + its_engine_number 73                               + " component. Engine cannot start."); 74                  } 75        } else { 76                System.out.println("Engine #" + its_engine_number + " is already running!"); 77               } 78      } 79 80      public void stopEngine(){ 81         is_running = false; 82         System.out.println("Engine #" + its_engine_number + " has been stopped!"); 83      } 84 85     }
image from book

Example 10.10: Compressor.java

image from book
 1     public class Compressor { 2       private int registered_engine_number = 0; 3       private PartStatus part_status; 4 5       public Compressor(PartStatus status, int engine_number){ 6        registered_engine_number = engine_number; 7        part_status = status; 8        System.out.println("Compressor Created..."); 9       } 10 11      public boolean isWorking(){ return part_status.isWorking(); } 12 13      public void setPartStatus(PartStatus status){ 14        part_status = status; 15      } 16 17      public void setRegisteredEngineNumber(int engine_number){ 18         registered_engine_number = engine_number; 19      } 20 21      public int getRegisteredEngineNumber(){ return registered_engine_number;} 22    }
image from book

Example 10.11: FuelPump.java

image from book
 1     public class FuelPump { 2       private int registered_engine_number = 0; 3       private PartStatus part_status; 4 5       public FuelPump(PartStatus status, int engine_number){ 6        registered_engine_number = engine_number; 7        part_status = status; 8        System.out.println("FuelPump Created..."); 9       } 10 11      public boolean isWorking(){ return part_status.isWorking(); } 12  13      public void setPartStatus(PartStatus status){ 14        part_status = status; 15      } 16 17      public void setRegisteredEngineNumber(int engine_number){ 18         registered_engine_number = engine_number; 19      } 20 21      public int getRegisteredEngineNumber(){ return registered_engine_number; } 22    }
image from book

Example 10.12: OilPump.java

image from book
 1     public class OilPump { 2       private int registered_engine_number = 0; 3       private PartStatus part_status; 4 5       public OilPump(PartStatus status, int engine_number){ 6        registered_engine_number = engine_number; 7        part_status = status; 8        System.out.println("OilPump Created..."); 9       } 10 11      public boolean isWorking(){ return part_status.isWorking(); } 12 13      public void setPartStatus(PartStatus status){ 14        part_status = status; 15      } 16 17      public void setRegisteredEngineNumber(int engine_number){ 18        registered_engine_number = engine_number; 19     } 20 21     public int getRegisteredEngineNumber(){ return registered_engine_number; } 22    }
image from book

Example 10.13: OxygenSensor.java

image from book
 1    public class OxygenSensor { 2      private int registered_engine_number = 0; 3      private PartStatus part_status; 4  5      public OxygenSensor(PartStatus status, int engine_number){ 6       registered_engine_number = engine_number; 7       part_status = status; 8       System.out.println("OxygenSensor Created..."); 9      } 10 11     public boolean isWorking(){ return part_status.isWorking(); } 12 13     public void setPartStatus(PartStatus status){ 14       part_status = status; 15     } 16 17     public void setRegisteredEngineNumber(int engine_number){ 18        registered_engine_number = engine_number; 19     } 20 21     public int getRegisteredEngineNumber(){ return registered_engine_number; } 22   }
image from book

Example 10.14: TemperatureSensor.java

image from book
 1    public class TemperatureSensor { 2      private int registered_engine_number = 0; 3      private PartStatus part_status; 4 5      public TemperatureSensor(PartStatus status, int engine_number){ 6       registered_engine_number = engine_number; 7       part_status = status; 8       System.out.println("TemperatureSensor Created..."); 9      } 10 11     public boolean isWorking(){ return part_status.isWorking(); } 12 13     public void setPartStatus(PartStatus status){ 14       part_status = status; 15     } 16 17     public void setRegisteredEngineNumber(int engine_number){ 18        registered_engine_number = engine_number; 19     } 20 21     public int getRegisteredEngineNumber(){ return registered_engine_number; } 22   }
image from book

Example 10.15: PartStatus.java

image from book
 1    public class PartStatus { 2      private boolean its_status = false; 3 4      public static final PartStatus WORKING = new PartStatus(true); 5      public static final PartStatus NOT_WORKING = new PartStatus(false); 6 7      private PartStatus(boolean status){ 8         its_status = status; 9      } 10 11     public boolean isWorking(){ return its_status; } 12 13   }
image from book

Example 10.16: EngineTester.java

image from book
 1    public class EngineTester { 2      public static void main(String[] args){ 3       Engine e1 = new Engine(1); 4       e1.startEngine(); 5       e1.setCompressorStatus(PartStatus.NOT_WORKING); 6       e1.startEngine(); 7       e1.startEngine(); 8       e1.setCompressorStatus(PartStatus.WORKING); 9       e1.startEngine(); 10     } 11   }
image from book




Java For Artists(c) The Art, Philosophy, and Science of Object-Oriented Programming
Java For Artists: The Art, Philosophy, And Science Of Object-Oriented Programming
ISBN: 1932504052
EAN: 2147483647
Year: 2007
Pages: 452

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net