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