Zadanie 1: „Statki” Ogólne wymagania do projektu 3: Program
Transkrypt
Zadanie 1: „Statki” Ogólne wymagania do projektu 3: Program
Zadanie 1: „Statki” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania: Stworzyć prostą grę w statki dla dwóch graczy w trybie graficznym, wykorzystując bibliotekę ncurses. Wymagania funkcjonalne: 1. możliwość grania jednocześnie dwóch graczy 2. możliwość konfiguracji rozmiaru planszy (z poziomu pliku konfiguracyjnego) 3. możliwość konfiguracji liczby statków i ich rozmiarów (z poziomu pliku konfiguracyjnego) 4. sprawdzanie czy jest już koniec gry – jeśli tak to wyświetlenie odpowiedniego komunikatu Poza zakresem tego zadanie jest: 1. implementacja logiki związanej z graniem z komputerem 2. ładna obróbka graficzna (wystarczy proste okienko z np. Krzyżykami) Komunikacja pomiędzy zawodnikami powinna odbywać się za pomocą pliku tekstowego, za pomocą którego będą przekazywane komunikaty pomiędzy graczami. Gra ma się odbywać na jednym komputerze. Zadanie 2: „Kółko i krzyżyk” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania: Stworzyć prostą grę w kółko i krzyżyk w trybie graficznym, wykorzystując bibliotekę ncurses. Wymagania funkcjonalne: 1. możliwość grania jednocześnie dwóch graczy 2. możliwość konfiguracji rozmiaru planszy (z poziomu pliku konfiguracyjnego) 3. sprawdzanie czy jest już koniec gry – jeśli tak to wyświetlenie odpowiedniego komunikatu Poza zakresem tego zadanie jest: 1. implementacja logiki związanej z graniem z komputerem 2. ładna obróbka graficzna (wystarczy proste okienko z np. Krzyżykami i kółkami) Komunikacja pomiędzy zawodnikami powinna odbywać się za pomocą pliku tekstowego, za pomocą którego będą przekazywane komunikaty pomiędzy graczami. Gra ma się odbywać na jednym komputerze. Zadanie 3: „Kulki” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania: Stworzyć prostą grę „kulki” dla jednego gracza. Gra polega na zmienianiu pozycji kulek na planszy w wymiarze kwadratu, aby ułożyć w jednym kierunku kulki tego samego koloru. Jak zostanie ułożona odpowiednia długość komputer powinien usunąć kulki z planszy. Wymagania funkcjonalne: 1. gra dla jednej osoby 2. komputer losowo wybiera wolne miejsce i kolor kulki do wstawienia 3. komputer kończy grę jak nie będzie wolnego miejsca 4. użytkownik każdorazowo podaje kulkę do przesunięcia oraz miejsce docelowe (np. Za pomocą współrzędnych) 5. Plik konfiguracyjny powinien zawierać następujące parametry: 1. rozmiar planszy 2. liczba różnych kulek 3. długość kulek, jaka musi zostać ułożona, aby komputer usunął te kulki z planszy Poza zakresem zadania jest: 1. Implementacja algorytmu sprawdzania czy można przesunąć daną kulkę na wskazane miejsce (tj. czy istnieje ścieżka pomiędzy tymi punktami). 2. Ładna grafika (kulki mogą być oznaczane różnymi literami alfabetu, bądź cyframi) Zadanie 4: „Translator alfabetu Morse'a” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania: Należy stworzyć program do zamieniania tekstu na alfabet Morse'a i do odkodowywania alfabetu Morse'a na tekst. Program ma działać w trybie tekstowym. Wszystkie informacje na temat alfabetu Morse'a dostępne są m.in na http://pl.wikipedia.org/wiki/Alfabet_Morse'a Program powinien działać również w trybie wsadowym. Po uruchomieniu programu można załadować odpowiedni plik wejściowy. Program wynik powinien zapisywać w pliku o nazwie podobnej do nazwy pliku źródłowego dodając prefix „OUT_” Wymagania funkcjonalne: 1. Możliwość zamiany tekstu na alfabet Morse'a i w drugą stronę 2. Praca w dwóch trybach: wpisywania wejścia z klawiatury oraz podając nazwę pliku (można ustalić jeden katalog do wstawiania plików 3. Zapis wyników dla trybu wsadowego 4. Obsługa sytuacji wyjątkowych – błędne pliki 5. Plik konfiguracyjny w którym będzie można skonfigurować znaki odpowiadające długim i krótkim sygnałom Atutem będzie zaimplementowanie sprawdzania czy teksty zawarte w dwóch plikach (jeden zapisany alfabetem Morse'a, a drugi zwykłym tekstem) mają taką samą treść. Zadanie 5. „Prawo jazdy” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program do testowania kandydatów na prawo-jazdy w trybie tekstowym. Program powinien losować n pytań z 3 odpowiedziami z wcześniej przygotowanej bazy danych. Każde pytanie zawiera trzy możliwe odpowiedzi przy czym tylko jedna odpowiedź jest poprawna. Program powinien działać w dwóch trybach: 1. testowy – każde pytanie z n zadawane jest tylko raz i jest liczona pełna liczba punktów i czas pisania testujących. Po każdej odpowiedzi program przechodzi do następnego pytania bez informowania użytkownika czy odpowiedział poprawnie czy nie. Na końcu listowana jest statystyka z następującymi danymi 1. łączny czas wykonywania testujących 2. liczba prawidłowych i nieprawidłowych odpowiedzi 3. lista zadanych pytań: 1. z info o poprawnej odpowiedzi 2. z info o odpowiedzi jaką podał użytkownik 3. z info czy odpowiedź została uznana przez system Dodatkowo w tym trybie użytkownik będzie miał ograniczony czas na wykonanie testu. 2. nauki – każde pytanie z n zadawane jest aż do uzyskania poprawnej odpowiedzi (jak użytkownik odpowie źle to to pytanie ląduje na końcu kolejki pytań do zadania i po zakończeniu serii pytań jest zadawane ponownie. W tym trybie po każdej odpowiedzi komputer podaje informację czy jest to prawidłowa odpowiedź czy nie. W przypadku podania przez użytkownika błędnej odpowiedzi komputer wskazuje poprawną odpowiedź. Na końcu pokazywana jest statystyka z następującymi danymi: 1. łączny czas wykonywania testu 2. lista pytań z liczbą prób trafień Plik konfiguracyjny powinien zawierać: 1. liczbę pytań jaka powinna zostać zadana w każdym teście 2. czas wykonania jednego testu (podany w sekundach) Baza pytań powinna być zapisana w przyjaznym formacie w pliku txt bądź xml-u. Przy każdym pytaniu powinny być zapisane możliwe odpowiedzi z informacją która odpowiedź jest poprawna. Zadanie 6. „Program księgowy” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program księgowy do prowadzenie wpisów kosztów dla pracowników jednej firmy. Program powinien działać w trybie tekstowym i zapisywać dane o wszystkich osobach prowadzących ewidencję oraz o wszystkich jego wydatkach. Nie jest konieczne liczenie miesięcznych kosztów. Wymagania funkcjonalne: 1. Możliwość dodawania, usuwania pracowników z księgowości 2. Możliwość dodawania, edycji wpisów kosztów 3. Pracownik powinien posiadać następujące atrybuty: 1. imię 2. nazwisko 3. data urodzenia 4. stanowisko 4. Koszt powinien posiadać następujące atrybuty: 1. nazwa kosztu (np. Opłata za biuro) 2. data księgowania (format: rrrr-mm-dd) 3. kwota 5. Koszt można edytować 6. Przy usunięciu pracownika są usuwane również jego koszty 7. Program powinien na początku sczytywać wszystkie dane z pliku tekstowego bądź xml 8. Program powinien mieć możliwość zapisywania danych podczas pracy po każdej modyfikacji 9. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować 10. Każdy koszt jest przywiązany do jednego pracownika (należy każdemu pracownikowi przyporządkować unikalny identyfikator i zapisywać go przy każdym jego koszcie. 11. Możliwość przeglądania kosztów wybranej osoby oraz listowanie wszystkich osób Zadanie 7. „Biblioteka” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program wspomagający pracę biblioteki. Program w pliku tekstowym lub xml powinien zapisywać następujące rzeczy: 1. osoby korzystające z biblioteki (imię, nazwisko, wiek, telefon kontaktowy) 2. książki dostępne w bibliotece (tytuł, autor, rok, wydania) 3. informacje jakie książki wypożyczyła dana osoba i informacje które książki są dostępne Każda osoba może wypożyczyć dowolną liczbę książek. Każda książka może być na raz wypożyczona przez jedną osobę. W celu powiązania książki z osobą należy dodać do klasy książka atrybut id_osoby (jak będzie null to znaczy że książka jest wolna) – jest to rozwiązanie niezbyt ładne, ale wystarczające na potrzeby tego programu. Wymagania funkcjonalne: 1. Możliwość dodawania, usuwania osób 2. Możliwość dodawania, edycji książek 3. Możliwość listowania wszystkich książek (z informacją które są zajęte), oraz listowanie wolnych książek 4. Listowanie książek, które wypożyczyła dana osoba 5. Symulowanie pożyczania / oddawania książek 6. Usunięcie osoby z biblioteki możliwe jest tylko wtedy gdy odda wszystkie książki. 7. Program powinien mieć możliwość zapisywania danych podczas pracy po każdej modyfikacji 8. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować Zadanie 8. „Gra w kropki” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prostą grę w kropki dla jednej osoby. Osoba będzie grała z komputerem. Komputer nie musi posiadać żadnej logiki związanej ze strategicznym rozstawianiem kropek. Program powinien działać w środowisku graficznym z wykorzystaniem biblioteki ncurses (bądź innej biblioteki graficznej C++). Wymagania funkcjonalne: 1. Konfigurowalna plansza 2. Możliwość zapisania stanu gry i wczytania go ponownie 3. Możliwość przerwania gry w każdym momencie z możliwością zapisania stanu gry Poza zakresem zadania jest: 1. Ładna grafika 2. Implementacja algorytmu do inteligentnego stawiania kropek przez komputer Zadanie 9. „Terminarz” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program do zapisywania spotkań dla jednej osoby. Program przy każdorazowym uruchomieniu pobierałby wszystkie spotkania z pliku tekstowego bądź xml. Wymagania funkcjonalne: 1. Możliwość dodawania, edycji, usuwania spotkań 2. Atrybuty spotkania: 1. czas (dzień, godzina rozpoczęcia, zakończenia) 2. miejsce (ulica, miasto) 3. z kim (imię nazwisko) 4. notka (informacje dodatkowe – dowolnie długi ciąg znaków) 3. Możliwość listowania spotkań w następujących trybach: 1. wszystkie spotkania sortowanie po dacie 2. spotkania z danego przedziału czasowego 3. spotkania z dnia dzisiejszego 4. Program powinien mieć możliwość zapisywania danych podczas pracy po każdej modyfikacji 5. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować 6. Program musi sprawdzać czy termin spotkania nie jest już zajęty – jak jest musi uniemożliwiać wstawienie spotkania i znaleźć najbliższy termin w którym to spotkanie może się odbyć i zapytać się użytkownika czy ten termin mu pasuje. Poza zakresem zadania jest: 1. tryb graficzny 2. obsługa terminarza dla wielu osób Zadanie 10. „Lista TODO” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program do zapisywania listy TODO dla wielu osób. Program przy każdorazowym uruchomieniu pobierałby wszystkie TODO i użytkowników z pliku tekstowego bądź xml. Wymagania funkcjonalne: 1. Możliwość dodawania, edycji, usuwania TODO 2. Atrybuty sTODO: 1. nazwa todo 2. priorytet 3. notka (informacje dodatkowe – dowolnie długi ciąg znaków) 3. Możliwość listowania listy TODO w następujących trybach: 1. wszystkie TODO 2. todo danego użytkownika 4. Program powinien mieć możliwość zapisywania danych podczas pracy po każdej modyfikacji 5. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować Poza zakresem zadania jest: 1. tryb graficzny Zadanie 11. „Wykresy” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program do rysowania wykresów z wykorzystaniem jednej z bibliotek graficznych języka C++. Program powinien wczytywać dane wykresu z pliku testowego lub xml. Wykres powinien być modyfikowany podczas pracy programu przez odpowiedni interfejs użytkownika. Wymagania funkcjonalne: 1. Możliwość tworzenia wykresu 2. Możliwość modyfikacji wykresu 3. Możliwość zapisywania wykresu 4. Program powinien mieć możliwość zapisywania danych podczas pracy po każdej modyfikacji 5. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować Poza zakresem zadania jest: 1. ładny tryb tryb graficzny Zadanie 12. „Szyfr Vigenère'a i Cezara” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program do szyfrowania wykorzystujący dwie metody szyfrowania: „Szyfr Vigenère'a i Cezara”. Program powinien działać w dwóch trybach: szyfrowania i deszyfrowania. Wymagania funkcjonalne: 1. Możliwość szyfrowania / deszyfrowania tekstu zapisanego w pliku tekstowym 2. Możliwość szyfrowania / deszyfrowania tekstu podanego na wejście 3. Program powinien mieć możliwość zapisywania wyników szyfrowania / deszyfrowania do pliku tekstowego po każdej operacji 4. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować Opis szyfrów dostępny jest na Wikipedii: http://pl.wikipedia.org/wiki/Szyfr_Cezara http://pl.wikipedia.org/wiki/Szyfr_Vigen%C3%A8re%27a Zadanie 13. Histogram Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć aplikację, która będzie rysowała histogramy na konsoli z wykorzystaniem biblioteki ncurses. Wymagania funkcjonalne: 1. Możliwość wczytywania danych wejściowych z pliku tekstowego 2. Możliwość zapisywania danych do pliku tekstowego 3. Możliwość podawania danych z poziomu konsoli 4. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować Histogram: http://pl.wikipedia.org/wiki/Histogram Zadanie 14. „Biuro podróży” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program wspomagający biuro podróży. Program w pliku tekstowym lub xml powinien zapisywać następujące rzeczy: 1. osoby korzystające z biura podróży (imię, nazwisko, wiek, telefon kontaktowy) 2. wycieczki dostępne w biurze (miejsce, cena, liczba wolnych miejsc, daty trwania) 3. informacje na jakie wycieczki zapisał się dany uczestnik Każda osoba może wyjechać na dowolną liczbę wycieczek. Każda wycieczka ma ograniczoną liczbę miejsc. W przypadku braku miejsc nie można zapisywać już więcej osób. Dodatkowo wycieczki dla jednej osoby nie mogą ze sobą kolidować – program powinien o to dbać. Wymagania funkcjonalne: 1. Możliwość dodawania, usuwania osób 2. Możliwość dodawania, edycji wycieczek 3. Możliwość listowania wszystkich wycieczek danego użytkownika 4. Możliwość listowania osób zapisanych na daną wycieczkę 5. Listowanie książek, które wypożyczyła dana osoba 6. Symulowania zakupu wycieczek przez daną osobę 7. Program powinien mieć możliwość zapisywania danych podczas pracy po każdej modyfikacji 8. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować Podpowiedzi: każda osoba będzie miała identyfikator osoba_id. Każda wycieczka będzie miała identyfikator wycieczka_id. Powiązanie wycieczek z osobami będzie za pomocą łączenia osoba_id z wycieczka_id Przykład plik: osoby.txt: 1:Jak:Kowalski 2:Ewa:Nowak wycieczki.txt: 1:Egipt:1500:1.07.2009:10.07.2009:4 2:Jerozolima:2000:1.08.2009:30:09.2009:13 osoba_wycieczka.txt 1:1 #Jan Kowalski (pierwsza 1) jedzie do Egiptu (1) 1:2 #Jak Kowalski (1) jedzie do Jerozolimy (2) 2:1 # Ewa Nowak (2) jedzie do Egiptu (1) po # zostało napisane co oznaczy zapis liczba:liczba – tego co po # ma nie być w pliku z danymi Zadanie 15. „Biuro nieruchomości” Ogólne wymagania do projektu 3: Program powinien mieć napisany prawidłowy makefile. Należy wykorzystać następujące komponenty / funkcje języka C++: 1. klasy wzorcowe o złożonej strukturze danych (listy, drzewa itp.), 2. kontenery, 3. iteratory 4. algorytmy biblioteki STL, 5. przeciążanie strumieni we/wy, 6. obsługa sytuacji wyjątkowych, Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych. Warunkiem koniecznym przystąpienia do oddawania projektu jest wysłanie na minimum 24 h przed zaliczeniem kilkustronnicowej dokumentacji technicznej wykonanego programu. Nie ma potrzeby drukowania tej dokumentacji. Dokumentacja powinna zawiera opis podstawowych klas, algorytmu i opis ogólny programu. Każda z klas powinna zawierać stosowny opis. Dodatkowo każda metoda powinna zawierać stosowny opis w kodzie programu. Treść zadania Należy stworzyć prosty program wspomagający pracę biura nieruchomości. Program w pliku tekstowym lub xml powinien zapisywać następujące rzeczy: 1. osoby korzystające z biura nieruchomości (imię, nazwisko, wiek, telefon kontaktowy) 2. dostępne mieszkania w biurze nieruchomości (powierzchnia, cena, liczba pokoi, ulica, numer piętra, rok budowy, czy sprzedane) 3. informacje jakie mieszkania oglądał dany użytkownik Każda osoba może obejrzeć dowolną liczbę mieszkań. Wymagania funkcjonalne: 1. Możliwość dodawania, usuwania osób 2. Możliwość dodawania, edycji nieruchomości (zaznaczenie że jest już sprzedana) 3. Możliwość listowania wszystkich mieszkań (z informacją które są sprzedane) 4. Listowanie mieszkań, które oglądała dana osoba 5. Symulowanie oglądania mieszkań przez daną osobę 6. Program powinien mieć możliwość zapisywania danych podczas pracy po każdej modyfikacji 7. Plik tekstowy musi być zapisany w przyjaznym formacie, aby prowadzący mógł go swobodnie edytować Podpowiedzi: każda osoba będzie miała identyfikator osoba_id. Każde mieszkanie będzie miało identyfikator mieszkanie_id. Powiązanie mieszkań z osobami będzie za pomocą łączenia osoba_id z mieszkanie_id Przykład plik: osoby.txt: 1:Jak:Kowalski 2:Ewa:Nowak mieszkania.txt: 1:Pulawska:50:50000:2:1956 2:Grójecka:51:30000:4:1956 osoba_mieszkanie.txt 1:1 #Jan Kowalski (pierwsza 1) oglądał mieszkanie na ulicy Puławskiej (1) 1:2 #Jak Kowalski (1) oglądał mieszkanie na ulicy Grójeckiej 2:1 # Ewa Nowak (2) oglądała mieszkanie na ulicy Puławskiej po # zostalo napisane co oznaczy zapis liczba:liczba – tego co po # ma nie być w pliku z danymi