Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Come salvare e quindi visualizzare i contatti di una rubrica telefonica?
Forum - C/C++ - Come salvare e quindi visualizzare i contatti di una rubrica telefonica?

Avatar
kaiser92@hotmail.it (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/05/2011

Segnala al moderatore
Postato alle 18:41
Domenica, 01/05/2011
salve a tutti, sono nuovo nel forum (ho letto il regolamento e spero di aver capito in che modo evitare di infrangerlo :D)

Vorrei un aiutino, sto creando una rubrica telefonica utilizzando il compilatore Dev C++. La rubrica non è ancora completa. Non sono praticissimo del linguaggio C++, lo sto studiando, e vorrei che mi aiutaste a capire cosa devo fare per salvare i contatti inseriti e, successivamente, visualizzarli.

Spero possiate aiutarmi! Grazie a tutti :)

il codice (che, ripeto, è ancora incompleto) è questo:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <iostream>
  3. //*****RUBRICA TELEFONICA 1.O*******
  4.  
  5.  
  6.  
  7.  
  8. main () {
  9.                                // creazione del tipo "info"
  10.            typedef struct {
  11.             char cognome[35];
  12.             char nome[35];
  13.             char via[30];
  14.             int numero[10];
  15.             char citta[30];
  16.             int cap[5];
  17.             char provincia[2];
  18.             int fisso[20];
  19.             int cellulare[15];
  20.             char email[40];
  21.             } info;
  22.      info dati;       // dichiarazione della variabile "dati", di tipo info
  23.                      // che conterrà le informazioni dei contatti.
  24.      
  25.      
  26.      char temp;      
  27.      int scelta;
  28.        
  29.      printf("RUBRICA TELEFONICA\n\n \a       \a  \a");             /* TITOLO */
  30.      
  31.      
  32.      printf("Scegliere una delle seguenti voci di menu':\n"         /* MENU */
  33.             "1) Inserimento nuovo contatto\n"
  34.             "2) Visualizza contatti\n"
  35.             "3) Ricerca contatto\n"
  36.             "4) Elimina contatto\n\n"
  37.             "Inserire la propria scelta:");
  38.      scanf("%d", &temp);
  39.      
  40.      /* INSERIMENTO NUOVO CONTATTO */
  41.      
  42.      if (temp==1) {
  43.                   //INFO ANAGRAFICHE                              
  44.         printf("Inserimento nuovo contatto\n");                                  
  45.         printf("Cognome: ");
  46.         scanf("%s",&dati.cognome);
  47.         printf("Nome: ");
  48.         scanf("%s",&dati.nome);
  49.                   //INFO INDIRIZZO  
  50.         printf("Via: ");
  51.         scanf("%s",&dati.via);      
  52.         printf("Numero: ");
  53.         scanf("%s",&dati.numero);
  54.         printf("Citta': ");
  55.         scanf("%s",&dati.citta);
  56.         printf("Cap: ");
  57.         scanf("%s",&dati.cap);
  58.         printf("Provincia: ");
  59.         scanf("%s",&dati.provincia);
  60.                   //INFO RECAPITO
  61.         printf("Telefono Fisso: ");
  62.         scanf("%s",&dati.fisso);
  63.         printf("Telefono Cellulare: ");
  64.         scanf("%s",&dati.cellulare);
  65.         printf("eMail: ");
  66.         scanf("%s",&dati.email);
  67.        
  68.        
  69.      
  70.      
  71.      printf("\nInserire un nuovo contatto?\nDigitare 1 per Si e 0 per No\n");
  72.      scanf("%d",&scelta);
  73.      
  74.      while(scelta!=0) {
  75.                    
  76.                    
  77.      printf("\n\n\nInserimento nuovo contatto\n");                                  
  78.         printf("Cognome: ");
  79.         scanf("%s",&dati.cognome);
  80.         printf("Nome: ");
  81.         scanf("%s",&dati.nome);
  82.      
  83.         printf("Via: ");
  84.         scanf("%s",&dati.via);      
  85.         printf("Numero: ");
  86.         scanf("%s",&dati.numero);
  87.         printf("Citta': ");
  88.         scanf("%s",&dati.citta);
  89.         printf("Cap: ");
  90.         scanf("%s",&dati.cap);
  91.         printf("Provincia: ");
  92.         scanf("%s",&dati.provincia);
  93.      
  94.         printf("Telefono Fisso: ");
  95.         scanf("%s",&dati.fisso);
  96.         printf("Telefono Cellulare: ");
  97.         scanf("%s",&dati.cellulare);
  98.         printf("eMail: ");
  99.         scanf("%s",&dati.email);
  100.         printf("\nInserire un nuovo contatto?\nDigitare 1 per Si e 0 per No\n");
  101.         scanf("%d",&scelta);
  102.        
  103.        } // chiusura del WHILE
  104.        
  105.      
  106.        }  //*********//chiusura primo IF
  107.  
  108.  
  109.  
  110. // CREAZIONE FUNZIONE DI VISUALIZZAZIONE E ORDINAMENTO
  111.  
  112.  
  113.  
  114. if (temp==2) { //secondo if
  115. printf("\n\nI contatti presenti in rubrica sono:\n\n");
  116.  
  117.  
  118.  
  119.  
  120. }
  121.        
  122.        
  123.        
  124.        
  125. system ("PAUSE");
  126. return 0;
  127. }


Ultima modifica effettuata da kaiser92@hotmail.it il 01/05/2011 alle 18:43


!GerMaN.
PM Quote
Avatar
kaiser92@hotmail.it (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/05/2011

Segnala al moderatore
Postato alle 18:45
Domenica, 01/05/2011
probabilmente avrei dovuto utilizzare delle funzioni fin dall'inizio, c'è però un modo di sfruttare quello che ho fatto finora (anche se mi rendo conto che non è stilisticamente/tecnicamente ottimo)?


!GerMaN.
PM Quote
Avatar
crybot (Normal User)
Rookie


Messaggi: 43
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 19:39
Domenica, 01/05/2011
dici di scrivere in c++ ma usi ancora printf e scanf o_O

in ogni caso non ho capito cosa intendi per salvare i contatti. intendi forse salvarli in modo da averli alla prossima esecuzione del programma oppure salvarli per l'effettiva esecuzione del programma?

P.S. default main non e` supportato  in c++

Ultima modifica effettuata da crybot il 01/05/2011 alle 19:43


Time is the best hacker in the world, he can bypass systems in no time, because Time can not measure it-self...

cit. - Crybot -
PM Quote
Avatar
kaiser92@hotmail.it (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/05/2011

Segnala al moderatore
Postato alle 19:47
Domenica, 01/05/2011
Ho scritto che non sono praticissimo di C++ e che lo sto studiando. Uso scanf e printf semplicemente perchè così mi è stato insegnato :yup:. Comunque, intendo salvare i contatti per l'effettiva esecuzione del programma.


!GerMaN.
PM Quote
Avatar
crybot (Normal User)
Rookie


Messaggi: 43
Iscritto: 11/04/2011

Segnala al moderatore
Postato alle 19:51
Domenica, 01/05/2011
beh se e` cosi` che ti hanno insegnato non ti hanno insegnato il c++, ma non e` importante.

quello che devi fare e` racchiudere i contatti all'interno di un array e poi rivisualizzarli con un ciclo, e` praticamente alla base di tutti gli algoritmi, array e ciclo.


Time is the best hacker in the world, he can bypass systems in no time, because Time can not measure it-self...

cit. - Crybot -
PM Quote
Avatar
kaiser92@hotmail.it (Normal User)
Newbie


Messaggi: 4
Iscritto: 01/05/2011

Segnala al moderatore
Postato alle 19:54
Domenica, 01/05/2011
ook grazie, ci sbareo un po' :)


!GerMaN.
PM Quote
Avatar
frank87 (Normal User)
Newbie


Messaggi: 20
Iscritto: 10/03/2011

Segnala al moderatore
Postato alle 23:22
Lunedì, 09/05/2011
Non so se hai studiato la programmazione ad oggetti,se cosi fosse ti consiglierei di farti una classe "Contatto" e poi successivamente una classe "rubrica" nella quale potresti fare una list o un vector di "Contatto" dove memorizzare i vari contatti e i vari metodi per accedervi.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 7:13
Giovedì, 12/05/2011
Testo quotato

Postato originariamente da frank87:

Non so se hai studiato la programmazione ad oggetti,se cosi fosse ti consiglierei di farti una classe "Contatto" e poi successivamente una classe "rubrica" nella quale potresti fare una list o un vector di "Contatto" dove memorizzare i vari contatti e i vari metodi per accedervi.


Che sarebbe già un miglioramento non indifferente. Aggiungo di studiare (se non te lo hanno insegnato, vai per conto tuo) almeno un po' di I/O in C++. Printf e Scanf, per quanto supportate dal C++, non garantiscono lo stesso livello di ottimizzazione
e affidabilità di funzioni quali cout e cin. Più in generale, ti consiglio di STUDIARE IL C++. Puoi farlo attraverso un libro, o più velocemente (e meno approfonditamente) attraverso una buona guida online. SE scegli il libro, leggi qui: http://public-inheritance.blogspot.com/2011/04/guida-perco ...
Se, invece, vuoi solo una rapida infarinatura per poter finire il tuo programma, puoi usare la guida di HTML.it (che non ti linko, mi fa troppo schifo). Un buon compromesso è un libro che puoi consultare sul computer. Ed è qui che ti consiglio l'arcinoto "Thinking in C++", di Bruce Eckel, che puoi scaricare da uno dei mirror consigliati per l'Italia in fondo a questa pagina: http://www.mindview.net/Books/DownloadSites

PM Quote
Avatar
osharko (Normal User)
Pro


Messaggi: 124
Iscritto: 16/04/2011

Segnala al moderatore
Postato alle 16:57
Giovedì, 12/05/2011
chiedo scusa se sbaglio ma credo che tu ti sia dimenticato di dichiarare altre variabili di tipo "info" prima del while, perchè così facendo sovrascrivi (e nemmeno del tutto)!
fammi sapere se è errore mio o ho ragione :)


Bha!!!
PM Quote