Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ciao a tutti problema inserimento
Forum - C/C++ - ciao a tutti problema inserimento

Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 15:24
Sabato, 23/05/2009
ciao a tutti ho un problema nellas funzione dell'inserimento nn funziona ma al contrario continua a richiamarmi cornice() mi sapete spiegare perchè?? grazie mille
Codice sorgente - presumibilmente C++

  1. // rub.cpp : definisce il punto di ingresso dell'applicazione console.
  2. //
  3. #include "stdafx.h"
  4. #include <iostream>
  5. #include <conio.h>
  6. #include <stdlib.h>
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include "windows.h"
  10. using namespace std;
  11. typedef char stringa[40];
  12. struct membro{
  13.      stringa nome;
  14.      stringa cognome;
  15.      stringa citta;
  16.      stringa numero_casa;
  17.      stringa cellulare;
  18.      stringa email;
  19.      membro * succ;
  20. };
  21. membro * lista=NULL;
  22. membro * first=NULL;
  23. membro * prev;
  24. membro * next;
  25.  
  26. void cornice(void);
  27. void aggiungi(void);
  28. void modifica(void);
  29. void cancella(void);
  30. void ricerca(void);
  31. void visualizza(void);
  32. int scelta, termina=0, nomu=0;
  33.  
  34. int main(){
  35.      cornice();
  36.         do{
  37.          cin>>scelta;
  38.          switch(scelta){
  39.              case 1:
  40.                  aggiungi();
  41.                  break;
  42.              case 2:
  43.                  modifica();
  44.                  break;
  45.              case 3:
  46.                  cancella();
  47.                  break;
  48.              case 4:
  49.                  ricerca();
  50.                  break;
  51.              case 5:
  52.                  visualizza();
  53.                  break;
  54.              case 6:
  55.                  termina=1;
  56.                  break;
  57.              default:
  58.                  
  59.                  cout<<"!!! ATTENZIONE !!! Devi inserire uno dei valori indicati";
  60.                
  61.                  
  62.                  cout<<"                                                        ";
  63.                
  64.                  cout<<"     ";
  65.          }
  66.      }while(termina==0);
  67.       return 0;
  68. }
  69.  
  70. void aggiungi(void){
  71.     int i=1, num_membri=0, ins=0;
  72.      stringa cognomex;
  73.      nomu=1;
  74.          while(i<=num_membri){
  75.          if(first==NULL)
  76.          {
  77.      nomu=1;
  78.          lista=new(membro);
  79.      cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  80.      cout<<"Inserisci il NOME : ";
  81.      cin>>lista->nome;
  82.      cout<<"Inserisci il COGNOME : ";
  83.      cin>> lista->cognome;
  84.      cout<<"Inserisci la CITTA' : ";
  85.      cin>> lista->citta;
  86.      cout<<"Inserisci il NUMERO DI CELLULARE : ";
  87.      cin>>lista->cellulare;
  88.      cout<<"Inserisci il NUMERO DI CASA : ";
  89.      cin>>lista->numero_casa;
  90.      cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
  91.      cin>>lista->email;
  92.      num_membri++;
  93.          lista->succ=NULL;
  94.          first=lista;
  95.          }
  96.          else{
  97.               lista=first;
  98.               ins=0;
  99.               while(ins==0){
  100.                    if(lista->succ!=NULL){
  101.                          if(strcmp(cognomex,lista->cognome)>0){
  102.                                     prev=lista;
  103.                                     lista=lista->succ;
  104.                                     next=lista;
  105.                          }
  106.                          else{
  107.                                     if(lista!=first){
  108.                                              prev->succ=new(membro);
  109.                                              cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  110.                          cout<<"Inserisci il NOME : ";
  111.                          cin>>lista->nome;
  112.                          cout<<"Inserisci il COGNOME : ";
  113.                          cin>> lista->cognome;
  114.                          cout<<"Inserisci la CITTA' : ";
  115.                          cin>> lista->citta;
  116.                          cout<<"Inserisci il NUMERO DI CELLULARE : ";
  117.                          cin>>lista->cellulare;
  118.                          cout<<"Inserisci il NUMERO DI CASA : ";
  119.                          cin>>lista->numero_casa;
  120.                          cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
  121.                          cin>>lista->email;
  122.                                              lista->succ=next;
  123.                                              ins=1;
  124.                                     }
  125.                                     else{
  126.                                              next=first;
  127.                                              lista=new(membro);
  128.                                              cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  129.                          cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  130.                          cout<<"Inserisci il NOME : ";
  131.                          cin>>lista->nome;
  132.                          cout<<"Inserisci il COGNOME : ";
  133.                          cin>> lista->cognome;
  134.                          cout<<"Inserisci la CITTA' : ";
  135.                          cin>> lista->citta;
  136.                          cout<<"Inserisci il NUMERO DI CELLULARE : ";
  137.                          cin>>lista->cellulare;
  138.                          cout<<"Inserisci il NUMERO DI CASA : ";
  139.                          cin>>lista->numero_casa;
  140.                          cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
  141.                          cin>>lista->email;
  142.                                              first=lista;
  143.                                              ins=1;
  144.                                     }
  145.                          }
  146.                    }
  147.                    else{
  148.                          if(strcmp(cognomex,lista->cognome)>0){
  149.                                     lista->succ=new(membro);
  150.                                     lista=lista->succ;
  151.                                          cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  152.                            cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  153.                            cout<<"Inserisci il NOME : ";
  154.                             cin>>lista->nome;
  155.                           cout<<"Inserisci il COGNOME : ";
  156.                          cin>> lista->cognome;
  157.                        cout<<"Inserisci la CITTA' : ";
  158.                      cin>> lista->citta;
  159.                     cout<<"Inserisci il NUMERO DI CELLULARE : ";
  160.                       cin>>lista->cellulare;
  161.                       cout<<"Inserisci il NUMERO DI CASA : ";
  162.                     cin>>lista->numero_casa;
  163.                     cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
  164.                    cin>>lista->email;
  165.                                     lista->succ=NULL;
  166.                                     ins=1;
  167.                          }
  168.                          else{
  169.                                     if(prev!=NULL){
  170.                                              prev->succ=new(membro);
  171.                                                cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  172.                            cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  173.                            cout<<"Inserisci il NOME : ";
  174.                             cin>>lista->nome;
  175.                           cout<<"Inserisci il COGNOME : ";
  176.                          cin>> lista->cognome;
  177.                        cout<<"Inserisci la CITTA' : ";
  178.                      cin>> lista->citta;
  179.                                          cout<<"Inserisci il NUMERO DI CELLULARE : ";
  180.                       cin>>lista->cellulare;
  181.                       cout<<"Inserisci il NUMERO DI CASA : ";
  182.                     cin>>lista->numero_casa;
  183.                     cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
  184.                    cin>>lista->email;
  185.                                              ins=1;
  186.                                     }
  187.                                     else{
  188.                                              next=first;
  189.                                              lista=new(membro);
  190.                                             cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  191.                            cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
  192.                            cout<<"Inserisci il NOME : ";
  193.                             cin>>lista->nome;
  194.                           cout<<"Inserisci il COGNOME : ";
  195.                          cin>> lista->cognome;
  196.                        cout<<"Inserisci la CITTA' : ";
  197.                      cin>> lista->citta;
  198.                     cout<<"Inserisci il NUMERO DI CELLULARE : ";
  199.                       cin>>lista->cellulare;
  200.                       cout<<"Inserisci il NUMERO DI CASA : ";
  201.                     cin>>lista->numero_casa;
  202.                     cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
  203.                    cin>>lista->email;
  204.                                              lista->succ=next;
  205.                                              first=lista;
  206.                                              ins=1;
  207.                                     }
  208.                          }
  209.                    }
  210.               }
  211.          }
  212.          i++;
  213.      }
  214.      nomu=0;
  215.      cornice();
  216. }
  217.  
  218. void modifica(void){
  219. }
  220.  
  221. void cancella(void){
  222. }
  223.  
  224. void visualizza(void){
  225. }
  226.  
  227. void ricerca(void){
  228.      int trovato=0;
  229.      stringa nomet;
  230.      nomu=1;
  231.      cornice();
  232.      lista=first;
  233.      cout<<"Inserisci il nome del membro da trovare : ";
  234.      cin>>nomet;
  235.      while((trovato==0)&&(lista!=NULL)){
  236.           if(strcmp(lista->nome,nomet)==0){
  237.               trovato=1;
  238.           }
  239.           else
  240.               lista=lista->succ;
  241.      }
  242.      if(trovato==0){
  243.            cout<<"Il membro di nome " <<nomet <<" non e' presente in rubrica.";
  244.      }
  245.      else{
  246.           cout<<"Ecco i dati del membro di nome " <<nomet <<" :";
  247.        
  248.           cout<<"Nome: "<<lista->nome;
  249.          
  250.           cout<<"Cognome: "<<lista->cognome;
  251.          
  252.           cout<<"Citta': "<<lista->citta;
  253.          
  254.           cout<<"Numero del cellulare: "<<lista->cellulare;
  255.          
  256.           cout<<"Numero di casa: "<<lista->numero_casa;
  257.        
  258.           cout<<"Indirizzo email: "<<lista->email;
  259.      }
  260.      nomu=0;
  261.      cornice();
  262. }
  263.  
  264. void cornice(void){
  265.        if(nomu==0){
  266.          
  267.        cout<<"1. Aggiungi numero"<<endl;
  268.      
  269.        cout<<"2. Modifica numero"<<endl;
  270.      
  271.        cout<<"3. Cancella numero"<<endl;
  272.      
  273.        cout<<"4. Ricerca  numero"<<endl;
  274.      
  275.        cout<<"5. Visualizza cognomi della rubrica"<<endl;
  276.      
  277.        cout<<"6. Esci dalla rubrica"<<endl;
  278.        
  279.        cout<<"FAI LA TUA SCELTA >>> Inserisci un valore : "<<endl;
  280.      }
  281. }


PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 15:33
Sabato, 23/05/2009
Non capisco perche' utilizzi tante volte lo stesso codice (input del cognome, nome, ecc.) invece di usare una funzione ... cosi' e' confuso, quasi illeggibile ...

PM Quote
Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 15:36
Sabato, 23/05/2009
il fatto è che nn ci capisco molto nelle liste e nn sò come fare per renderlo più semplice sapresti consigliarmi come fare per creare una funzione d'inserimento semplice e veloce??

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 15:39
Sabato, 23/05/2009

PM Quote