May 1, 2025, Thursday, 120

C/Zadanie6 2017

From MJanik

(Difference between revisions)
Jump to: navigation, search
(Created page with "Na laboratoriach pojawią się struktury. Powtórzymy również funkcje, tablice oraz dynamiczną alokację pamięci. <hr> Napisać program generujący raport statystyczny dla ...")
 
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.