Zaimplementuj program w C (potem przerobimy go na C++) realizujący losowanie k
liczb z n
bez zwracania zgodnie z ponizszym schematem.
Utwórz plik nagłówkowy beben.h z poniższą zawartością:
struct beben { int rozmiar; int *kule; char* opis; }; struct beben *utworz(int n); struct beben *wypelnij(struct beben *b); struct beben *mieszaj(struct beben *b); void wypisz(struct beben *b, int n); void zwolnij(struct beben *b);
Funkcje powinny realizować:
utworz
- tworzy bęben mieszczący n
kul i ustawia opis na „Beben stworzony”
wypelnij
- wypełnia bęben kulami od 1 do n
i ustawia opis na „Beben gotowy do losowania”
mieszaj
- miesza zawartość bębna i ustawia opis na „Zawartosc wymieszana”
wypisz
- wypisuje opis
oraz numery pierwszych n
kulzwolnij
- niszczy bęben,
Zdefiniuj powyższe funkcje w pliku źródłowym beben.c
.
W osobnym pliku źródłowym program.cpp
napisz program, który korzystając z tych funkcji przeprowadzi losowanie wykonując nastepujace kroki:
k
, n
n
kul (tablica liczb całkowitych o rozmiarze n
)n
k
pierwszych kul Przydatne funkcje:
Wyeliminuj z programu losującego elementy języka C na rzecz mechanizmów wykorzystywanych w C++
*.c
na *.cpp
struct
przy deklaracjach zmiennych typu beben
lub uczyń typ reprezentujący bęben klasąmalloc()
i free()
na wywołania operatorów new
i delete
(Zarządzanie pamięcią)std::cin
i std::cout
z biblioteki <iostream>
do wczytywania danych i wyświetlania komunikatów (Strumienie)<string>
zamiast tablic char*
do reprezentowania napisów auto
przy deklaracji obiektów i zmiennych (deklaracja typów auto)beben
w klasę Beben
, zadbaj o hermetyzację obiektu (pola klasy Beben
powinny być prywatne, a ewentualny dostęp do nich powinien być realizowany przez metody dostępowe (tzw. gettery i settery), zastąp funkcje utworz
, wypelnij
, mieszaj
, wypisz
, zwolnij
metodami klasy Beben
.
Rozwiązanie w postaci plików nagłówkowych *.h
i źródłowych *.cpp
umieść w Moodle Zadanie 1