Klasy i ich konstruktory

    • deklaracje klas
    • funkcje składowe (metody) i pola
    • tworzenie obiektów
    • wskaźnik this
    • zakresy: private, public, protected
    • konstruktor domniemany
    • 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 pierwszych k kul
  • dociążoną metodę publiczna Wypisz(), która wypisuje całą zawartość bębna

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

Zadanie 2: klasa Bęben

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

  • konstruktor domniemany Beben(), tworzący bęben o domyślnym rozmiarze 49
  • konstruktor kopiujący Beben(const Beben& b), który tworzy pełną 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 domniemanych wartosciach (rozmiar 49)
  3. wypełnij wszystkie bębny w tablicy, wymieszaj je i wypisz wynik. W efekcie otrzymujemy n losowań 6 liczb z 49

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