Budowanie rejestru za pomocą klas.

0

Witam. Na wstępie muszę powiedzieć, że jestem kompletnie zielony w programowaniu obiektowym.

Miałem za zadanie stworzyć rejestr pacjentów za pomocą listy jednokierunkowej, co chyba mi się udało.
http://pastebin.com/e6wr8J1b
Teraz jednak muszę zaimplementować ten rejestr używając klas, w czym jestem zielony, a i forma prowadzenia zajęć nie pomaga.

Jak widać w kodzie, rejestr ten ma mieć funkcje dodania pacjenta, usunięcia, wyszukania i wypisania wszystkich pacjentów.
A struktura opisująca tego właśnie pacjenta, ma zawierać nazwisko, imię, adres i numer telefonu.

Podjąłby się ktoś pomocy? Z tego co widziałem, użyteczny byłby vector, ale nie wiem jak go zastosować.

0
  1. Utwórz sobie klasę o nazwie Rejestr; (klasa to struktura, której wszystkie własności są domyślnie prywatne);
  2. Wewnątrz tej klasy utwórz strukturę/klasę o nazwie Lista, która będzie reprezentowała jeden element listy;
  3. Wszystkie funkcje odpowiedzialne za obsługę listy przenieś do wnętrza klasy Rejestr;
  4. Wywal argumenty tychże funkcji, którymi są referencje lub wskaźniki do elementu listy. Nie musisz przekazywać ich przez argumenty, bo masz je wewnątrz klasy jako np. jako this.poczatek;

Zrób coś w rodzaju:

 
class Rejestr{
	private:
	struct Lista{
		string imie;
		Lista *nastepny;
	}
	Lista *poczatek;
	Lista *ostatni;

	public:
	Rejestr(){
		this.poczatek = 0;
		this.ostatni = 0;
	}

	void dodaj(string imie){
		Lista *element = new Lista;
		element->imie = imie;
		element->nastepny = 0;

		if(!this.poczatek){
			this.poczatek = element;
			this.ostatni = this.poczatek;
		}
		else{
			this.ostatni.nastepny = element;
			this.ostatni = element;
		}
	}

	//	I tak samo z resztą funkcji.
}

I gdzieś w funkcji main:

Rejestr rej;
rej.dodaj("Grzegorz");

Co do wektora to zamiast bawić się w implementowanie listy zrób po prostu std::vector<Osoba> gdzie osoba to będzie klasa posiadająca takie pola jak imię, nazwisko itd. Już bez wskaźników na pierwszy i ostatni element, bo o to zadba klasa vector.
Wektor osób zrób jako pole prywatne w klasie Rejestr i np. w funkcji dodaj realizuj metodę push_back(object) klasy vector.

1 użytkowników online, w tym zalogowanych: 0, gości: 1