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

Podobne dokumenty