Klasy i ich konstruktory

    • deklaracje klas
    • pola i funkcje składowe klas (metody)
    • tworzenie obiektów
    • wskaźnik this
    • zakresy dostępu: private, public, protected
    • konstruktor domniemany (domyślny)
    • konstruktor kopiujący
    • instrukcje inicjalizujące

Klasa: Bęben

Zaimplementuj klasę Beben realizującą bęben maszyny losującej, która pozwoli przeprowadzać losowanie k liczb z n bez zwracania (identycznie jak w zadaniu z poprzednich zajęć). Zdefiniuj konstruktor, destruktor, pola i funkcje składowe:

  • pole prywatne int rozmiar
  • pole prywatne int *kule
  • pole prywatne string opis
  • publiczny konstruktor inicjujący bęben o podanym rozmiarze n, który tworzy bęben mieszczący n kul i ustawia opis na „Beben stworzony”
  • destruktor - sprzątanie (zwalnianie pamięci)
  • metodę publiczną Wypelnij(), która wypełnia bęben kulami od 1 do n i ustawia opis na „Beben gotowy do losowania”. Metoda zwraca referencję do zainicjowanego bębna.
  • metodę publiczną Mieszaj(), która miesza zawartość bębna i ustawia opis na „Zawartosc wymieszana”. Metoda zwraca referencję do wymieszanego bębna.
  • metodę publiczną Wypisz(int k), która wypisuje opis oraz numery k pierwszych kul
  • przeciążoną metodę publiczną Wypisz(), która wypisuje całą zawartość bębna

Napisz program, który przetestuje działanie klasy Beben i przeprowadzi losowanie k liczb z n (wartości k i n podaje użytkownik).

Diagram UML klasy Beben

Zadanie 2: klasa Bęben

Uzupełnij implementację klasy Beben z powyższego ćwiczenia o następujące elementy:

  • domyślny konstruktor tworzący bęben o rozmiarze 49
  • konstruktor kopiujący Beben(const Beben& b), który tworzy pełną (głęboką) kopię bębna b

Napisz program, który przeprowadzi n losowań Lotto (6 liczb z 49) i wypisze wyniki na ekranie w taki sposób:

  1. wczytaj wartość n z klawiatury
  2. stwórz dynamicznie tablicę zawierającą n obiektów Beben o domyślnych wartościach (rozmiar 49)
  3. wypełnij wszystkie bębny w tablicy, wymieszaj je i wypisz wynik. W efekcie otrzymujemy n losowań po 6 liczb z 49

Rozwiązanie w postaci plików nagłówkowych *.h i źródłowych *.cpp umieść w Moodle Zadanie 2