From MJanik
(Difference between revisions)
|
|
(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.