Zadania przygotowawcze do II kolokwium
- Zaimplementować klasę Mecz , której obiekty służą do przechowywania danych o meczach piłkarskich.
class Mecz {
public:
Mecz(char* gospodarze, char* goscie); // nazwy zespołów
void bramkaGospodarzy(); // wywoływana jeśli gospodarze strzelą bramkę
void bramkaGosci(); // wywoływana jeśli goście strzelą bramkę
void drukujWynik(); // drukuje na cout nazwy zespołów i wynik
int punktyGospodarzy(); // zwraca liczbę punktów zdobytych przez zespół
int punktyGosci(); // 3-zwycięstwo, 1-remis, 0-porażka
private:
// ewentualne pola i metody prywatne
};
- Napisać klasę ZbiorLiczb do przechowywania podzbiorów zbioru {0,1,...,n-1}.
class ZbiorLiczb {
public:
ZbiorLiczb(int n);// tworzy nowy pusty podzbiór zbioru 0..n-1
void dodaj(int); // dodaje podaną liczbę do zbioru
void usun(int); // usuwa podaną liczbę
bool nalezy(int); // sprawdza, czy dana liczba należy do podzbioru
void wypisz(); // wypisuje na cout elementy oddzielone przecinkami
private:
// ewentualne pola i metody prywatne
};
Następnie zmodyfikować tą klasę tak, aby operator + zwracał sumę zbiorów, a operator *
część wspólną.
- Zaimplementować klasę Samochod o następujących metodach. Zakładamy, że pojemność zbiornika paliwa jest nieskończona.
class Samochod {
public:
Samochod(double zuzyciePaliwa);// tworzy nowy obiekt o zadanym zużyciu paliwa (l/km)
void tankuj(double ileLitrow); // tankuje zadaną ilość paliwa
bool jedz(double ileKm); // zwraca true jeśli wystarczyło paliwa
double licznik(); // zwraca liczbę przebytych km
private:
// ewentualne pola i metody prywatne
};
- Napisać klasę Kolo której obiekty przechowują informacje o kołach.
class Kolo {
public:
Kolo(int x, int y, int r); // współrzędne środka i promień
void przesun(int x, int y); // przesuwa o wektor o zadanych współrzędnych
void ustawPromien(int r); // nowy promień
bool nalezy(int x, int y); // sprawdza, czy dany punkt należy do koła
private:
// ewentualne pola i metody prywatne
};
- Zaimplementować metody klasy Urna, której obiekty są urnami mogącymi przechowywać kolorowe kule.
Kolory kul są oznaczone numerami 1,...,n, a kule o tym samym kolorze nieodróżnialne.
class Urna {
public:
Urna(int ileKolorow); // tworzy pustą urnę obsługującą zadaną liczbę kolorów
void dorzuc(int kolor, int ile); // dorzucamy do urny kule o wskazanym kolorze
int wyciagnij(); // wyciągnij losową kulę, zwraca numer koloru kuli
bool pusta(); // sprawdza czy urna jest pusta
private:
// ewentualne pola i metody prywatne
};
Uwaga: można założyć, że istnieje funkcja int losowa(int zakres),
która zwraca losową liczbę całkowitą spośród liczb 0,1,...,zakres-1.
- Zaimplementować klasę Obserwacje do gromadzenia obserwacji meteorologicznych.
W klasie powinny być gromadzone obserwacje o temperaturze na stacji w ciągu pewnej liczby kolejnych dni ponumerowanych od 1 do ileDni (nie więcej niż jedna obserwacja dziennie).
Dopuszczalna jest sytuacja, w której pewne obserwacje nie są wykonane.
class Obserwacje {
public:
Obserwacje(int ileDni); // tworzy nowy obiekt
void ustawTemp(int dzien, double temp); // dodanie obserwacji danego dnia
double srednia(); // zwraca średnią temperaturę na stacji
int najcieplejszyDzien(); // zwraca numer najcieplejszego dnia lub 0 jeśli brak obserwacji
private:
// ewentualne pola i metody prywatne
};