November 1, 2024, Friday, 305

C/Zad6 2016

From MJanik

(Difference between revisions)
Jump to: navigation, search
 
(One intermediate revision not shown)
Line 2: Line 2:
<hr>
<hr>
-
 
<!--
<!--
-
Napisać program generujący raport statystyczny dla transportu książek z biblioteki. 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 [http://www.if.pw.edu.pl/~majanik/files/PP/ksiazki.txt ksiazki.txt]. Pierwsza linijka zawiera liczbę przewożonych książek. Każda następna opisuje kolejną książkę czterema liczbami, oznaczającymi (w kolejności): masę, grubość, wysokość, szerokość.
 
 +
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.
 +
<b>Raport powinien zawierać</b>
 +
* 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 [http://www.if.pw.edu.pl/~majanik/files/PP/wymiary.txt 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):<b> masę, grubość, wysokość, szerokość</b>. Kod programu powinien zostać odpowiednio podzielony na funkcje.
 +
 +
Sugerowana kolejność wykonywania działań:
* Definicja struktury <i>Ksiazka</i>.
* Definicja struktury <i>Ksiazka</i>.
-
* Funkcja wczytująca dane do tablicy (i zwracająca tą tablicę): <b> struct Ksiazka *wczytaj_dane (FILE *we, int rozmiar)</b>.  
+
* Funkcja wczytująca dane do tablicy (i zwracająca tą tablicę <b> oraz rozmiar tej tablicy </b> - przez wkaźnik! ):  
-
** Funkcja powinna zawierać utworzenie tablicy o odpowiednim rozmiarze (dynamiczna alokacja pamięci), wczytanie danych do tablicy - dane ze strumienia <i>we</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.
+
<b> struct Ksiazka *wczytaj_dane (char *nazwa_pliku, int* rozmiar)</b>.  
-
* Instrukcje funkcji main() pytające o nazwę pliku, otwierające plik i sprawdzające jego poprawność oraz prawidłowo wywołujące powyższą funkcję.
+
** 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.
 +
* 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(FILE *we, 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 oraz prawidłowe zamknięcie piku.
+
* Odpowiednie użycie wszystkich funkcji.
-
 
+
*  Umieść deklaracje funkcji w pliku Ksiazka.h a ich definicje w pliku Ksiazka.c.
-->
-->

Latest revision as of 10:03, 25 April 2017

Na laboratoriach pojawią się struktury. Powtórzymy również funkcje, tablice oraz dynamiczną alokację pamięci.