Projekty zaliczeniowe z C++



Podobne dokumenty
1. Liczby całkowite 512-bitowe 2. Gra w kółko i krzyżyk z komputerem 3. Baza danych biura lub sklepu. 4. Słownik elektroniczny

Rok akademicki: 2016/2017 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Zadania semestralne. Programowanie obiektowe sem. II, lato 2014/2015

Program testujący powinien testować możliwości wszystkich klas posiadających minimum jedną metodę, zastosowania STL-a i obsługę sytuacji wyjątkowych.

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Zaliczenie przedmiotu:

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

Narysować diagram sekwencji pokazujący rejestrację wypożyczenia przez Jana Kowalskiego książki Potop

Ekran tytułowy (menu główne)

Algorytmy sztucznej inteligencji

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Programowanie 3 - Funkcje, pliki i klasy

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Programowanie obiektowe. Tematy projektów

PODSTAWOWE POJĘCIA BAZ DANYCH

Polimorfizm w pigułce

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE WIADOMOŚCI I UMIEJĘTNOŚCI UCZNIÓW

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

EGZAMIN ÓSMOKLASISTY od roku szkolnego 2018/2019

Wymagania edukacyjne z matematyki dla klasy III gimnazjum

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Podstawy obiektowości

MATEMATYKA - WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY

PRZEDMIOTOWE ZASADY OCENIANIA I WYMAGANIA EDUKACYJNE Z MATEMATYKI Klasa 3

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Przedmiotowe zasady oceniania i wymagania edukacyjne

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

1) Naciśnij i przytrzymaj przez 2 sekundy ikonę z menu głównego, następnie naciśnij Potwierdź.

Wymagania Uczeń zna zasady bezpiecznej pracy z komputerem. Uczeń stosuje się do regulaminu szkolnej pracowni komputerowej.

EGZAMIN ÓSMOKLASISTY od roku szkolnego 2018/2019

Wykład 9: Polimorfizm i klasy wirtualne

dr inż. Jarosław Forenc

Podstawy Programowania

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

w najprostszych przypadkach, np. dla trójkątów równobocznych

Tematy zadań indywidualnych:

FINAŁ. Wszystkie zadania

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Lab 9 Podstawy Programowania

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

Metody i analiza danych

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

Wymagania edukacyjne i kryteria oceniania w klasie VI 2013/2014 OBSZARY AKTYWNOŚCI UCZNIA PODLEGAJĄCE OCENIE

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

WARIATOR USTAWIENIA Białystok, Plażowa 49/1, Poland,

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

ZESPÓŁ SZKÓŁ W OBRZYCKU

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

5.4. Tworzymy formularze

Programowanie w języku Java

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Podstawy Programowania Obiektowego

Kompletna dokumentacja kontenera C++ vector w -

Programowanie genetyczne, gra SNAKE

Wymagania edukacyjne na ocenę z informatyki klasa 3

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Algorytm. a programowanie -

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY V

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Wymagania Uczeń zna zasady bezpiecznej pracy z komputerem. Uczeń stosuje się do regulaminu szkolnej pracowni komputerowej.

Algorytmy i schematy blokowe

Programowanie obiektowe - zadania

Spadające jabłuszka. licencja CC-BY-SA Uznanie autorstwa Na tych samych warunkach 3.0 Polska. Strona 51

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II W PUBLICZNYM GIMNAZJUM NR 2 W ZESPOLE SZKÓŁ W RUDKACH

Laboratorium nr 5. Bazy danych OpenOffice Base.

Tematy projektów C++ Programowanie obiektowe Mateusz Cicheński

Zasady programowania Dokumentacja

D O K U M E N T A C J A

Podstawy i języki programowania

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Podręcznik użytkownika programu. Ceremonia 3.1

Kryteria ocen z matematyki w klasie 4. Matematyka z plusem WYMAGANIA WYMAGANIA KONIECZNE. WYKRACZAJĄCE ocena ROZSZERZAJĄCE PODSTAWOWE

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości

Informatyka. Michał Rad

usosadm.uni.opole.pl NALICZANIE NALEŻNOŚCI

Programowanie obiektowe

Proporcjonalność prosta i odwrotna

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

ActionLab - oprogramowanie do tworzenia labiryntów interaktywnych V1.0.1

Część I - Zarządzanie powierzchnią ekranu

Gra na telefon komórkowy

Transkrypt:

Projekty zaliczeniowe z C++ Kryteria ocen. Przy ocenianiu programu będę brał pod uwagę następujące elementy: - obiektowość programu (umiejętność wykorzystania obiektowości języka C++ do rozwiązania danego problemu, czyli np. odpowiednie zdefiniowanie klas, odpowiednie przeciążenie operatorów itp.); - użycie dziedziczenia; - użycie wzorców; - użycie biblioteki STL; - użycie polimorfizmu (mile widziane); - przejrzystość i czytelność kodu (komentarze, podział kodu na pliki); - prezentację programu Nie w każdym programie da się umieścić wzorce, dziedziczenie, polimorfizm i biblioteki STL na raz, jednak każdy z tych elementów będzie podwyższał ostateczną ocenę. Proszę raczej nawet przesadzać z tymi elementami aby wykazać się ich znajomością (nawet jeśli wydawać się będą wciśnięte do programu nieco na siłę). Interfejs użytkownika lub graficzny będą miały najmniejszy wpływ na ocenę. Podobnie zakres możliwości przechowywania danych w programach bazodanowych może być ograniczony do minimum. Program będzie trzeba obronić, więc proszę się na to odpowiednio przygotować. Należy podejść do tego tak jakby chcieli Państwo przedstawić ewentualnemu klientowi swój produkt i jednocześnie pochwalić się znajomością podstawowych zagadnień z programowania w C++. (Przy zaliczaniu programu mogę zapytać np. o jakieś podstawowe pojęcia związane z tworzeniem klas, dziedziczeniem itp.) Na wszelki wypadek dodam jeszcze, że program musi się skompilować i zadziałać! Wybór zadania proszę zgłosić na zajęciach. Pozdrawiam Piotr Duszyński Lista tematów prostszych, za 30 punktów: 1. Biblioteka do działań na macierzach (wersja prostsza). Macierze prostokątne, pamięć alokowana dynamicznie, sprawdzanie wymiarów podczas operacji, podstawowe działania jak dodawanie odejmowanie, mnożenie, obliczanie wyznacznika. 2. Program prezentujący klasę String. Wszelkiego rodzaju operacje możliwe do wykonania na łańcuchach znakowych. Możliwość wykonywania wielu operacji w jednej instrukcji, np.: String s = aaa ; int n = s.trim().length(); 3. Program prezentujący klasę Wektor3D. Operacje na wektorach 3D różnego typu, np. int i double. Należy zastosować wzorce. 4. Program prezentujący klasę Ułamek. Operacje na liczbach całkowitych. (Wykonać operacje pokazujące poprawność działań.)

5. Punkt trójwymiarowy (wersja prostsza) W tym zadaniu 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. Lista tematów trudniejszych, za 40 punktów: 6. Baza danych pojazdów. Wprowadzanie i usuwanie pojazdu, wyświetlanie danych o pojeździe, odczyt i zapis bazy danych do pliku (najlepiej w formacie binarnym). W programie należy utworzyć klasę Pojazd i przynajmniej jej dwie klasy pochodne, np.: Osobowy i Motor. Użyć funkcji wyświetlającej dane wykorzystującej polimorfizm. 7. Książka adresowa. Wprowadzanie i usuwanie pozycji z książki. Odczyt i zapis książki do pliku (najlepiej w formacie binarnym). Wyświetlanie danych z danej pozycji książki. 8. Kolejka FIFO. Wykorzystanie kolejki FIFO do kolejkowania zamówień w sklepie. Dodawanie zamówień, pobieranie zamówień, odczyt i zapis kolejki do pliku (najlepiej w formacie binarnym). 9. Program prezentujący klasę Data. Wszelkie operacje możliwe do wykonania na datach, np.: różnica dwóch dat, przesuwanie daty o zadaną liczbę dni, miesięcy. Możliwość wyświetlania daty w kilku różnych formatach. (Ewentualnie sprawdzanie dni świątecznych.) 10. Biblioteka do działań na macierzach (wersja trudniejsza). Macierze prostokątne, pamięć alokowana dynamicznie, sprawdzanie wymiarów podczas operacji. Oprócz podstawowych działań na macierzach należy: wyznaczać macierz odwrotną, macierz trójkątną itp. Należy również zastosować wzorce. 11. Baza płyt CD z programami. Dane w pliku tekstowym, ew. automatyczne skanowanie płyt np. ls -R > lista + analiza pliku 'lista'. 12. Kalkulator tekstowy. Podstawowe operacje + obsługa nawiasów, ewentualnie funkcje trygonometryczne. 13. Tekstowy edytor wsadowy (cos w rodzaju sed'a linuxowego). Np. komenda 'tedytor asdas qqq' zamieni wszystkie stringi 'asdas' na 'qqq'. Może być również proste przeszukiwanie w stylu grepa. 14. Gra w kółko i krzyżyk z komputerem

Należy napisać grę w kółko i krzyżyk na planszy 3 x 3 pola. Komputer powinien grać inteligentnie, a więc nigdy nie przegrywać (istnieje strategia gwarantująca minimum remis). 15. Baza danych dla biura matrymonialnego Baza, oprócz danych osobowych powinna zawierać pole zawierające słowa kluczowe (np. zainteresowania czy preferencje osób) i dokonywać kojarzenia par korzystając również z tego pola. Baza powinna mieć konstrukcję obiektową. 16. Słownik elektroniczny Program umożliwiający gromadzenie definicji pojęć, a następnie przeglądanie i wyszukiwanie tych definicji. Cechą dodatkową może być wyszukiwanie według wzorców z '*' i '?'. 17. Punkt trójwymiarowy (wersja trudniejsza) W tym zadaniu 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. Utrudnienie polega na zdefiniowaniu klasy 'figura 3D' zawierającej zbiór punktów, oraz operacji przesunięcia, obrotu i rzutu figury. 18. Gra typu Space Invaders Gra taka 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 ostatni 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. 19. Gra Tetris Gra powinna działać w terminalu graficznym. 20. Symulator gry w życie Gra w życie to tak zwany automat komórkowy, składający się z kwadratowych komórek na płaszczyźnie. Proste reguły opisują śmierć, przeżywanie i narodziny nowych komórek. Kolejne pokolenia organizmów to zmieniające się układy punktów na kwadratowej siatce. Zadanie polega na napisaniu klasy języka C++ będącej symulatorem gry w życie. Cechy dodatkowe: zapis i odczyt organizmów na dysku, utworzenie dwupoziomowej hierarchii klas umożliwiającej zastosowanie różnych reguł. 21. 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. 22. Gra w węża Po planszy porusza się wąż zjadając pojawiające się przedmioty. Po zjedzeniu każdego przedmiotu staje się dłuższy. Gracz przegrywa, gdy wąż zetknie się z sobą samym.

23. Gra Magazynier Tematem zadania jest 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... Poziomy gry powinny być czytane z pliku tekstowego (jednego lub wielu). 24. Łamigłówka Szafa Kowalskich 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 (i tylko tego elementu). Szafa Kowalskich 25. Gra River Raid Ta pozycja to 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ł. 26. Program Automat z napojami Program ma symulować działanie automatu z napojami, który po wrzuceniu odpowiedniej monety oraz wybraniu dowolnej pozycji wydaje zamówiony napój. Zakłada się, że w automacie znajdują się napoje różnego typu (Coca Cola, Pepsi, Sprite). Automat ma posiadać możliwość wydawania reszty. 27. Program Kuchenka mikrofalowa Program ma symulować działanie kuchenki mikrofalowej. Kuchenka mikrofalowa ma umożliwiać gotowanie potraw po uprzednim ustawieniu temperatury oraz czasu działania urządzenia. Program ma być skonstruowany w taki sposób, aby możliwa była sytuacja w której dana potrawa spali się w sytuacji gdy czas gotowania nie odpowiada rodzajowi gotowanego produktu. 28. Program Bankomat Program ma symulować działanie bankomatu. Bankomat po włożeniu karty elektronicznej (karta kredytowa, płatnicza, bankomatowa) oraz weryfikacji posiadacza karty (sprawdzenie PIN), powinien wydawać żądaną kwotę pieniędzy. Program powinien być napisany w taki sposób, aby przed instalacją bankomatu można było określić jakie rodzaje kart elektronicznych są akceptowane (obsługiwać między innymi następujące karty: Visa, American Express, Visa Electron, Mastercard). 29. Program Samochód

Program ma symulować działanie samochodu. Powinno być możliwe symulowania jazdy samochodem z możliwością realizowania następujących funkcji: włączenie / wyłączenie silnika, zmiana biegów, przyśpieszanie, hamowanie. Podczas jazdy użytkownik powinien mieć możliwość obserwowania parametrów samochodu (szybkość, włączony bieg, obroty silnika). Program powinien obsługiwać funkcję w których jazda nie będzie możliwa ze względu na brak benzyny, bądź zatarty silnik (spowodowany brakiem oleju). 30. Program Biblioteka Program ma wspierać bibliotekę w procesie obsługi czytelników. Powinna być możliwość wypożyczenia książki, jej zwrotu oraz sprawdzenia czy książka jest dostępna w danej chwili do wypożyczenia. Dla poszczególnych czytelników powinna być przechowywana informacji o książkach aktualnie wypożyczonych, czasie w którym książkę należy zwrócić oraz ew. karze naliczonej za opóźnienie w zwrocie książki. 31. Program Dziekanat Program ma wspierać dziekanat w obsłudze procesu dydaktycznego. Powinna być możliwość zapisania studenta na zajęcia (wykłady i ćwiczenia), kontrola ilości wolnych miejsc na poszczególnych zajęciach, związywanie prowadzących z zajęciami. Dla prowadzących powinno być uwzględniane pensum (210 godz. adiunkt i asystent, 180 godz. profesor, 90 godz. doktorant). Program powinien umożliwiać sprawdzenie rodzaju zajęć na które jest zapisany dany student. 32. Program Sklep Program ma wspierać obsługę sklepu dowolnego rodzaju. Powinna być możliwość przyjęcia towaru do sklepu oraz jego sprzedaż w sposób hurtowy i detaliczny. Dla sprzedaży hurtowej powinna być możliwość rejestrowania stałych klientów. Sprzedaż ma polegać na wybieraniu towarów do koszyka, naliczaniu zbiorczej ceny, zapłatę z pieniędzy posiadanych w portfelu oraz usuwanie sprzedanych towarów z magazynu.