Tematy projektów
Proponowane tematy projektów
Tematy na ocenę 4.0:
- Kalkulator wyrażeń arytmetycznych. Ewaluowanie wyrażeń składających się z liczb, operatorów (+, -, *, /, %, ^) i nawiasów wprowadzanych przez użytkownika i parsowanych z użyciem stosu przy wykorzystaniu odwrotnej notacji polskiej (ONP). Możliwość wprowadzania wyrażeń zarówno w postaci algebraicznej, jak i ONP.
- Słownik oparty o drzewo. Możliwość wyświetlenia słów znajdujących się w słowniku, ich dodawania i usuwania. Wyszukiwanie dopasowań za pomocą prostych wyrażeń regularnych. Zapisywanie/wczytywanie słownika do/z pliku.
- Kompresja/dekompresja tekstu z zastosowaniem kodowania Huffmana. Wykorzystanie drzewa binarnego. Obsługa programu w sposób interaktywny oraz z poziomu linii komend.
- Sortowanie tablic z użyciem drzewa AVL. Implementacja równoważenia drzewa.
- Gra celowniczek 2D. Wykorzystanie dowolnej biblioteki graficznej 2D i list.
Tematy na ocenę 4.5:
- Menedżer plików. Tworzenie/usuwanie katalogów. Wyświetlanie informacji o plikach. Usuwanie/zmiana nazwy/zmiana atrybutów plików. Wyszukiwanie plików/katalogów. Przenoszenie plików pomiędzy katalogami, kopiowanie plików. Wykorzystanie list.
- Menedżer zadań. Dodawanie/usuwanie/edycja użytkowników (ID, imię, nazwisko, telefon, E-mail). Logowanie użytkowników z użyciem hasła. Dodawanie/usuwanie/edycja zadań (ID, tytuł, opis, data, godzina, czas trwania, periodyczne (tak, nie), okres powtarzania (minuty/godziny/dni/tygodnie/miesiące), priorytet (niski, normalny, wysoki), status (zaplanowane, niewykonane, wykonane)). Wyświetlanie zadań z możliwością sortowania niemalejącego/nierosnącego po dowolnym polu. Wyszukiwanie zadań. Przypominanie o nadchodzących/zaległych zadaniach. Zapisywanie/wczytywanie zadań oraz użytkowników i ich danych/haseł do/z plików. Wykorzystanie list.
- Gra Saper. Wykorzystanie dowolnej biblioteki graficznej, dynamicznej tablicy dwuwymiarowej i list.
- Gra Snake. Wykorzystanie dowolnej biblioteki graficznej, kolejki i list.
- Gra quiz dla wielu osób, polegająca na odpowiadaniu na pytania. Wykorzystanie list cyklicznych. Wczytywanie z plików pytań podzielonych na różne kategorie. Kilka trybów gry. Możliwość łatwego rozszerzania bazy pytań przez użytkownika końcowego o nowe kategorie/pytania (bez konieczności ponownej kompilacji gry), zrealizowana na zasadzie dodatkowego programu będącego edytorem bazy pytań, który nie musi posiadać interfejsu graficznego (obsługa w oknie konsoli).
Tematy na ocenę 5.0:
- Baza kontaktów dla wielu użytkowników (rejestracja i logowanie z użyciem hasła). Dodawanie/usuwanie/edycja kontaktów (ID, imię, nazwisko, adres (miasto, ulica, nr domu/mieszkania, kod pocztowy, poczta), telefon (może być kilka), E-mail (może być kilka)). Wyświetlanie kontaktów z możliwością sortowania niemalejącego/nierosnącego po dowolnym polu. Wyszukiwanie kontaktów. Możliwość dodawania/usuwania kontaktów do/z grup (ID, nazwa, opis) i ich wyświetlania z sortowaniem. Wyszukiwanie kontaktów w grupach. Zapisywanie/wczytywanie danych o kontaktach i grupach do/z plików. Wykorzystanie list.
- Baza albumów muzycznych dla wielu użytkowników (rejestracja i logowanie z użyciem hasła). Dodawanie/usuwanie/edycja artystów (ID, nazwa). Dodawanie/usuwanie/edycja gatunków muzycznych (ID, nazwa). Dodawanie/usuwanie/edycja albumów (ID, ID artysty (może być kilku), tytuł, rok, ID gatunku (może być kilka), stan (zakupiony, do kupienia), przesłuchany (tak, nie)). Wyświetlanie albumów z możliwością sortowania niemalejącego/nierosnącego po dowolnym polu. Wyszukiwanie artystów/gatunków/albumów. Eksportowanie albumów do pliku CSV. Zapisywanie/wczytywanie danych o artystach, gatunkach i albumach do/z plików. Wykorzystanie list.
- Wypożyczalnia filmów. Dodawanie/usuwanie/edycja klientów (numer karty, imię, nazwisko, telefon, E-mail). Dodawanie/usuwanie/edycja filmów (ID, tytuł, rok, reżyser, gatunek, liczba egzemplarzy, liczba wypożyczonych). Wypożyczanie/oddawanie filmów (kto wypożyczył (numer karty), który film (ID), kiedy, do kiedy). Wyświetlanie klientów/filmów/wypożyczeń z możliwością sortowania niemalejącego/nierosnącego po dowolnym polu. Wyszukiwanie klientów/filmów. Wyświetlanie wypożyczeń danego klienta. Naliczanie kar umownych za zaległe zwroty. Zapisywanie/wczytywanie danych o klientach, filmach i wypożyczeniach do/z plików. Wykorzystanie list.
- Biblioteka. Dodawanie/usuwanie/edycja klientów (numer karty, nazwisko, imię, telefon, E-mail). Dodawanie/usuwanie/edycja książek (ID, tytuł, rok, autor, gatunek, liczba egzemplarzy, liczba wypożyczonych). Wypożyczanie/oddawanie książek (kto wypożyczył (numer karty), którą książkę (ID), kiedy, do kiedy). Wyświetlanie klientów/książek/wypożyczeń z możliwością sortowania niemalejącego/nierosnącego po dowolnym polu. Wyszukiwanie klientów/książek. Wyświetlanie wypożyczeń danego klienta. Naliczanie kar umownych za zaległe zwroty. Zapisywanie/wczytywanie danych o klientach, książkach i wypożyczeniach do/z plików. Wykorzystanie list.
- Przychodnia. Dodawanie/usuwanie/edycja pacjentów (ID, imię, nazwisko, PESEL, data urodzenia, adres, E-mail, telefon, masa ciała, wzrost, oddział NFZ). Dodawanie/usuwanie/edycja lekarzy (ID, imię, nazwisko, PESEL, numer PWZ, tytuł zawodowy, specjalizacja, E-mail, telefon, godziny pracy w poszczególnych dniach tygodnia). Rejestracja pacjentów na wizyty u lekarzy (ID pacjenta, ID lekarza, data, godzina, czas trwania, status (zaplanowana, odbyta, odwołana)). Możliwość odwołania wizyty lub zmiany jej terminu na inny. Wyświetlanie pacjentów/lekarzy z możliwością sortowania niemalejącego/nierosnącego po dowolnym polu. Wyszukiwanie pacjentów/lekarzy. Wyświetlanie wizyt danego pacjenta lub przyporządkowanych do danego lekarza z możliwością ograniczenia wyników do konkretnego statusu lub dnia. Zapisywanie/wczytywanie danych o pacjentach, lekarzach i wizytach do/z plików. Wykorzystanie list.
- Gra Arkanoid. Wykorzystanie dowolnej biblioteki graficznej 2D i dynamicznej tablicy dwuwymiarowej. Wykrywanie kolizji z zastosowaniem drzewa czwórkowego.
- Gra Space Invaders. Wykorzystanie dowolnej biblioteki graficznej 2D i list.
- Program ilustrujący działanie algorytmu Dijkstry. Wykorzystanie dowolnej biblioteki graficznej 2D i grafów. Możliwość wskazania węzła początkowego i docelowego.
- Program ilustrujący działanie algorytmu A*. Wykorzystanie dowolnej biblioteki graficznej 2D i grafów. Możliwość wskazania węzła początkowego i docelowego.
- Automatyczne generowanie grafów nawigacyjnych (Navigraph). Wykorzystanie dowolnej biblioteki graficznej 2D, grafów i rekurencji. Nawigowanie bota pomiędzy węzłami.
Możliwe jest również zgłaszanie własnych tematów projektów, jednakże muszą one dotyczyć dynamicznych struktur danych (stos, kolejka, listy, drzewa, grafy) lub rekurencji.