Zadania przygotowawcze do II kolokwium

  1. 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
    };


  2. 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ą.

  3. 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
    };

  4. 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
    };

  5. 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.

  6. 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
    };