V této úloze procvičíme použití souborů, vstupních a výstupních operací, ale i kontejnerů, výjimek atd.
Úkolem bude realizovat jednoduchý správce osobních kontaktů (adresář), v němž bude uživatel mít možnost uchovávat kontaktní údaje o osobách. O každé osobě bude v adresáři zaznamenáno:
login (jednoznačný) - řetězec
jméno - řetězec
příjmení - řetězec
e-mail - řetězec
telefonní číslo - dlouhé celé číslo
Program by měl určitě obsahovat následují třídy, všechny ve stejném balíku (cvičící určí, jakém):
Třída správce kontaktů.
Bude umět kontakty načíst ze souboru, všechny vypsat a uložit do textového souboru. Soubor, ze kterého se čte a zapisuje, bude určen pro daný správce kontaktů jednou provždy při konstrukci. Zapisuje se do stejného souboru, z něhož se čte. Údaj o jedné osobě bude uložen na právě jednom řádku textového souboru ve formátu: login jméno příjmení e-mail telefon. Jednotlivá pole řádku vstupu jsou oddělena vždy jednou mezerou. Telefon je dlouhé celé číslo, jinak jsou to řetězce. Můžeme předpokládat, že údaje jsou v souboru vždy ve správném formátu, tj. nemusíme chyby vstupu/uživatele detekovat.
Správce kontaktů musí umět zařadit nový kontakt - pozor, login osobu jednoznačně určuje, proto vložením nové osoby s loginem, který už některá stávající osoba má, bude stávající osoba nahrazena.
Dále musí umět vyřadit osobu s daným loginem.
Třída osob.
Každá osoba nese výše uvedené údaje (tj. login, jméno, příjmení, e-mail a telefonní číslo).
Osoba musí umět vypsat nebo vrátit v řetězcové podobě údaje o sobě.
Demo třída. Udělá po řadě následující operace:
Vytvoří správce kontaktů, tj. jeden objekt typu AddressBook, načtením z textového souboru, jehož jméno je zadáno jako první argument na příkazovém řádku při spuštění aplikace. Nad takto inicializovaným správcem provede následující operace:
Načtené kontakty vypíše.
Načte od uživatele, z příkazového řádku (std. vstupu), údaje o jedné osobě (login, jméno, příjmení, e-mail a telefonní číslo), vytvoří osobu a přidá do správce kontaktů.
Načte od uživatele, z příkazového řádku (std. vstupu), login osoby, kterou chce smazat, a osobu s tímto loginem ze správce kontaktů smaže.
Vypíše všechny kontakty.
Uloží všechny kontakty zpět do souboru na disk.
Poznámka | |
---|---|
Pro inspiraci: takto nějak může (ale nemusí) vypadat metoda na načítání kontaktů na osoby ze souboru: |