Guest User

Untitled

a guest
Jun 21st, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.41 KB | None | 0 0
  1. /* creare con un editor di programma,il file di testo anagrafe.txt;
  2. ogni linea di file di testo anagrafe.txt deve contenere le informazioni seguenti: cognome,nome e stipendio del dipendente;
  3. inoltre anagrafe.txt deve essere creato ordinato rispetto al campo stipendio(ci possono essere ripetizioni);
  4.     definire un progetto dev,in c, in grado di risolvere Il problema seguente:
  5.     1 stampare le informazioni contenute nel file anagrafe.txt;
  6.     2 leggere le informazioni contenute nel file di testo,anagrafe.txt, e memorizzarle nel vettore dipendenti di cardinalità dim;
  7.     ogni elemeo di dipendenti è un record,struttura,di nome dipendente composto dai campi:
  8.     cognomeDip 16 caratteri (cognome dipendente)
  9.     nomeDip 12 caratteri (nome del dipendente)
  10.     stipAnnuo intero (stipendio annuo)
  11.     3 stampare dipendenti;
  12.     4 leggere da tastiera un vak e carcare nel vettore dipendenti, se esiste,la posizione del dipendente avente lo stipendio uguale a val;
  13.     utilizzare l'algoritmo di ricerca binaria;
  14.     5 stampare, se esiste, le informazioni del dipendente con stipendo uguale a val, altrimenti stampare il messaggio "non esiste un diprendente con stipendio uguale a val"
  15.     realizzare ognuno dei 5 punti utilizzando sottoprogrammi con parametri.nt */
  16.    
  17. #include <stdio.h>
  18. #include <stdlib.h>
  19. #include <string.h>
  20. typedef struct{
  21.         char cognomeDip[16];
  22.         char nomeDip[12];
  23.         int stipAnnu;
  24.         }dipendente;
  25. #define dim 20
  26. typedef enum {false,true} boolean;
  27. void StampaFile(FILE*Out);
  28. void LeggiVettore(FILE*Out,dipendente dipendenti[],int *);
  29. void StampaVettore(dipendente dipendenti[],int );
  30. // void RicercaBinaria(dipendente dipendenti[],int inf,int sup,
  31.  
  32. int main(){
  33.     FILE*fp;
  34.     int n;
  35.     dipendente dip[dim];
  36.     StampaFile(fp);
  37.     LeggiVettore(fp,dip[],int*n);
  38.     StampaVettore(dip,n);
  39.    
  40.     puts("\n\n");
  41.     system("pause");
  42.     return 0;
  43. }
  44.  
  45. void StampaFile(FILE*Out){
  46.      char c;
  47.      Out=fopen("Anagrafe.txt","r");
  48.      if(Out==NULL)  printf("\nIl file Anagrafe non può essere aperto!");
  49.      else{    
  50.          c=fgetc(Out);
  51.          while(c!=EOF){
  52.                        putchar(c);
  53.                        c=fgetc(Out);
  54.                        }
  55.          fclose(Out);
  56.          }
  57.      }
  58.      
  59. void LeggiVettore(FILE*Out,dipendente dipendenti[],int *xPtr){
  60.      int i=0;
  61.      Out=fopen("Anagrafe.txt","r");
  62.      if(Out==NULL)  printf("\nIl file Anagrafe non può essere aperto!");
  63.      else{
  64.           fscanf(Out,"%s %s %d" ,&dipendenti[i].cognomeDip,&dipendenti[i].nomeDip,&dipendenti[i].stipAnnu);
  65.           while(!feof(Out)){
  66.                             i++;
  67.                             fscanf(Out,"%s %s %d" ,&dipendenti[i].cognomeDip,&dipendenti[i].nomeDip,&dipendenti[i].stipAnnu);
  68.                             }
  69.           puts("\nIl contenuto del File e' stato copiato nel vettore!");
  70.           }
  71.      *xPtr=i;
  72.      }
  73.      
  74.  
  75. void StampaVettore(dipendente dipendenti[],int xPtr){
  76.      int i;
  77.      puts("\nLa lista dei dipendenti da Vettore e' la seguente: \n\n");
  78.      for(i=0;i<xPtr;i++){
  79.                          printf("Dipendente numero %d" ,i+1);
  80.                          printf("\nCognome: %s",dipendenti[i].cognomeDip);
  81.                          printf("\nNome: %s",dipendenti[i].nomeDip);
  82.                          printf("\nStipendio: %d",dipendenti[i].stipAnnu);
  83.                          puts("\n");
  84.                          }
  85.      }
Add Comment
Please, Sign In to add comment