From MJanik
(Difference between revisions)
|
|
(One intermediate revision 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ł. |
| Do wykonania: | | Do wykonania: |
Line 16: |
Line 16: |
| | | |
| | | |
- | * W funkcji głównej (<b>main</b>) tworzymy dynamicznie tablicę obiektów typu Student. Tablicę wypełniamy danymi z pliku [http://www.if.pw.edu.pl/~majanik/files/PP/studenci 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.) | + | * W funkcji głównej (<b>main</b>) tworzymy dynamicznie tablicę obiektów typu Student. Tablicę wypełniamy danymi z pliku [http://www.if.pw.edu.pl/~majanik/files/PP/studenci.txt 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 <b>Makefile</b> oraz polecenia make. (0.5 p) | | * Całość kompilujemy w linii poleceń używając pliku <b>Makefile</b> oraz polecenia make. (0.5 p) |
| | | |
| * 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.) |
- | --> | + | <!-- --> |
Latest 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.)