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.

Podobne dokumenty