Személyes eszközök
Keresés

 

A InfoWiki wikiből


Tartalomjegyzék

Zár osztály

Egy 'ZÁR' objektumot jellemez egy egész szám, amely a zárkombinációt tartalmazza. A ZÁR-nak van egy 'bezar()' metódusa, amely azonnal bezárja a zárat. Van neki egy 'nyitva_e' property-e, amellyel meg lehet vizsgálni, hogy a zár nyitva van-e. Ezen túl van egy 'kinyit(kombinacio)' metódusa, amely paramétereként megkapja a kinyitáshoz szükséges kombinációs számot. Amennyiben a kombináció egyezik, a zár kinyílik, ellenkező esetben akkor is bezáródik, ha nyitva lett volna.

Egy 'FejlettZar' képes számon tartani, hogy hányszor próbálták meg kinyitni. Amennyiben a próbálkozás elér egy előre megadott mennyiséget, a zár beolvasztja saját zárszerkezetét, és soha többé nem lehet kinyitni.

Készítsünk el egy 'ZÁR' osztályt, melynek van két mezője: egy zárkombinációt tároló egész szám, és egy zár státuszt tároló karakter mező. Ebben vagy a 'N' mint NYITVA, vagy 'Z' mint zárva érték legyen. Készítsünk konstruktort, amely paraméterként megkapja a zár majdani nyitó kombinációját. A zár induláskor zárva van.

Készítsünk hozzá egy 'bezar()' metódust, amely kiírja a képernyőre az alábbi szövegek közül a megfelelőt:

  • "a zár nyitva volt, most bezáródott"
  • "a zár már eleve zárva volt, zárva marad"

Ezen túl készítsünk el egy 'kinyit(kombinacio)' metódust, amely a paraméter értékét összehasonlítja a nyitó kombinációval, és ha az egyezik, akkor kinyílik:

  • "a zár zárva volt, most kinyílik"
  • "a zár eleve nyitva volt, nyitva marad"

Készítsünk a 'ZÁR' objektumba egy 'nyitva_vane_e' csak olvasható property-t (logikai), mely megadja, hogy a zár milyen állapotban van.

Összegezve:

  • zarkombinacio mező, egész szám
  • statusz mező, karakter (N:nyitva, Z:zárva)
  • nyitva_e csak olvasható property, bool típusú
  • bezar()
  • kinyit( kombinacio )
  • konstruktor

Teszt program

Készítsünk olyan teszt programot, amely bekér induláskor egy egész számot, és ennyi db 'ZÁR' példányt helyez el egy listába, a nyitó kombinációkat véletlen értékekre beállítva 40-60 között. Majd egy maximum 1000 elemű ciklusban véletlen számokat talál ki 40-60 között, próbálgatva a nyitó kombinációkat. Csak a lezárt zárakat próbálja meg kinyitni, amelyek már nyitva vannak, azokat nyitva tartja. A ciklus korábban is leállhat, mint 1000, ha minden lakat nyitva van.

Fejlett Zár osztály

Fejlesszük tovább a ZÁR osztályunkat egy 'FejlettZar' osztállyá, amelynek van egy 'hibasProbalkozas' mezője (egész szám). Ebben a mezőben számoljuk, hányszor próbálták hibás kombinációval kinyitni a zárat. Tartalmaz ezen túl egy 'maxHiba' mezőt is, melyben azt tároljuk, hogy maximum hányszor próbálhatják meg rossz kombinációval kinyitni a zárat. A státusz mező értéke felveheti a 'S'="megsemmisült" értéket is, amennyiben a zár leolvasztja magát. Ilyen státuszban már a jó kombinációval sem lehet majd kinyitni. A kinyit(kombinacio)' metódust javítsuk ki, hogy amennyiben a hiba-számláló eléri a maximális értéket, úgy a zár beolvasztja magát. Ennek megfelelően a kiírásokat is módosítsuk, és módosítsuk még a megfelelő pontokon a metódusokat illetve a property-t.

Összegezve:

  • hibasProbalkozas mező, egész szám
  • maxHiba mező, egész szám
  • statusz mező, karakter (S:megsemmisült, N, Z)
  • kinyit(..) függvény működését módosítjuk
  • bezar() függvény módosul
  • nyitva_e property módosul
  • konstruktor

Teszt program

Módosítsuk a teszt programot, hogy megadott mennyiségű egyszerű 'ZÁR' után ugyanannyi mennyiségű 'FejlettZar' példányt is elhelyez a listában, de a továbbiakban a fentiekben leírt módon viselkedik (fejlettzár példányokat is megpróbál kinyitni, stb).

A lap eredeti címe: „http://wiki.ektf.hu/wiki/Mp4/page10
Nézetek
nincs sb_3.92.84.253 cikk