May 5, 2024, Sunday, 125

C/Zadanie 6

From MJanik

Jump to: navigation, search

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.