Programma che permetta di gestire una rubrica telefonica

di il
4 risposte

Programma che permetta di gestire una rubrica telefonica

Adesso vi scrivo la traccia e vi spiego qual e il mio prblema...
Scrivere un programma che permetta di gestire una rubrica telefonica
in modo che i dati vengano memorizzati in forma permanente sul file rubrica.
Offrire all’utente un menu con le opzioni:
- inserimento;
- modifica;
- cancellazione;
- visualizzazione dell’intera rubrica.
sotto troverete il programma ...l inserimento mi da dei problemi quando lo compilo...
#include<stdio.h>
#include<iostream.h>



struct nominativo
 {
            char nome[15];
            char cognome[15];
 } ; 
 struct nominativo anagrafica;
char temp;
void inserimento();
int main ()
{ 
    
    int scelta, x, i;
     
      cout<<" ... MENU ..."<<endl;
      cout<<" 1) inserimento"<<endl;
      cout<<" 2) modifica"<<endl;
      cout<<" 3) cancellazione"<<endl;
	  cout<<" 4) visualizzazione dell’intera rubrica"<<endl;
      cout<<" 5) FINE ..."<<endl;
	  
	      cin>>scelta;
 do{
      switch (scelta)
    {
    case 1: inserimento(); 
           break; 
     
    case 2: 
          break; 
    
    case 3: 
	 	   
	 	   
     
     default:
     printf("FINE PROGRAMMA ");
            break;
   }
      system("pause");	
}while (scelta<=5);
	

system("pause");
}

void inserimento ()
 {    
    do
    {                                                             /* INSERIMENTO NUOVO CONTATTO */
        printf("Inserimento nuovo contatto\n");                                  
        printf("Nome: ");
        scanf("%s",anagrafica.nome);
        printf("Cognome: ");
        scanf("%s",anagrafica.cognome);
        fflush(stdin);
        
       printf("\nInserire un nuovo contatto?\nDigitare 1 per Si e 0 per No\n");
        scanf("%c",&temp);
        }while (temp=='1');
        
        }
Edit: inserimento code tags

4 Risposte

  • Re: Programma che permetta di gestire una rubrica telefonica

    Devi avere chiare un pò di cose. Non so se questo pezzo di codice proviene da un listato del prof ma ci sono molti errori di programmazione. Il più importante il mix tra C e C++. Se stai studiando il C++ non fare uso di printf ma usi cout.
    questo:
    
    struct nominativo anagrafica;
    
    è una unica anagrafica e nella funzione inserimento tu sovrascrivi più e più volte sempre la stessa struttura.
    fflush(stdin) sconsigliato, quindi da non usare. per fare ciò che vuoi usa le funzioni del cin
    esempio:
    
    cin.ignore(1000),'\n');
    
    questo fa si che vengano scartati 1000 caratteri oppure fino a che non trova il '\n', quel che arriva prima insomma.
    scanf da non usare in C++ usa il cin.
    i header non sono corretti per C++
    elimina il <stdio.h> e iostream.h>, da usare solo solo <iostream> (da notare l'eliminazione del .h)
  • Re: Programma che permetta di gestire una rubrica telefonica

    Fatto....ora mi manca la modifica e la cancellazione...avevo in mente di fare un ricerca per individuare e modificare o cancellare un contatto ma il prof ha detto k e impossibile cancellare materialmente cio k si e scritto sul file...ha detto di inserire un asterisco un qualcosa ke annulli quel contatto....
  • Re: Programma che permetta di gestire una rubrica telefonica

    Per quanto riguarda l'eliminazione, l'idea dell'asterisco è buona. Casomai alla fine prima di uscire dal programma 'ricompatti' il file, ovvero ti crei un file temporaneo in cui ci metti solo i contatti rimanenti, cancelli il vecchio file e rinomini il file temporaneo con il nome del file cancellato, così ad ogni avvio avrai sempre una rubrica 'pulita'
  • Re: Programma che permetta di gestire una rubrica telefonica

    Oh mammaaa ahahahh....ho il fumo ke esce dalla testa xDxDxD come faccio a cancellare un file??o.o mentre per quanto riguarda l asterisco devo fare un ciclo ke mi permetta di leggere parola per parola la rubrica e quando trova il nome ke ho inserito di ricercare si blocchi e inserisca l asterisco...e giusto il mio ragionamento??
Devi accedere o registrarti per scrivere nel forum
4 risposte