Monika Dekster

Laboratorium 11. Wyjątki

Zadanie

  1. Dana jest klasa account_info zawierająca numer konta bankowego, nazwisko właściciela i stan konta. Napisz program, który tworzy, inicjalizuje i drukuje tablicę kont (obiektów typu account_info) a następnie sprawdza stan kolejnych kont. Jeżeli stan konta jest ujemny, to generowany jest wyjątek negative_balance_exception (podklasy std::out_of_range). Obsługa wyjątku powinna polegać na wydrukowaniu nazwy wyjątku i wielkości deficytu na koncie, który spowodował wygenerowanie wyjątku (wykorzystaj nadpisaną w klasie wyjątku funkcję what()).

    Przykładowy wynik działania programu:

    Image Exception

  2. Napisz klasę Triangle. Zaimplementuj

    1. Konstruktor, który przyjmuje trzy parametry typu double (boki trójkąta). Konstruktor powinien wygenerować wyjątek (dziedziczący z klasy domain_error) w przypadku, gdy podane długości boków nie tworzą trójkąta.
    2. getter i setter zwracający / ustawiający długość zadanego boku void set(double x, int n){} i double get(int n). Getter i setter generuje wyjątek (podklasa out_of_range) jeżeli numer boku nie jest z zakresu 0-2. Setter generuje wyjątek jeżeli nie da się zbudować trójkąta z nowego zestawu odcinków)
    3. bool is_triangle() – prywatna wykorzystywana w konstruktorze i seterach
    4. bool is_equilateral() – sprawdza czy trójkąt jest równoboczny
    5. bool is_isosceles() – sprawdza czy trójkąt jest równoramienny
    6. bool is_right() – sprawdza czy trójkąt jest prostokątny
    7. void print() – wypisuje długości boków trójkąta
    8. double area() – zwraca pole trójkąta
    9. double perimeter() – zwraca obwód trójkąta

    Funkcja main() testuje w/w funkcje (łącznie z przypadkami błędnymi!!!).