Java és C++ gyakorlat fizikus–informatikusoknak

2. zárthelyi dolgozat

2004. december 16., csütörtök

1. Írjon olyan Java alkalmazást, amely egy közösség történetét modellezi a következőképpen:

• Definiáljunk kétféle szál (Thread) osztályt: nők, férfiak. Példányosítsunk és indítsunk el néhány objektumot mindkét típusból a főprogram segítségével!

• A szálak véletlenszerű véges élettartammal és egyedi névvel rendelkezzenek.

• A szálak élettartamuk meghatározott szakaszában véletlenszerűen üzeneteket küldenek a másik típusú szálaknak. Ha adott időn belül válasz érkezik rá, akkor a két szál a továbbiakban összetartozik (házasság, vérrokonok között kizárva!), és már csak egymással váltanak üzeneteket. Az utóbbi üzenetváltások (amelyek mindkét részről véletlenszerűek) válasz érkezésekor egyik vagy másik típusú újabb szálakat indítanak (gyerekek). Az azonosító nevek értelemszerűen adandók. Minden szál nyilvántartja, hogy mely szálakból indult és mely szálakat indított (szülők, gyerekek).

• A szálak indításkor és leálláskor adataikat az anya.konyv fájlba írják (születéskor: időpont, név, anyja és apja neve, halálozáskor: időpont, név, házastárs és gyerekek neve).

2. Írjunk olyan grafikus Java alkalmazást, amely két labdát jelenít meg, amelyek egy téglalap alakú dobozban tökéletesen rugalmasan pattognak (a doboz falán és egymáson). A forgás hatását hanyagoljuk el, de a labdák véges méretét vegyük figyelembe! Két ütközés között a labdák egyenesvonalú egyenletes mozgást végeznek.

3. Írjunk olyan appletet (beágyazó html oldallal együtt), amely egy forgalmi jelzőlámpát és egy nyomógombot jelenít meg. A jelzőlámpa (szürke téglalapban három egymás alatti kör) kezdetben a szokásos piros, pirossárga, zöld, sárga ciklusban váltja a színeit. A nyomógomb megnyomása után villogó sárgára vált, újabb gombnyomásra kikapcsol. A következő gombnyomásokra újra végigmegy a fenti állapotokon.