00001
00006 #ifndef __FAHRZEUG_
00007 #define __FAHRZEUG_
00008
00009 #include <iostream>
00010 using namespace std;
00011
00012 #include "ListenDaten.h"
00013 #include "Koordinaten.h"
00014 class Spur;
00015 #include "Spur.h"
00016
00021 class Fahrzeug : public ListenDaten
00022 {
00023 public:
00024 Fahrzeug( );
00025 Fahrzeug( int typ,
00026 double laenge,
00027 Koordinaten farbe,
00028 double beschleunigungPositiv,
00029 double beschleunigungNegativ,
00030 double hoechstgeschwindigkeit,
00031 Spur *spur,
00032 double lebensdauer,
00033 long int id = 0 );
00034
00035 void takt( double zeitintervall );
00036 void fahren( double zeitintervall );
00037 void setzeFahrtenbuch(int *fahrtenbuch, int anzahlWegpunkte);
00038
00039 double gibPosition( );
00040 Spur *gibSpur( );
00041 Koordinaten gibFarbe( );
00042 double gibLaenge( );
00043 int gibTyp();
00044 void aufraeumen();
00045 int gibNaechsteRichtung();
00046 void exportieren( string cvsDateiname );
00047
00048 bool istBremsend();
00049 bool sollEntferntWerden();
00050
00051 void inString( );
00052 friend ostream &operator<< ( ostream &os, Fahrzeug *fahrzeug );
00053
00054 private:
00055 void clear();
00056 double gibAbstandZumVordermann( );
00057 double gibAbstandZurKreuzung();
00058 void beschleunigePositiv( double zeitintervall );
00059 void beschleunigeNegativ( double zeitintervall, double intensivitaet );
00060 void beschleunigeNicht( double zeitintervall );
00061 void wechselSpur( Spur *spur = 0 );
00062 double gibBremsweg( );
00063
00064 double beschleunigungPositiv_;
00065 double beschleunigungNegativ_;
00066 double hoechstgeschwindigkeit_;
00067
00068 double geschwindigkeit_;
00069 double kilometerstand_;
00070 double alter_;
00071 double aktuellePosition_;
00072 Spur *aktuelleSpur_;
00073 Spur *naechsteSpur_;
00074 int naechsteRichtung_;
00075 double lebensdauer_;
00076 int *fahrtenbuch_;
00077 int anzahlWegpunkte_;
00078 int aktuellerWegpunkt_;
00079
00080 int typ_;
00081 Koordinaten farbe_;
00082 double laenge_;
00083
00084 int bremst_;
00085 };
00086
00087 #endif