zadania z pierwszego terminu egzaminu z Technik Programowania

Transkrypt

zadania z pierwszego terminu egzaminu z Technik Programowania
1. (3 pkt.) Podany jest następujący opis systemu. Zaproponuj do niego diagram klas. Zaznacz na nim relację dziedziczenia, kompozycji, typy abstrakcyjne, najważniejsze składowe:
Drukarnia umieszczona jest kilku budynkach, z których 1 to biurowiec a reszta hale w których umieszczone są maszyny drukarskie:
do druku w kolorze oraz w czerni i bieli. Zlecenia na druk książek, gazet i ulotek od klientów (osób i firm) przyjmuje dział sprzedaży,
który przekazuje je dalej do działu technicznego aby wykonał on projekt techniczny obejmujący m.in. dokładny harmonogram druku,
zadania dla poszczególnych maszyn, .... Projekt ten jest wysyłany do działu produkcji, który uruchamia swoje maszyny i dokonuje
druku. Każdy produkt przechodzi kontrolę w dziale kontroli.
2. (3 pkt.) Dane są klasy File i Encrypter. Wykorzystując dziedziczenie oraz kompozycję napisz klasę EncryptedFile, szyfrującą i
odszyfrowującą zapisywane/ odczytywane dane.
class File {
File(String filename);
void write(int value);
int read();
void close(); }
class Encrypter{
public Encrypter(String key);
public int encrypt(int value); //codes given value
publicint decrypt(int value);} //decodes given value
3. (2 pkt.) Dana jest klasa reprezentująca połączenie internetowe. Z jej pomocą otwórz 2 połączenia na porcie 22222 do adresów
”serwer1.pb.edu.pl” i ”serwer2.pb.edu.pl” oraz prześlij wszystkie dostępne bajty z serwera 1 do serwera 2. Na błędy reaguj w
następujący sposób: TimeOutException – ponów operację, ConnectionException – zakończ program, NotEnoughSpaceException
– wypisz komunikat i zakończ transfer, NoMoreBytesException – zakończ transmisję bez komunikatu. Pamiętaj, aby zawsze
zamknąć połączenia.
class Connection {
public Connection(String adress, int port) throws ConnectionException, TimeOutException;
public byte read() throws ConnectionException, TimeOutException, NoMoreBytesException;
public void write(byte b) throws ConnectionException, TimeOutException, NotEnoughSpaceException;
public void close(); }
4. (3 pkt) Napisz klasę Data pozwalającą na przechowywanie i wypisywanie daty w formacie dzień-miesiąc-rok. Pola składowe klasy
powinny być prywatne. Metoda czas powinna zwracać ilość czasu (w latach) dzielącą daną datę od tej podanej jako parametr. Metoda
przesuń powinna dodawać (lub odejmować) podaną liczbę dni od danej daty (dla uproszczenia można założyć, że każdy miesiąc ma
30 dni).
5. (3 pkt) Hotel składa się z pewnej (określonej w konstruktorze) liczby pokoi (klasa Room). Klasa Hotel powinna udostępniać
metodę zwracającą pokój o danym numerze oraz metodę zwracającą najtańszy pokój dla danej liczby osób.
class Room {
Room(int number);
int number();
double price();
int beds(); // liczba łóżek
void reserve(boolean r); // rezerwacja lub zwalnianie
boolean reserved(); // czy wolny ?
}

Podobne dokumenty