hw 1
Transkrypt
hw 1
Problem 1: Celem zadania jest projekt aplikacji do rysowania figur geometrycznych. Wynik działania programu ma być zapisywany w postaci pliku graficznego. Zakładamy, że ta część zadania została już zrealizowana. Mamy zatem metodę, która pozwala na konwersję tablicy 2D typu int do pliku graficznego. Dane wejściowe: - Tablica 2D typu int – image[100][100] - Metoda do zamiany powyższej tablicy na plik graficzny A. Podstawowe założenia stawiane w projekcie są następujące: 1. Program pozawala na narysowanie następujących figur: a. koło, podając środek koła i promień b. kwadrat, podając położenie lewego dolnego i prawego górnego narożnika c. prostokąt, podając położenie lewego dolnego i prawego górnego narożnika Rysowanie polega na umieszczeniu w tablicy image w zadanym położeniu [x][y] wartości z zakresu (0,255). Obwód figury powinien być czarny – wartość image[x][y]=0, natomiast wnętrze może mieć kolor zdefiniowany przez użytkownika – image[x][y] = parametr int. Każda z figur może być kolorowana innym kolorem. 2. Program pozwala wyświetlić liczbę wszystkich figur oraz nazwę, liczbę boków i pole powierzchni każdej z nich. 3. Przesuwać figury o zadany wektor. Proszę spróbować przeanalizować podany problem pod kątem zastosowania programowania proceduralnego. B. W następnym kroku okazało się, że program powinien również: 1. Obsługiwać trapezy, romby, trójkąty i elipsy. 2. Pozwalać na rysowanie prostokąta/kwadratu na podstawie lewego dolnego narożnika i długości boków. 3. Obliczyć obwód każdej z figur. 4. Podać liczbę figur danego rodzaju: na przykład liczbę kwadratów. 5. Umieszczać wszystkie figury w postaci stosu w środku tablicy w kolejności o pierwszej narysowanej figury do ostatniej. Sprawdź ile zmian należy wprowadzić do kodu programu z części A, aby sprostać dodatkowym wymaganiom z części B. Problem 2: Kolekcja filmów Zadanie polega na napisaniu programu do katalogowania filmów. W wersji podstawowej każdy film posiada następujące parametry: ID, tytuł, gatunek, ocena, autor (imię i nazwisko reżysera), rok_wydania, nośnik(DVD, ISO file, Bluray), czy_obejrzany(true, false), cz_wypożyczony(true, false). W wersji rozszerzonej film posiada informację o tytule w wersji oryginalnej/polskiej/angielskiej, czasie trwania, najważniejszych aktorach, napisach, lektorze, kraju pochodzenia (polski, zagraniczny). Program powinien pozwolić na zmianę nośnika dla wybranego filmu, oferować możliwość wypożyczania, sortować filmy po ocenie i premierze, automatycznie ustalać ID nowego filmu w bazie i generować następujące statystyki: - Najlepiej oceniane filmy – Top10 - Liczba polskich filmów - Liczba płyt DVD - Lista filmów wybranego reżysera Pisząc taki program, duża część pracy poświęcona jest uniwersalnym algorytmom (np. sortowania po ocenie). Można sobie zatem wyobrazić wykorzystanie już istniejącego kodu do zarządzania kolekcją książek czy muzyki. W tym kontekście porównaj podejście proceduralne i obiektowe.