October 31, 2024, Thursday, 304

C/Zad6 2016

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 statystyczn...")
 
(2 intermediate revisions 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ę): <i> struct Ksiazka *wczytaj_dane (FILE *we, int rozmiar)</i>.  
+
* 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 obliczające wymagane dane statystyczne.
+
* Instrukcje funkcji main() pytające o nazwę pliku oraz prawidłowo wywołujące powyższą funkcję.
-
* Wyświetlenie wyników analizy na ekranie.
+
* 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>
 +
* 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.