From MJanik
(Difference between revisions)
|
|
Line 15: |
Line 15: |
| * Funkcja wczytująca dane do tablicy (i zwracająca tą tablicę <b> oraz rozmiar tej tablicy </b> - przez wkaźnik! ): | | * Funkcja wczytująca dane do tablicy (i zwracająca tą tablicę <b> oraz rozmiar tej tablicy </b> - przez wkaźnik! ): |
| <b> struct Ksiazka *wczytaj_dane (char *nazwa_pliku, int* rozmiar)</b>. | | <b> struct Ksiazka *wczytaj_dane (char *nazwa_pliku, int* rozmiar)</b>. |
- | ** Funkcja powinna zawierać określenie dlugości tablicy na podstawie podanego pliku, utworzenie tablicy o odpowiednim rozmiarze (dynamiczna alokacja pamięci), wczytanie danych do tablicy - dane z pliku <i>nazwa_pliku</i>, oraz zwrócenie przez funkcje utworzonej tablicy. Wczytanie liczby książek powinno się odbywać w funkcji main() i liczba ta powinna być przekazywana przez argument funkcji. | + | ** Funkcja powinna zawierać określenie dlugości tablicy na podstawie podanego pliku, utworzenie tablicy o odpowiednim rozmiarze (dynamiczna alokacja pamięci), wczytanie danych do tablicy - dane z pliku <i>nazwa_pliku</i>, oraz zwrócenie przez funkcje utworzonej tablicy. |
| * Instrukcje funkcji main() pytające o nazwę pliku oraz prawidłowo wywołujące powyższą funkcję. | | * Instrukcje funkcji main() pytające o nazwę pliku oraz prawidłowo wywołujące powyższą funkcję. |
| * Funkcja wypisująca szukane statystyki na ekran <b> void wypisz_na_ekran(struct Ksiazka* ksiazki, int rozmiar) </b> | | * Funkcja wypisująca szukane statystyki na ekran <b> void wypisz_na_ekran(struct Ksiazka* ksiazki, int rozmiar) </b> |
| * Funkcja zapisująca szukane statystyki do pliku <b> void zapisz_do_pliku(char* nazwa_pliku, struct Ksiazka * ksiazki, int rozmiar) </b> | | * Funkcja zapisująca szukane statystyki do pliku <b> void zapisz_do_pliku(char* nazwa_pliku, struct Ksiazka * ksiazki, int rozmiar) </b> |
| * Odpowiednie użycie wszystkich funkcji. | | * Odpowiednie użycie wszystkich funkcji. |
- | * Umieść deklaracje funkcji w pliku Ksiazka.h a ich definicje w pliku Ksiazka.c.
| |
Latest revision as of 14:33, 25 April 2017
Na laboratoriach pojawią się struktury. Powtórzymy również funkcje, tablice oraz dynamiczną alokację pamięci.
Napisać program generujący raport statystyczny dla transportu książek z biblioteki, z możliwością wypiania raportu na ekran bądź zapisania go bezpośrednio do pliku.
Raport powinien zawierać
- sumaryczną liczbę książek,
- średnią grubość książki,
- sumaryczną objętość oraz
- masę.
Książki powinny być reprezentowane w programie jako obiekty struktury. Dane nt. transportu wczytać z pliku do tablicy (zapytaj użytkownika o nazwę pliku), a następnie przy użyciu tablicy obliczyć statystyki. Spis transportu dostarczony jest w niniejszym zestawieniu wymiary.txt. Liczbę przewożonych książek należy obliczyć wczytując plik, iterując po wszystkich rekordach, a następnie należy go zamknąć i otworzyć ponownie. Każdy wiersz opisuje kolejną książkę czterema liczbami, oznaczającymi (w kolejności): masę, grubość, wysokość, szerokość. Kod programu powinien zostać odpowiednio podzielony na funkcje.
Sugerowana kolejność wykonywania działań:
- Definicja struktury Ksiazka.
- Funkcja wczytująca dane do tablicy (i zwracająca tą tablicę oraz rozmiar tej tablicy - przez wkaźnik! ):
struct Ksiazka *wczytaj_dane (char *nazwa_pliku, int* rozmiar).
- Funkcja powinna zawierać określenie dlugości tablicy na podstawie podanego pliku, utworzenie tablicy o odpowiednim rozmiarze (dynamiczna alokacja pamięci), wczytanie danych do tablicy - dane z pliku nazwa_pliku, oraz zwrócenie przez funkcje utworzonej tablicy.
- Instrukcje funkcji main() pytające o nazwę pliku oraz prawidłowo wywołujące powyższą funkcję.
- Funkcja wypisująca szukane statystyki na ekran void wypisz_na_ekran(struct Ksiazka* ksiazki, int rozmiar)
- Funkcja zapisująca szukane statystyki do pliku void zapisz_do_pliku(char* nazwa_pliku, struct Ksiazka * ksiazki, int rozmiar)
- Odpowiednie użycie wszystkich funkcji.