Zajęcia 6: Centrum sterowania

Transkrypt

Zajęcia 6: Centrum sterowania
15
Zajęcia 6: Centrum sterowania
Zajęcia będą polegały na opracowaniu prostego interfejsu działającego w trybie tekstowym,
wykorzystujący opracowane na poprzednich zajęciach klasy Data, Osoba i ich funkcje
składowe.
Na początek w funkcji głównej (main) stwórz tablice 10-elementową obiektów klasy Osoba:
Osoba tablica[10];
i zmienną ‘wypelnienie’ określającą aktualną wypełnienie tablicy:
int wypelnienie=0;
Bazując na takiej tablicy opracuj następujące opcje interfejsu:
•
•
•
•
•
•
•
wypełnianie jednej osoby w tablicy (tablice należy wypełniać zaczynając od zerowego
elementu tablicy kończąc na elemencie dziewiątym). W przypadku, gdy wypełnione
zostaną wszystkie elementy tablicy poinformować (tzn. wypisać na ekranie), że w tablicy
nie ma już miejsca na nowy wpis,
np. jeśli chcemy wypełnić element zerowy tablicy piszemy następującą instrukcję:
tablica[0].Wpisz();
czyli używamy funkcji Wpisz na rzecz obiektu Osoba
wypisywanie na ekran listę wstawionych (wypełnionych) osób w tablicy,
wyszukiwanie osób w tablicy o zadanym imieniu i wypisaniu listy znalezionych osób,
wyszukiwanie osób w tablicy o zadanym nazwisku i wypisaniu listy znalezionych osób,
modyfikacja wybranej osoby w tablicy (o zadanym przez użytkownika indeksie)
usuwanie wybranej osoby w tablicy (o zadanym przez użytkownika indeksie),
zakończenie programu
___________________________________________________________________________
Katedra Podstaw Elektroniki
Programowanie Obiektowe - Studia podyplomowe - Technologie Internetowe
r.a. 2007/2008 semestr zimowy
16
Zajęcia 7: Rozbudowa klas – konstruktor, destruktor, dynamiczna alokacja
pamięci
Dla klasy Data
• Utwórz konstruktor domyślny:
Data(int d = 1, int m = 1, int r = 2003);
Pamiętaj, że nie może być wtedy zadeklarowany konstruktor bezparametrowy Data();.
Przy definicji nie powtarzamy wartości domyślnych.
Modyfikacja klasy Osoba
• Zmodyfikuj dane składowe tak aby imię i nazwisko były wskaźnikami:
char *imie;
char *nazwisko;
Rezygnacja z tablic o stałej długości wymaga wykorzystania operatorów new i delete.
• Utwórz konstruktor domyślny:
Osoba(const char* im = "", const char * naz = "", int dzien = 1,
int miesiac =1, int rok =2000);
(Przy definicji nie powtarzamy wartości domyślnych.)
• W destruktorze umieść instrukcje zwalniające pamięć dla pól imie i nazwisko.
• Zmodyfikuj pozostałe funkcje, gdzie występuje potrzeba zainicjowania lub zmiany
składowych imie lub nazwisko.
Uwaga:
Ekonomicznym (z punktu widzenia nakładu pracy) sposobem rozwiązania problemu
dynamicznej alokacji pamięci dla składników klasy Osoba jest:
1. Opracowanie (lub modyfikacja) funkcji ustawiających dane składowe:
Imie(const char *) oraz Nazwisko(const char *)
z wykorzystaniem techniki dynamicznej alokacji pamięci.
2. Korzystanie tylko z tych funkcji do modyfikacji danych składowych.
3. Użycie tak przygotowanych funkcji wszędzie tam, gdzie jest potrzeba zainicjowania lub
zmiany składowych imie lub nazwisko (np. w funkcji Wpisz()).
___________________________________________________________________________
Katedra Podstaw Elektroniki
Programowanie Obiektowe - Studia podyplomowe - Technologie Internetowe
r.a. 2007/2008 semestr zimowy