Tudnátok segíteni az alábbi programban? (c++)
Készítsen objektummodellt az autópálya forgalmának modellezésére!
Egy L cellára osztott autópályán N autó van. Egy cellában csak egy autó tartózkodhat egyszerre, így L-N cella üres. Minden autónak van egy egész értékű sebessége.
A szimulációt ciklusonként végezzük.
Minden ciklusban minden autóra elvégezzük a következő műveleteket:
1. Ha egy autó sebessége még nem érte el a maximumot (5), akkor a sebességét eggyel megnöveljük.
2. Ha egy autó előtt levő üres cellák száma (az előtte levő autóig)kisebb, mint a sebessége, akkor az autó sebességet lecsökkentjük az előtte levő üres cellák számának megfelelő értékre.
3. Egy adott p(=0.15) valószínűséggel lecsökkentjük a mozgó autók sebességet eggyel. (Vezetők figyelmetlensége).
4. Minden autót előremozgatunk annyi cellával, amennyi a sebessége.
Egyszerű karakteres kimenetet feltételezve "rajzolja ki" az autópálya állapotát egy-egy szimulációs ciklus után.
Eredetileg úgy akartam, hogy egyetlen osztályt csinálok, melyben lesz egy tetszőleges méretű tömb és ebben, az üres cellák 0-ák lennének az autók pedig a sebességüknek megfelelő érték.
De a tanár problémája ezzel az volt, hogy nem objektummodell.
Ő azt javasolta, hogy legyen egy Autopalya,Cella,Auto osztály és ezek között a megfelelő osztálykapcsolatok:
(öröklés, asszociáció, kompozíció, aggregáció)
Szóval eben kéne segítség, hogy ezek hogy is nézhetnének ki?És a fenti 4 függvény mind az Autopalya class-ban legyen?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Legyen egy Autó osztályod, aminek van ID-je és sebessége.
Legyen egy Cella osztályod is, aminek mondjuk ID-je van és egy Autó objektumot tartalmaz.
Aztán kell még egy Autópálya osztály, ami tartalmazza cella objektumok egy listáját.
Utána pedig össze lehet őket drótozni.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Miért ne lehetne megoldani?
Ha már úgy is kell konstruktort írni, akkor az autópálya osztály konstruktora lehetne a pálya hossza. Először bekéred a hosszt, majd létrehozod az objektumot.
Valahogy így?Vagy ez nagyon rossz?
class Auto{
protected:
int sebesseg;
};
class Cella{
protected:
Auto car;
};
class Autopalya{
Cella* hossz;
int meret;
public:
Autopalya(){}
Autopalya(int siz=20,int kocsi_db=5):meret(siz){
hossz=new Cella[meret];
//és ide írjam a véletlen helyekre történő autó
begenerálást?Ha igen hogy?
}
};
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Valahogy így...
Generálj random számokat 0 és a méret között. Adott szám esetén nézd meg, hogy ott van-e már autó, ha nincs, akkor tegyél oda, ha van, akkor generálj egy új számot a foglalt helyett.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!