Tematy projektów
Proponowane tematy projektów
Tematy podstawowe:
- 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.
- 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.
- 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.
- 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.
- 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.
- Gra Saper. Wykorzystanie dowolnej biblioteki graficznej 2D.
- Gra Snake. Wykorzystanie dowolnej biblioteki graficznej 2D.
- Gra Arkanoid. Wykorzystanie dowolnej biblioteki graficznej 2D. Wykrywanie kolizji z zastosowaniem drzewa czwórkowego.
- Gra Space Invaders. Wykorzystanie dowolnej biblioteki graficznej 2D.
- Gra quiz dla wielu osób, polegająca na odpowiadaniu na pytania. 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).
Za wyjątkiem tematów dotyczących gier, graficzny interfejs użytkownika (GUI) nie jest wymagany.
Tematy zaawansowane:
- Edytor tekstu. Obsługa co najmniej dwóch systemów kodowania znaków.
- Przeglądarka zdjęć. Obsługa co najmniej dwóch formatów plików graficznych. Prezentowanie histogramu dla poszczególnych kanałów RGB oraz luminancji względnej. Wyświetlanie metadanych zdjęć fotograficznych (przysłona, czas migawki, ISO itp.).
- Paint. Obsługa co najmniej dwóch formatów plików graficznych.
- Odtwarzacz muzyki. Obsługa co najmniej dwóch formatów plików audio. Możliwość wyświetlania i edycji metadanych plików (tagów, okładki itp.).
- Total Commander.
- Kompresor oraz dekompresor plików i katalogów. Obsługa co najmniej dwóch algorytmów kompresji.
- Terminarz dla wielu użytkowników. Dodawanie, usuwanie, edycja, wyszukiwanie i filtrowanie zadań. Możliwość obliczenia dnia tygodnia dla podanej daty.
- Edytor wspomagający pisanie wzorów matematycznych w języku LaTeX.
- Edytor wspomagający tworzenie tabel w języku LaTeX.
- Walidator nawiasów w plikach źródłowych języków C/C++. Poprawianie indentacji kodu. Kolorowanie składni.
- "Gra w życie" Conway'a. Implementacja co najmniej dwóch struktur z każdego typu (niezmienne, oscylatory, niestałe, statki, działa, puffery). Możliwość swobodnego dodawania struktur na planszy.
- Symulacja wody za pomocą automatu komórkowego.
- Symulacja pożaru za pomocą automatu komórkowego.
- Symulacja gazu za pomocą automatu komórkowego.
- Symulacja osypującego się piasku za pomocą automatu komórkowego.
- Gra Pasjans.
- Gra Dureń. Przeciwnikiem komputer lub gracz.
- Gra Piłka. Przeciwnikiem komputer lub gracz.
- Gra Statki. Przeciwnikiem komputer lub gracz.
- Gra Warcaby. Przeciwnikiem komputer lub gracz.
- Gra Młynek. Przeciwnikami komputer lub gracze.
- Gra Bilard 2D. Przeciwnikiem komputer lub gracz.
- Prosta gra przygodowa 2D.
- Prosta gra platformowa 2D.
- Wizualizacja algorytmu stada. Ucieczka stada (zachowanie evade) przed napastnikiem (zachowanie pursuit).
W przypadku tematów zaawansowanych, graficzny interfejs użytkownika (GUI) jest wymagany.
Możliwe jest również zgłaszanie własnych tematów projektów.