May 1, 2025, Thursday, 120

C/Zadanie7 2015

From MJanik

(Difference between revisions)
Jump to: navigation, search
(Created page with "Na laboratoriach ponownie pojawią się struktury, tym razem również zagnieżdżone. Z nowości równeż: Makefile, podział na pliki .c i .h oraz enum. Powtórzymy również f...")
Line 2: Line 2:
<hr>
<hr>
-
<!--
+
 
Zadanie polega na stworzeniu bazy danych studentów Politechniki Warszawskiej. Zakładamy, że każdy student może być opisany przez następujący zestaw danych: char imie[30], char nazwisko[100], int wiek, int rokStudiow, int ECTS, int wydzial. Zauważmy, że imię, nazwisko oraz wiek pełnią rolę danych osobowych, zatem możemy je umieścić w jednej strukturze o nazwie DaneOsobowe. Z kolei struktura Student będzie zawierała DaneOsobowe, rok studiów, punkty ECTS oraz wydział.
Zadanie polega na stworzeniu bazy danych studentów Politechniki Warszawskiej. Zakładamy, że każdy student może być opisany przez następujący zestaw danych: char imie[30], char nazwisko[100], int wiek, int rokStudiow, int ECTS, int wydzial. Zauważmy, że imię, nazwisko oraz wiek pełnią rolę danych osobowych, zatem możemy je umieścić w jednej strukturze o nazwie DaneOsobowe. Z kolei struktura Student będzie zawierała DaneOsobowe, rok studiów, punkty ECTS oraz wydział.
Do wykonania:
Do wykonania:
Line 21: Line 21:
* Zrozumienie, analiza treści, projekt programu + poprawność i estetyka kodu (oraz wypisywanych informacji). (1 p.)
* Zrozumienie, analiza treści, projekt programu + poprawność i estetyka kodu (oraz wypisywanych informacji). (1 p.)
-
-->
+
<!-- -->

Revision as of 06:06, 23 April 2015

Na laboratoriach ponownie pojawią się struktury, tym razem również zagnieżdżone. Z nowości równeż: Makefile, podział na pliki .c i .h oraz enum. Powtórzymy również funkcje i tablice struktur.


Zadanie polega na stworzeniu bazy danych studentów Politechniki Warszawskiej. Zakładamy, że każdy student może być opisany przez następujący zestaw danych: char imie[30], char nazwisko[100], int wiek, int rokStudiow, int ECTS, int wydzial. Zauważmy, że imię, nazwisko oraz wiek pełnią rolę danych osobowych, zatem możemy je umieścić w jednej strukturze o nazwie DaneOsobowe. Z kolei struktura Student będzie zawierała DaneOsobowe, rok studiów, punkty ECTS oraz wydział. Do wykonania:


  • Stwórz strukturę DaneOsobowe zawierającą składniki: char imie[30], char nazwisko[100], int wiek. Umieść definicję struktury w pliku DaneOsobowe.h. Stwórz 2 funkcje powiązane ze strukturą DaneOsobowe: void UstawDaneOsobowe(DaneOsbowe *dane, char *imie, char *nazwisko, int wiek) oraz void WypiszDaneOsobowe(DaneOsobowe *dane) ustawiające i wypisujące składniki struktury DaneOsobowe. Umieść deklaracje funkcji w pliku DaneOsobowe.h a ich definicje w pliku DaneOsobowe.c. Ustawiamy poleceniem typedef nazwę struktury na DaneOsobowe. (1.5 p.)


  • Stwórz strukturę Student zawierającą składniki: DaneOsobowe dane, int rokStudiow, int ECTS, int wydzial. Umieść strukturę w pliku Student.h. Stwórz 2 funkcje powiązane ze strukturą Student:
    • void UstawStudent(Student *student, char *imie, char *nazwisko, int wiek, int rokStudiow, int ECTS, int wydzial) oraz
    • void WypiszStudent(Student *student) ustawiające i wypisujące składniki struktury DaneOsobowe.

Uwaga! Funkcje powinny wywoływać odpowiednie funkcje ustawiające i wypisujące ze struktury DaneOsobowe. Umieść deklaracje funkcji w pliku Student.h a ich definicje w pliku Student.c. Dla ułatwienia zakładmy, że wydział może być typu wyliczeniowego enum. Stworzyć w pliku Student typ wyliczeniowy: enum wydzialy{FIZYKI, MINI, CHEMICZNY, MEIL, EITI}; Typ wyliczeniowy wykorzystujemy w funkcji WypiszStudent, gdy wypisujemy nazwę wydziału (instrukcja switch-case). Ustawiamy poleceniem typedef nazwę struktury na Student. (2 p.)


  • W funkcji głównej (main) tworzymy dynamicznie tablicę obiektów typu Student. Tablicę wypełniamy danymi z pliku studenci.txt, w którym w pierwszej linijce przechowywana jest liczba studentów zawartych w pliku. Po wypełnieniu tablicy danymi z pliku wypisujemy studentów na ekran. (1 p.)
  • Całość kompilujemy w linii poleceń używając pliku Makefile oraz polecenia make. (0.5 p)
  • Zrozumienie, analiza treści, projekt programu + poprawność i estetyka kodu (oraz wypisywanych informacji). (1 p.)