Programozási nyelvek (Java)

2011-2012-1, I. Zárthelyi feladat

A feladat leírása

Gyulafirátóton az önkormányzat a szegény nép közlekedését kerékpárkölcsönzők létesítésével segítené elő. Az önkormányzat azzal bízta meg az évfolyam tagjait, hogy írja meg a kölcsönző szoftver alapjait. A szoftver két osztályon alapszik:

A Bicycle osztály három adattaggal rendelkezik.

A bicikli színét egyszer lehet beállítani az objektum élettartama alatt, a Bicycle osztály konstansai segítségével. A színeket Stringekkel reprezentáljuk. A konstans színek a RED("red"), BLUE("blue"), GREEN("green"), YELLOW("yellow"). A bicikli a létrehozásakor adott és színe, és tudjuk, hogy szabad, vagyis nincs senki, aki kikölcsönözte (az aktuális tulajdonos nevét egy Stinggel reprezentáljuk, amikor nincs senkinél a bicikli, beállíthatjuk üres Stringre a customer adattagot). Ezeken kívül az osztályunknak néhány objektum szintű metódusa van. Meg kell tudni mondani, hogy a kerékpár szabad-e (isFree()), le kell tudni foglalni (reserve(String s)), és fel kell "szabadítani" (takeBack()) a biciklit. A reserve(String s), takeBack() metódusok akkor adnak vissza igaz értéket, ha sikerült a biciklit lefoglalni vagy visszavinni: sikertelen a foglalás, ha aktuálisan nem szabad a lefoglalni kívánt kerékpár, és sikertelen a visszavivés, ha aktuálisan nincs senkinél a bicikli. Legyenek lekérdező metódusok is a különböző adattagokhoz! A toString() metódusnak az alábbi formában kell visszaadnia egy bicikli objektum String reprezentációját: "The color of bicycle has been lended by somebody". ahol a color és a somebody helyére az adott bicikli színét és kölcsönzőjét kell írni. Ha nem kölcsönözték ki, akkor a somebody helyett nobody legyen a név helyén.

Egy Lender típusú objektum esetében a tárolót egy tömbbel reprezentáljuk. A kölcsönző létrehozásakor csak a tároló nagyságát ismerjük. A kölcsönző objektum egyik metódusa a bicikli hozzáadása (addBicycle(Bicycle b)) a tárolóhoz. A hozzáadásnál figyelj arra is, hogy ne legyen több kerékpárja, mint amennyi hely van a tárolóban. Ha sikerült a kerékpárt a tárolóba felvenni (volt még szabad hely), akkor adjon vissza igaz értéket. Ezen kívül ki kell tudni kölcsönözni egy adott színű kerékpárt egy megadott ember számára(rentBicycle(String customer, String color)). Ha ki lehetett kölcsönözni a kerékpárt (azaz volt a megadott színű bicikliből legalább egy a kölcsönzőben), akkor azt vissza is kell tudni vinni(takeBackBicycle(String customer)). A takeBackBicycle(String customer), rentBicycle(String customer, String color) metódusok igaz értéket adnak vissza, ha sikerült visszavinni vagy kikölcsönözni adott paraméterű bicikliket. A toString() metódusnak az alábbi formában adja vissza a kölcsönző String reprezentációját: The lender has free place free place(s) for bicycles, and some bicycle(s) has/have been lended. ahol a free place és a some helyére a szabad tároló helyeket és a kölcsönzött biciklik számát kell írni.

Technikai részletek

Osztályzás

A zárthelyi feladat a mellékelt tesztfájl mellett hiba nélkül kell futnia. A tesztfájlon semmilyen módosítás nem végezhető! TestClassifier.java