Page 1637 - Informatica dalla A a Z
P. 1637

Esercizio4: Il programma dovrà permettere all’utente di inserire una serie di rilevamenti

           geografici (latitudine e longitudine). L’inserimento di una latitudine pari a 100 indicherà la
           fine della fase di inserimento.
           L’elaboratore salverà i dati in un file binario.
           Successivamente l’utente inserirà una latitudine e l’elaboratore, cercando nel fine, troverà
           e visualizzerà tutti i rilevamenti caratterizzati da quel valore di latitudine.
           Infine, l’elaboratore visualizzerà il numero di rilevamenti trovati.

           Soluzione:
              #include <stdio.h>


              typedef struct
              {
                  unsigned int latitudine;
                  unsigned int longitudine;
              } Rilevamento;


              void inserisci (char nomeFile[])
              {
                  const unsigned int TERMINATORE = 100;
                  FILE *archivio;
                  Rilevamento nuovoRilev;


                  archivio = fopen (nomeFile, "wb");
                  printf ("Latitudine (100 per finire): ");
                  scanf ("%u", &nuovoRilev.latitudine);
                  if (nuovoRilev.latitudine != TERMINATORE)
                  {
                          printf ("Longitudine: ");

                          scanf ("%u", &nuovoRilev.longitudine);
                  }
                  while (nuovoRilev.latitudine != TERMINATORE)
                  {
                          fwrite (&nuovoRilev, sizeof(Rilevamento), 1, archivio);
                          printf ("Latitudine (100 per finire): ");
                          scanf ("%u", &nuovoRilev.latitudine);
                          if (nuovoRilev.latitudine != TERMINATORE)
                          {
                               printf ("Longitudine: ");
                               scanf ("%u", &nuovoRilev.longitudine);
                          }
                  }
                  fclose (archivio);
              }


                                                           1633
   1632   1633   1634   1635   1636   1637   1638   1639   1640   1641   1642