May 1, 2025, Thursday, 120

C/Zad7 2016

From MJanik

(Difference between revisions)
Jump to: navigation, search
 
(3 intermediate revisions not shown)
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ł.
Line 9: Line 10:
* Stwórz strukturę <b>Student</b> 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:  
* Stwórz strukturę <b>Student</b> 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:  
-
** <b>void UstawStudent(Student *student, char *imie, char *nazwisko, int wiek, int rokStudiow, int ECTS, int wydzial)</b> oraz
+
** <b>void UstawStudent(Student *student, char *imie, char *nazwisko, int wiek, int rokStudiow, int ECTS, int wydzial)</b>  
-
** <b>void WypiszStudent(Student *student)</b> ustawiające i wypisujące składniki struktury DaneOsobowe.  
+
*** w funkcji UstawStudent powinna zostać wywołana funkcja UstawDaneOsobowe.
 +
** <b>void WypiszStudent(Student *student)</b> ustawiające i wypisujące składniki struktury Student
 +
*** w funkcji WypiszStudent powinna zostać wywołana funkcja WypiszDaneOsobowe.
<u>Uwaga!</u> 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: <b>enum wydzialy{FIZYKI, MINI, CHEMICZNY, MEIL, EITI};</b> Typ wyliczeniowy wykorzystujemy w funkcji WypiszStudent, gdy wypisujemy nazwę wydziału (instrukcja switch-case). Ustawiamy poleceniem typedef nazwę struktury na Student. (2 p.)
<u>Uwaga!</u> 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: <b>enum wydzialy{FIZYKI, MINI, CHEMICZNY, MEIL, EITI};</b> Typ wyliczeniowy wykorzystujemy w funkcji WypiszStudent, gdy wypisujemy nazwę wydziału (instrukcja switch-case). Ustawiamy poleceniem typedef nazwę struktury na Student. (2 p.)
Line 20: Line 23:
Obowiązkowo:
Obowiązkowo:
* Zrozumienie, analiza treści, projekt programu + poprawność i estetyka kodu (oraz wypisywanych informacji).
* Zrozumienie, analiza treści, projekt programu + poprawność i estetyka kodu (oraz wypisywanych informacji).
-
 
-
<!--
 
-
-->
 

Latest revision as of 08:27, 15 May 2017

Na laboratoriach ponownie pojawią się struktury, tym razem również zagnieżdżone. Z nowości: 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. (2 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)
      • w funkcji UstawStudent powinna zostać wywołana funkcja UstawDaneOsobowe.
    • void WypiszStudent(Student *student) ustawiające i wypisujące składniki struktury Student
      • w funkcji WypiszStudent powinna zostać wywołana funkcja WypiszDaneOsobowe.

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.5 p.)
  • Całość kompilujemy w linii poleceń używając pliku Makefile oraz polecenia make. (0.5 p)


Obowiązkowo:

  • Zrozumienie, analiza treści, projekt programu + poprawność i estetyka kodu (oraz wypisywanych informacji).