MFP05A

2005. szept. 21. HP

1. házi feladat: Notesz

Cél: A moduláris programozás gyakorlása SML-ben

Feladat: Egy olyan notesz megtervezése és megvalósítása SML-modulokkal (signature, structure, functor), amely összetett bejegyzések beírását és visszakeresését teszi lehetővé.

Egy bejegyzés a következő komponensekből állhat:

1. Név (kötelező, pontosan egy)

2. Cím (ismétlődő, legalább egy)

3. Telefonszám (ismétlődő, opcionális)

4. E-cím (ismétlődő, opcionális)

A név komponens elemei:

1. Vezetéknév-1 (füzér, kötelező, pontosan egy)

2. Vezetéknév 2 (füzér, opcionális)

3. Utónév 1 (füzér, kötelező, pontosan egy)

4. Utónév 2 (füzér, opcionális)

A cím komponens elemei:

1. Helységnév (füzér, opcionális)

2. Irányítószám (egész szám, kötelező, pontosan egy)

3. Közterület neve (füzér, kötelező, pontosan egy)

4, Házszám (füzér vagy egész szám, kötelező, pontosan egy)

A telefonszám komponens elemei:

1. Országkód (egész, kötelező, pontosan egy)

2. Körzetszám (egész, kötelező, pontosan egy)

3. Hívószám (egész, kötelező, pontosan egy)

4. Mellék száma (egész, opcionális)

5. Fajta (lehetséges értékei: Mobtel, Laktel, Lakfax, Mhtel, Mhfax stb., kötelező)

Az e-cím komponens elemei:

1. Név (füzér, kötelező, pontosan egy)

2. Első szintű domén (füzér, kötelező, pontosan egy, pl. hu)

3. Második szintű domén (füzér, kötelező, pontosan egy, pl. bme)

4. Harmadik szintű domén (füzér, kötelező, opcionális)

5. Negyedik szintű domén (füzér, kötelező, opcionális)

Törekedjék arra, hogy újrafelhasználható modulokból építse fel a programját! A modulrendszer adjon lehetőséget olyan lekérdezések megvalósítására, mint pl. “azok a László utónevű személyek, akiknek 70-es körzetszámú magyarországi mobiltelefonja van”, valamint olyan igények egyszerű kielégítésére, mint “a címeket megvalósító komponenst a többi módosítása nélkül lehessen olyanra kicserélni, amely ellenőrzi, hogy az adott irányítószám létezik-e”. A modulrendszer legyen bővíthető, továbbfejleszthető.

Beadás: a kiadástól számított két héten belül.