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