PO 2017: Wejściówka na Lab.6

Napisz program wczytujący z pliku listę rekordów (rekord to kolekcja kilku dowolnych wartości, każda ściśle określonego typu, występujących w ustalonej, zawsze tej samej kolejności). Wczytywane rekordy składają się z trzech wartości. Wartości te są zapisane w jednym wierszu pliku tekstowego; każdy wiersz zawiera kolejno: nr indeksu studenta, nazwisko i ocenę, które rozdzielone są znakiem spacji. Typ danych do przechowywania jednego rekordu ma następującą budowę:

struct student {
	int nr_indeksu;
	char nazwisko[30];
	float ocena;
	struct student *nast;
};

W funkcji main pobierz od użytkownika nazwę pliku z danymi, otwórz ten plik w trybie do odczytu, a następnie wczytaj zawartość pliku do listy dynamicznej jednokierunkowej. W trakcie wczytywania program powinien wypisywać na ekranie aktualnie odczytywane wartości. Po zakończeniu czytania zamknij plik. Przyjmij, że dane w pliku są zawsze poprawne, tj. wiersz zawsze zawiera trójkę prawidłowych napisów w tej samej kolejności.

Po odczytaniu odwróć porządek elementów w liście dynamicznej, tak aby zaczynała się od ostatniego wczytanego elementu, a kończyła na pierwszym.

Następnie pobierz od użytkownika nazwę pliku do zapisu, otwórz plik o podanej nazwie w trybie do zapisu i zapisz do niego zawartość listy w takim samym formacie jaki miał plik wejściowy. Po zakończeniu zapisywania zamknij plik, usuń listę i zakończ działanie programu.

Przygotuj odpowiedni plik tekstowy z prawidłowymi danymi wejściowymi i umieść go we właściwym katalogu. Przygotuj dane w pliku tak, aby zawierał co najmniej 4 rekordy. Do obsługi plików wykorzystaj funkcje fopen, fclose, fprintf, fscanf i feof. Wszystkie z biblioteki: stdio.h.