1. Liczby całkowite 512-bitowe Zadanie polega na zaimplementowaniu klasy 512-bitowych liczb całkowitych bez znaku. Wymagane jest napisanie operatorów dodawania, odejmowania i mnożenia. Wymagane są 2 konstruktory: tworzący liczbę z dziesiętnego łańcucha tekstowego, bądź ze zwykłego int-a. W przypadku przekroczenia zakresu liczby powinny się zachowywać tak jak zwykłe 'unsigned int' (bity przeniesienia są tracone). Dodatki nieobowiązkowe: operator dzielenia, operatory ++ i --, przeciążenie operatora << klasy cout. 2. Gra w kółko i krzyżyk z komputerem Należy napisać grę w kółko i krzyżyk na nieograniczonej planszy. Gra kończy się w momencie umieszczenia na planszy 5 identycznych znaków w pionie, poziomie lub na ukos. Komputer powinien grać inteligentnie. Wskazane obiektowe podejście do problemu. 3. Baza danych biura lub sklepu. Program może dotyczyć instytucji zajmującą się dowolną tematyką (sklep z częściami samochodowymi lub biuro matrymonialne). Baza, oprócz danych powinna zawierać pole zawierające słowa kluczowe (np. grupy i asortyment towarów) i dokonywać wyboru korzystając również z tego pola. Powinna mieć konstrukcję obiektową. 4. Słownik elektroniczny Program umożliwiający gromadzenie definicji pojęć, a następnie przeglądanie i wyszukiwanie tych definicji. Cechą dodatkową będzie zapis wybranej definicji w postaci pliku XML, HTML lub RTF. Druga cecha dodatkowa, to wyszukiwanie według wzorców z '*' i '?'. 5. Punkt trójwymiarowy Należy napisać klasę opisującą punkt w przestrzeni trójwymiarowej. Należy zdefiniować metody wykonujące przesunięcie i obrót punktu, oraz metodę rzutującą punkt na określoną płaszczyznę i zwracającą współrzędne rzutu na tej płaszczyźnie. Cecha dodatkowa - zdefiniowanie klasy 'figura 3D' zawierającej zbiór punktów, oraz operacji przesunięcia, obrotu i rzutu figury. 6. Gra typu "Space Invaders" na terminalu tekstowym. Gra polega na zestrzeliwaniu statków poruszających się powoli w dół ekranu i losowo na boki. Pojazd gracza porusza się w poziomie na dole okna (sterowany klawiaturą) i wystrzeliwuje pociski w górę. W momencie zetknięcia się pocisku ze statkiem wroga, ten znika. Statki wroga od czasu do czasu zrzucają bomby pionowo w dół, każde uderzenie bomby w pojazd gracza zmniejsza jego energię, gdy spadnie ona do zera, gracz przegrywa. 7. Gra "Tetris" Gra powinna działać w terminalu tekstowym (osoby chętne mogą się pokusić o wykonanie graficzne) i wykorzystywać obiektowe techniki programowania. 8. Obliczenia na wielomianach. Należy napisać klasę umożliwiającą wykonywanie obliczeń na wielomianach jednej zmiennej rzeczywistej. Wymagana jest implementacja czterech działań podstawowych. 9. Bufor bitowy. W wielu przypadkach dla zaoszczędzenia miejsca (np. przy kompresji danych) liczby całkowite zapisywane są w polach bitowych o długościach nie będących wielokrotnością 8.
W zadaniu należy napisać klasę umożliwiającą umieszczenie we wskazanym wskaźnikiem buforze liczb zapisanych na zadanej ilości bitów (każda liczba może mieć inną długość), jak również odczyt tak zapisanych liczb. Cechy dodatkowe: obsługa liczb ze znakiem, sprawdzanie, czy liczba mieści się w podanej liczbie bitów. 10. Gra "Pacman". Plansza gry to labirynt, na którego korytarzach rozmieszczone są kropki, zjadane przez bohatera gry, sterowanego klawiaturą. Celem gry jest zjedzenie wszystkich kropek. Przeszkadzają w tym wrogowie sterowani przez komputer, którzy starają się złapać gracza. Jeżeli gra zostanie wykonana w trybie tekstowym, to postać gracza i wrogowie mogą mieć wielkość jednego znaku. 11. Układanka "Piętnastka". Klasyczna układanka w postaci kwadratu n x n z jednym miejscem wolnym. Program powinien na początku losować położenie kwadracików, ale ułożenie musi być rozwiązywalne (istnieją ułożenia nierozwiązywalne). Program musi pozwalać na wybór rozmiarów układanki od 3 x 3 do 10 x 10 pól. minimalny interfejs graficzny: tryb tekstowy konsoli i sterowanie klawiaturą. 12. Gra "Magazynier" Tematem zadania jest klasyczna gra, znana również jako Sokoban, która polega na przepychaniu skrzyń - przy pomocy sterowanego przez gracza magazyniera - na wyznaczone miejsce. Oczywiście odbywa się to w dość zawile wybudowanym magazynie... Minimalny interfejs graficzny: tryb tekstowy konsoli i sterowanie klawiaturą. Poziomy gry powinny być czytane z pliku tekstowego (jednego lub wielu). 13. Łamigłówka "Szafa Kowalskich". Zadanie nieco podobne do "Piętnastki", ale elementy tej łamigłówki są kwadratami i prostokątami o różnych rozmiarach. Jest ich natomiast zawsze stała ilość. Zadanie gracza polega na wysunięciu z pokoju szafy - największego kwadratowego elementu. Jak zwykle gra może działać w konsoli tekstowej + sterowanie klawiaturą. Szafa Kowalskich 14. Łamigłówka "Pentomino". Ta łamigłówka składa się z 12 figur, z których każda zbudowana jest z 5 kwadratów. Wzory elementów Pentomina można znaleźć między innymi na Wikipedii. Program powinien pozwalać na układanie wybranego prostokąta (jednego z 4 możliwych: 6 x 10, 5 x 12, 4 x 15, 3 x 20). Wymagane możliwości to wybór klocka, przesuwanie, obracanie i odwrócenie na drugą stronę. Minimum co do interfejsu to jak zwykle konsola tekstowa i obsługa z klawiatury. 15. Wyścigi samochodowe. W grze sterujemy małym samochodzikiem poruszającym się po prostoliniowym torze. W grze mamy widok z góry, ruch jest przedstawiony poprzez przewijanie pola gry w dół.
Samochodzikiem kierujemy czterema klawiszami: ruch w lewo i w prawo, przyspieszenie i hamulec. W grze należy umieścić następujące utrudnienia: inne samochody jadące wolniej, plamy oleju, powodujące przesunięcie samochodu w bok, nieregularności brzegów toru (mogą też być np. podziały na 2 pasy). Opcjonalnie: pomiar czasu. 16. Wieże Hanoi. Zadanie polega na napisaniu znanej łamigłówki, polegającej na przekładaniu krążków z otworem na trzech trzpieniach. Krążków jest siedem o kolejno malejących rozmiarach. Zadanie polega na przeniesieniu piramidki krążków z trzpienia 1 na 3 (za pomocą 2), ale w żadnym momencie większy krążęk nie może leżeć na mniejszym. Wersja minimum: gra w konsoli tekstowej, sterowana klawiaturą. 17. Silnik gry tekstowej. Niegdyś popularne "tekstówki" polegały na wyświetlaniu kolejnych plansz z opisami sytuacji w jakiej znalazł się bohater i przedstawieniu kilku możliwości postępowania do wyboru. W zależności od podjętej decyzji, następowało przejście do innej planszy. Tematem zadania jest napisanie programu który załaduje z pliku tekstowego scenariusz gry (opisy, możliwości wyboru i przejścia do innych plansz), a następnie umożliwi samą grę. Oprócz tego trzeba będzie popełnić jakiś prosty, kilkunastoplanszowy scenariusz do testów. 18. Gra "River Raid" Kultowa swego czasu pozycja - lot samolotem bojowym wzdłuż krętej rzeki. Rzekę widzimy z góry, w czasie lotu ekran przesuwa się w dół. Samolot musi poruszać się między brzegami, zderzenie z brzegiem to utrata życia. Oczywiście brzegi powinny być nieregularne. Na rzece znajdują się 2 rodzaje obiektów: statki, które należy zestrzeliwać (za to są punkty) i beczki paliwa, nad którymi należy przelecieć aby uzupełnić paliwo. Paliwa ubywa jednostajnie w czasie lotu. Ilość amunicji nieograniczona. Należy zaimplementować licznik punktów i paliwa. Sterowanie samolotem: ruch w 4 kierunkach + strzał, może być z klawiatury. 19. Łamigłówka "Krzyż" Figura startowa tej łamigłówki składa się z 36 kropek jak na rysunku. W każdym ruchu możemy dostawić jedną kropkę, tak aby powstała linia złożona z 5 kropek obok siebie, pozioma, pionowa, lub skośna. Wtedy łączymy te 5 kropek linią. Ewentualnie można linią połączyć 5 już istniejących kropek. Na rysunku pokazano przykład pierwszego ruchu. Program powinien pozwalać na zabawę w tę łamigłówkę, pozwalać tylko na prawidłowe ruchy i posiadać licznik ruchów. 20. Kalkulator rezystancji i pojemności Zadanie polega na opracowaniu kalkulatora wartości rezystorów i kondensatorów. Kolory poszczególnych elementów kodu paskowego powinny być wprowadzane za pomocą rozwijanego menu. Kalkulator powinien prawidłowo określać wartości elementu. 21. Kalkulator macierzy
Zadanie polega na stworzeniu aplikacji, wykonującej działania na macierzach. Dane powinny być wprowadzane za pomocą interfejsu graficznego, wynik powinien pojawiać się w oddzielnym oknie z możliwością wydrukowania go. 22. Działanie na wektorach w przestrzeni 3D Aplikacja realizująca działanie na wektorach w przestrzeni trójwymiarowej. Wynik operacji powinien być przedstawiony w postaci współrzędnych oraz graficznie. 23. Wykresy funkcji Zadanie polega na napisaniu programu, rysującego wykresy funkcji (podstawowy zakres to wielomiany, rozszerzenie - inne funkcje: trygonometryczne, eksponent, logarytmiczne i inne oraz ich kombinacje), w zadanym przedziale. Skala w osi rzędnych powinna być obliczana automatycznie. Dodatkowa cecha - obliczanie miejsc zerowych funkcji w zadanym przedziale. 24. Symulator analizatora widma Zadanie polega na napisaniu programu, obliczającego i prezentującego graficznie widmo wprowadzonego. Obie skale powinny być dobierane automatyczne. Program powinien być wyposażony w możliwość przedstawienia widma podstawowych przebiegów (prostokąt, trójkąt, piła, modulacja AM i FM o zadanej głębokości). 25. Przetwornik A/C i C/A Zadanie polega na stworzeniu aplikacji symulującej działanie przetwornika A/C i C/A. Dokładność przetwornika powinna być zadana, zakres sygnałów wejściowych i wyjściowych - dobierany automatyczne. 26. Gra w futbol Zadanie polega na stworzeniu symulatora gry w futbol, ćwiczonej przez studentów na kartce papieru na nudnych zajęciach. 27.Sudoku Zadanie polega na stworzeniu klasycznej układanki sudoku (rozmieszczanie cyfr od 1 do 9 w kwadracie 9 x 9 podzielonym na 9 kwadratów 3x3). Układanka powinna posiadać kilka poziomów trudności. Dodatkowa opcja - podpowiedzi dozwolonych ruchów. 28. Teleturniej "Milionerzy" Zadanie polega na stworzeniu bazy pytań oraz interfejsu gra do popularnego niegdyś teleturnieju "milionerzy". 29. Zamiana liczb arabskich na rzymskie i odwrotnie 30. Baza pytań i test na prawo jazdy 31. Poker Zadanie polega na napisaniu symulatora gry w pokera z komputerem (komputer powinien grać inteligentnie). Dodatkowa opcja - licytacja. Aplikacja może zawierać różne wersje gry. 32. Sklep internetowy Zadanie polega na stworzeniu bazy danych sklepu, sprzedającego wybrany asortyment towarów z możliwością logowania klienta i zakupów przez Internet.
33. Gra "saper" Klasyczna w większości wersji systemu Windows gra. Aplikacja powinna umożliwiać grę na różnych poziomach. 34. Woltomierz TRUE-RMS Zadanie polega na stworzeniu symulacji woltomierza TRUE-RMS, prawidłowo mierzącego (z definicji) wartość skuteczną napięcia o dowolnym kształcie. Aplikacja powinna również zawierać generatory napięć o podstawowych kształtach i możliwość ich pomiaru za pomocą woltomierza np. z podwójnym całkowaniem w celu określenia jego błędów. Zakresy pomiarowe obu mierników powinny zmieniać się automarycznie.