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