[C] Program zczytujący z pliku dane i wyświetlający emerytów


(Szuri21) #1

Witajcie. Mam kłopot z napisaniem programu w języku C, który najpierw sczyta z pliku dane typu imię, nazwisko, rok ur następnie sprawdzi którzy to emeryci i wyświetli mi ich.

Żeby nie było, że sam nic nie napisałem to podzielę się tym co mam. Tak naprawdę to brakuje mi funkcji, któa to zrobi i nie mam pojęcia jak ją napisać.

A mam tyle:

program.cpp:

#include 

#include "struktura.h"

#include 



int main()

{

int IloscRekordow;

int i;

FILE*fwsk;

OSOBA*Otablica;

fwsk=fopen("dane.txt", "r");

fscanf(fwsk, "Ilosc Rekordow: %d", &IloscRekordow);

	 	   Otablica=(OSOBA*)malloc(IloscRekordow*sizeof(OSOBA));

 for(i=0;i
	   {

		   fscanf(fwsk, "%s\n", Otablica[i].imiona);

		   fscanf(fwsk, "%s\n", Otablica[i].nazwiska);

		   fscanf(fwsk, "%d\n", &(Otablica[i].daty));

 }


}

struktura.h

struct osoba

{

	char imiona[20];

	char nazwiska[20];

	int daty;

};

typedef struct osoba OSOBA;

no i plik z danymi dane.txt:

Ilosc Rekordow: 4

Pawel

Poniedzialek

1980

Piotr

Wtorek

1930

Adam

Sroda

1940

Karol

Czwartek

1950

Potrzebuję teraz napisać tylko funkcję, która przeleci po datach i znajdzie mi emerytów i wypisze mi ich za pomocą printf.

Jakby ktoś był tak miły i pomógł mi to dokończyć to byłbym niezmiernie wdzięczny.


(Dludwicki) #2
int prog_emerytalny;

for(i=0;i
{

if(Otablica[i].daty <= prog_emerytalny)

   {

      printf(Otablica[i].imiona"\n");

      printf(Otablica[i].nazwiska"\n");

   }

}

należy jeszcze podać wartość zmiennej prog_emerytalny.

Z tym licznikiem pętli to nie jestem pewny czy liczysz rekordy od 0 czy od 1..

wypadałoby to zaznaczyć jakoś w komentarzu.

A pisanie biblioteki pod 1 procedurę to trochę przerost formy nad treścią..


(Szuri21) #3

Dzięki spróbuję to wprowadzić w "życie". A czy przerost formy nad treścią to tez tak uważam, ale tak mamy pisać i juz. Kazał nam tak prowadzący zajęcia i już.

-- Dodane 14.01.2011 (Pt) 14:09 --

Już sobie poradziłem. Zmodyfikowałem nieco Twoją pomoc i brakujący mi fragment jest taki:

int prog_emerytalny;

 prog_emerytalny=1946;

 printf("Emeryci na rok 2011 [urodzeni przed 1947 roku]: \n");

for(i=0;i
{

if(Otablica[i].daty <= prog_emerytalny)

   {


	  printf("%s ", Otablica[i].imiona);

      printf("%s ", Otablica[i].nazwiska);

	  printf("%d\n", Otablica[i].daty);

   }

}