Semestr zimowy 2024/25

Konsultacje:
śr. 15-16, pt. 12-13 (p. 904)
Wykład:
wt. 16:15-18:00 (s. WS)


Projekty na zaliczenie:

Projekt 1:

1 projekt to rozwinięcie Projektu 2 z C++ 1. W tamtym projekcie należało stworzyć listę dynamiczną obiektów, którymi były dane osób. W obecnym projekcie należy stworzyć podobną listę, z tym, że obecnie elementami powinny być książki. Należy przechowywać dane autora/autorki, tytuł, rok wydania, cenę. Należy dodać komunikację z plikami. W szczególności:



Uwaga: Jeszcze raz podkreślam, proszę używać tylko narzędzi które oficjalnie poznaliśmy.

Termin złożenia projektu (Uwaga, termin przesunięty): 16.12.24



Projekt 2:

Napisz program, który będzie realizował bazę danych studentów, prowadzących, wykładów i zapisów. Baza powinna być przechowywana w plikach tekstowych. Powinny być 4 pliki: student.txt (imię, nazwisko, numer indeksu - powiedzmy 6 cyfr), prowadzacy.txt (imię, nazwisko, kod prowadzącego - powiedzmy 3 cyfry, numer gabinetu - powiedzmy unsigned int), wyklad.txt (nazwa przedmiotu, kod prowadzącego, kod przedmiotu - powiedzmy 3 cyfry) oraz zapis.txt (numer indeksu i kod przedmiotu). Program po uruchomieniu powinien wczytać te 4 pliki do 4 list dynamicznych. Klasy należy definiować używając dziedziczenia - zarówno student jak i prowadzący powinni dziedziczyć po jakiejś nadrzędnej klasie. Składniki klas będące danym powinny być prywatne. Elementami list powinny być obiekty odpowiednich klas. Należy użyć gotowych szablonów list. Program powinien umożliwiać dodawanie elementów do list, usuwanie. Powinien umożliwiać znajdowanie elementów w poszczególnych listach. Do wypisywania danych na ekran (student, prowadzący, wykład) jak i do wczytywania z klawiatury należy użyć przeładowanych operatorów << i >>. Przed zakończeniem działania program powinien zapisać listy do odpowiednich plikow. Program powinien być zorganizowany w osobnych plikach. Klasy powinny być zdefiniowane w odpowiednich plikach nagłówkowych. Należy użyć ''header guards'', żeby zapobiec wielokrotnemu wczytywaniu. Ewentualne pytania prosze kierować do mnie mailowo.

Termin złożenia projektu: poniedziałek 3.02. (włącznie)

Materiały wytworzone na wykładzie: main.cpp, Person.h




Uwaga: projekty (w postaci pliku .cpp lub kompletu plików .h .cpp) proszę przesłać swojemu prowadzącemu grupę lab. Program powinien zawierać wystarczająco dużo komentarzy, żeby sprawdzający mógł go skompilować zrozumieć i przetestować. W trakcie pisania projektu jak najbardziej można się konsultować z innymi, ale każdy projekt powinien być napisany i przetestowany samodzielnie. Poprawiający po złożeniu projektu mogą zadawać pytania i wyjaśniać różne wątpliwości.



Listy na laboratorium:


Lista 1 Lista 2 Lista 3


Materiały z wykładu:


  1. Klasy: prog1
  2. Strumienie: prog1, prog2, prog3, prog4, prog5, prog6, prog7, prog8, prog9, prog10
  3. Stringi: prog1, prog2, prog3, prog4, prog5, prog6, prog7, prog8
  4. Struktury danych: prog1, prog2
  5. Struktury danych: prog1, prog2, prog3, prog4, prog5,
  6. Struktury danych: prog1, prog2, prog2a, prog2b, prog2c, prog2d, prog2e, prog3, prog4,