The Entire Aircraft Engine Simulation Project

 < Day Day Up > 



The best way to study the workings of this project is to see all the code laid out before you. The Aircraft Engine simulation project contains a total of fourteen source files. First the header files: aircraftutils.h, fuelpump.h, oilpump.h, tempraturesensor.h, oxygensensor.h, compressor.h, and engine.h. Then, the class implementation files: fuelpump.cpp, oilpump.cpp, temperaturesensor.cpp, oxygensensor.cpp, compressor.cpp, and engine.cpp. Lastly, the main.cpp file contains the main() functions needed to get everything running. The source files will be presented in this order with no line numbering.

aircraftutils.h

aircraftutils.h

start example
#ifndef __AIRCRAFT_UTILITIES_H #define __AIRCRAFT_UTILITIES_H enum PartStatus {NotWorking, Working}; enum EngineStatus {NotReady, Ready}; #endif
end example

fuelpump.h

fuelpump.h

start example
#ifndef FUEL_PUMP_H #define FUEL_PUMP_H #include "aircraftutils.h" class FuelPump {    public:       FuelPump(PartStatus _status = Working, short engine_number = 0);       ~FuelPump();       PartStatus isWorkingProperly();       void setStatus(PartStatus _status);       void registerWithEngineNumber(short _engine_number);       short getRegisteredEngineNumber();    private:       PartStatus status;       short registered_engine_number; }; #endif
end example

oilpump.h

oilpump.h

start example
#ifndef OIL_PUMP_H #define OIL_PUMP_H #include "aircraftutils.h" class OilPump {    public:       OilPump(PartStatus _status = Working, short engine_number = 0);       ~OilPump();       PartStatus isWorkingProperly();       void setStatus(PartStatus _status);       void registerWithEngineNumber(short _engine_number);       short getRegisteredEngineNumber();    private:        PartStatus status;        short registered_engine_number; }; #endif
end example

temperaturesensor.h

temperaturesensor.h

start example
#ifndef TEMP_SENSOR_H #define TEMP_SENSOR_H #include "aircraftutils.h" class TemperatureSensor {    public:       TemperatureSensor(PartStatus _status = Working, short engine_number = 0);       ~TemperatureSensor();       PartStatus isWorkingProperly();       void setStatus(PartStatus _status);       void registerWithEngineNumber(short _engine_number);       short getRegisteredEngineNumber();    private:       PartStatus status;       short registered_engine_number; }; #endif
end example

oxygensensor.h

oxygensensor.h

start example
#ifndef OXYGEN_SENSOR_H #define OXYGEN_SENSOR_H #include "aircraftutils.h" class OxygenSensor {    public:       OxygenSensor(PartStatus _status = Working, short engine_number = 0);       ~OxygenSensor();       PartStatus isWorkingProperly();       void setStatus(PartStatus _status);       void registerWithEngineNumber(short _engine_number);       short getRegisteredEngineNumber();    private:        PartStatus status;         short registered_engine_number; }; #endif
end example

compressor.h

compressor.h

start example
#ifndef COMPRESSOR_H #define COMPRESSOR_H #include "aircraftutils.h" class Compressor {    public:       Compressor(PartStatus _status = Working, short engine_number = 0);       ~Compressor();       PartStatus isWorkingProperly();       void setStatus(PartStatus _status);       void registerWithEngineNumber(short _engine_number);       short getRegisteredEngineNumber();    private:       PartStatus status;       short registered_engine_number; }; #endif
end example

engine.h

engine.h

start example
#ifndef ENGINE_H #define ENGINE_H #include "aircraftutils.h" #include "fuelpump.h" #include "oxygensensor.h" #include "oilpump.h" #include "compressor.h" #include "temperaturesensor.h" class Engine{   public:     Engine();     ~Engine();    EngineStatus checkEngineStatus();    void startEngine();    void stopEngine();    void setFuelPumpStatus(PartStatus _status);    void setOilPumpStatus(PartStatus _status);    void setTemperatureSensorStatus(PartStatus _status);    void setOxygenSensorStatus(PartStatus _status);    void setCompressorStatus(PartStatus _status);       private:      static short      engine_count;      FuelPump          its_fuel_pump;      OilPump           its_oil_pump;      TemperatureSensor its_temperature_sensor;      OxygenSensor      its_oxygen_sensor;      Compressor        its_compressor;      short             its_engine_number;      EngineStatus      its_status;      bool              engine_is_running; };

#endif

end example

fuelpump.cpp

fuelpump.cpp

start example
#include "aircraftutils.h" #include "fuelpump.h" #include <iostream> using namespace std; FuelPump::FuelPump(PartStatus _status, short engine_number):status(_status),                 registered_engine_number(engine_number){    switch(status){       case NotWorking: cout<<"Fuel pump "<<registered_engine_number                            <<" malfunction"<<endl;                      break;       case Working   : cout<<"Fuel pump "<<registered_engine_number<<" working"<<endl;                      break;       default        : ;   }  } FuelPump::~FuelPump(){    cout<<"Fuel pump "<<registered_engine_number<<" destroyed"<<endl; } PartStatus FuelPump::isWorkingProperly(){ return status;} void FuelPump::setStatus(PartStatus _status){ status = _status;} void FuelPump::registerWithEngineNumber(short _engine_number){    registered_engine_number = _engine_number; } short FuelPump::getRegisteredEngineNumber(){return registered_engine_number;}
end example

oilpump.cpp

oilpump.cpp

start example
#include "aircraftutils.h" #include "oilpump.h" #include <iostream> using namespace std; OilPump::OilPump(PartStatus _status, short engine_number):status(_status),                registered_engine_number(engine_number){    switch(status){       case NotWorking: cout<<"Oil pump "<<registered_engine_number<<" malfunction"<<endl;                    break;       case Working   : cout<<"Oil pump "<<registered_engine_number<<" working"<<endl;                    break;       default        : ;   }  } OilPump::~OilPump(){    cout<<"Oil pump "<<registered_engine_number<<" destroyed"<<endl; } PartStatus OilPump::isWorkingProperly(){ return status;} void OilPump::setStatus(PartStatus _status){ status = _status;} void OilPump::registerWithEngineNumber(short _engine_number){    registered_engine_number = _engine_number; } short OilPump::getRegisteredEngineNumber(){return registered_engine_number;}
end example

temperaturesensor.cpp

temperaturesensor.cpp

start example
#include "aircraftutils.h" #include "temperaturesensor.h" #include <iostream> using namespace std; TemperatureSensor::TemperatureSensor(PartStatus _status, short engine_number)                :status(_status), registered_engine_number(engine_number){    switch(status){       case NotWorking: cout<<"Temperature sensor "<<registered_engine_number                            <<" malfunction"<<endl;                       break; case Working   : cout<<"Temperature sensor "<<registered_engine_number                   <<" working"<<endl;                    break;       default        : ;   }  } TemperatureSensor::~TemperatureSensor(){    cout<<"Temperature sensor "<<registered_engine_number<<" destroyed"<<endl; } PartStatus TemperatureSensor::isWorkingProperly(){ return status;} void TemperatureSensor::setStatus(PartStatus _status){ status = _status;} void TemperatureSensor::registerWithEngineNumber(short _engine_number){    registered_engine_number = _engine_number; } short TemperatureSensor::getRegisteredEngineNumber(){return registered_engine_number;}
end example

oxygensensor.cpp

oxygensensor.cpp

start example
#include "aircraftutils.h" #include "oxygensensor.h" #include <iostream> using namespace std; OxygenSensor::OxygenSensor(PartStatus _status, short engine_number)           :status(_status), registered_engine_number(engine_number){    switch(status){       case NotWorking: cout<<"Oxygen sensor "<<registered_engine_number                       <<" malfunction"<<endl;                    break;       case Working   : cout<<"Oxygen sensor "<<registered_engine_number                       <<" working"<<endl;                    break;       default        : ;   }  } OxygenSensor::~OxygenSensor(){    cout<<"Oxygen sensor "<<registered_engine_number<<" destroyed"<<endl; } PartStatus OxygenSensor::isWorkingProperly(){ return status;} void OxygenSensor::setStatus(PartStatus _status){ status = _status;} void OxygenSensor::registerWithEngineNumber(short _engine_number){    registered_engine_number = _engine_number; } short OxygenSensor::getRegisteredEngineNumber(){return registered_engine_number;}
end example

compressor.cpp

compressor.cpp

start example
#include "aircraftutils.h" #include "compressor.h" #include <iostream> using namespace std; Compressor::Compressor(PartStatus _status, short engine_number)          :status(_status), registered_engine_number(engine_number){    switch(status){       case NotWorking: cout<<"Compressor "<<registered_engine_number                       <<" malfunction"<<endl;                    break;       case Working   : cout<<"Compressor "<<registered_engine_number                       <<" working"<<endl;                    break;       default        : ;   }  } Compressor::~Compressor(){    cout<<"Compressor "<<registered_engine_number<<" destroyed"<<endl; } PartStatus Compressor::isWorkingProperly(){ return status;} void Compressor::setStatus(PartStatus _status){ status = _status;} void Compressor::registerWithEngineNumber(short _engine_number){    registered_engine_number = _engine_number; } short Compressor::getRegisteredEngineNumber(){return registered_engine_number;} 
end example

engine.cpp

engine.cpp

start example
#include "aircraftutils.h" #include "fuelpump.h" #include "oxygensensor.h" #include "oilpump.h" #include "compressor.h" #include "temperaturesensor.h" #include "engine.h" #include <iostream> using namespace std; short Engine::engine_count = 1; Engine::Engine():its_engine_number(engine_count++), engine_is_running(false),               its_fuel_pump(Working, engine_count),               its_oil_pump(Working, engine_count),               its_temperature_sensor(Working, engine_count),              its_oxygen_sensor(Working, engine_count),               its_compressor(Working, engine_count)  {} Engine::~Engine(){    engine_count--; } EngineStatus Engine::checkEngineStatus(){    if(its_fuel_pump.isWorkingProperly()         && its_oil_pump.isWorkingProperly()        && its_temperature_sensor.isWorkingProperly()         && its_oxygen_sensor.isWorkingProperly()        && its_compressor.isWorkingProperly()){           its_status = Ready;           cout<<"All engine number "<<its_engine_number                 <<" components working properly."<<endl;           }           else{              its_status = NotReady;              cout<<"Engine number "<<its_engine_number<<" malfunction!"<<endl;              stopEngine();                            }                return its_status; } void Engine::startEngine(){    if(!engine_is_running && checkEngineStatus()){       cout<<"Engine number "<<its_engine_number<<" started."<<endl;       engine_is_running = true;    }    else cout<<"Engine number "<<its_engine_number<<" cannot start."<<endl; } void Engine::stopEngine(){    if(engine_is_running){       engine_is_running = false;       cout<<"Engine number "<<its_engine_number<<" stopped."<<endl;    }    else cout<<"Engine "<<its_engine_number<<" not running!"<<endl; } void Engine::setFuelPumpStatus(PartStatus _status){    its_fuel_pump.setStatus(_status); } void Engine::setOilPumpStatus(PartStatus _status){    its_oil_pump.setStatus(_status); } void Engine::setTemperatureSensorStatus(PartStatus _status){    its_temperature_sensor.setStatus(_status); } void Engine::setOxygenSensorStatus(PartStatus _status){    its_oxygen_sensor.setStatus(_status); } void Engine::setCompressorStatus(PartStatus _status){    its_compressor.setStatus(_status); } 
end example

main.cpp

main.cpp

start example
#include <iostream> using namespace std;  #include "engine.h" int main(){       Engine e1,e2;        e1.checkEngineStatus();    e2.checkEngineStatus();    e1.stopEngine();    e1.startEngine();    e2.startEngine();    e1.setCompressorStatus(NotWorking);    e1.checkEngineStatus();        return 0; }
end example



 < Day Day Up > 



C++ for Artists. The Art, Philosophy, and Science of Object-Oriented Programming
C++ For Artists: The Art, Philosophy, And Science Of Object-Oriented Programming
ISBN: 1932504028
EAN: 2147483647
Year: 2003
Pages: 340
Authors: Rick Miller

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