00001 00006 #ifndef __GENERATOR_ 00007 #define __GENERATOR_ 00008 00009 #include <time.h> 00010 #include <stdlib.h> 00011 00012 #include "Fahrzeug.h" 00013 #include "Fehler.h" 00014 #include "Konstanten.h" 00015 #include "Liste.h" 00016 00021 class Generator : public ListenDaten 00022 { 00023 public: 00024 Generator( ); 00025 Generator(Spur *spur, long int id); 00026 00027 void takt(double zeitintervall); 00028 00029 void setzeAnzahlFahrzeuge(int anzahl); 00030 void setzeFahrzeugeigenschaften(int typ, double beschleunigungPositiv, double beschleunigungNegativ, int lebensdauer, double laenge, Koordinaten farbe, double hoechstgeschwindigkeit ); 00031 void wegpunktHinzufuegen( int richtung ); 00032 void setzeTaktZeit( double zeitintervall ); 00033 void setzeFahrzeugliste( Liste *fahrzeugliste ); 00034 00035 long int gibId(); 00036 int gibAnzahlFahrzeuge(); 00037 int gibAktuelleAnzahlFahrzeuge(); 00038 bool sollEntferntWerden(); 00039 void aufraeumen(); 00040 00041 void inString( ); 00042 void exportieren( string cvsDateiname ); 00043 friend ostream &operator<< ( ostream &os, Generator *generator ); 00044 00045 private: 00046 void zufall(); 00047 void erstelleFahrzeug(); 00048 void clear(); 00049 int zufallszahl( int minimum, int maximum ); 00050 00051 int anzahlFahrzeuge_; 00052 int aktuelleAnzahlFahrzeuge_; 00053 Spur *spur_; 00054 Liste *fahrzeugliste_; 00055 bool zufallsFlag_; 00056 double taktZeit_; 00057 double letzteErstellungszeit_; 00058 00059 int fahrzeugTyp_; 00060 double fahrzeugBeschleunigungPositiv_; 00061 double fahrzeugBeschleunigungNegativ_; 00062 int fahrzeugLebensdauer_; 00063 double fahrzeugLaenge_; 00064 Koordinaten fahrzeugFarbe_; 00065 double fahrzeugHoechstgeschwindigkeit_; 00066 int *fahrzeugFahrtenbuch_; 00067 int fahrzeugAnzahlWegpunkte_; 00068 00069 }; 00070 00071 #endif 00072 00073