Oppure

Loading
23/05/09 13:24
matteog
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



// rub.cpp : definisce il punto di ingresso dell'applicazione console.
//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "windows.h"
using namespace std;
typedef char stringa[40];
struct membro{
     stringa nome;
     stringa cognome;
     stringa citta;
     stringa numero_casa;
     stringa cellulare;
     stringa email;
     membro * succ;
};
membro * lista=NULL;
membro * first=NULL;
membro * prev;
membro * next;

void cornice(void);
void aggiungi(void);
void modifica(void);
void cancella(void);
void ricerca(void);
void visualizza(void);
int scelta, termina=0, nomu=0;

int main(){
     cornice();
	do{
	 cin>>scelta;
	 switch(scelta){
	     case 1:
		 aggiungi();
		 break;
	     case 2:
		 modifica();
		 break;
	     case 3:
		 cancella();
		 break;
	     case 4:
		 ricerca();
		 break;
	     case 5:
		 visualizza();
		 break;
	     case 6:
		 termina=1;
		 break;
	     default:
		 
		 cout<<"!!! ATTENZIONE !!! Devi inserire uno dei valori indicati";
		
		 
		 cout<<"                                                        ";
		
		 cout<<"     ";
	 }
     }while(termina==0);
      return 0;
}

void aggiungi(void){
    int i=1, num_membri=0, ins=0;
     stringa cognomex;
     nomu=1;
	 while(i<=num_membri){
	 if(first==NULL)
	 {
     nomu=1;
	 lista=new(membro);
     cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
     cout<<"Inserisci il NOME : ";
     cin>>lista->nome;
     cout<<"Inserisci il COGNOME : ";
     cin>> lista->cognome;
     cout<<"Inserisci la CITTA' : ";
     cin>> lista->citta;
     cout<<"Inserisci il NUMERO DI CELLULARE : ";
     cin>>lista->cellulare;
     cout<<"Inserisci il NUMERO DI CASA : ";
     cin>>lista->numero_casa;
     cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
     cin>>lista->email;
     num_membri++;
	 lista->succ=NULL;
	 first=lista;
	 }
	 else{
	      lista=first;
	      ins=0;
	      while(ins==0){
		   if(lista->succ!=NULL){
			 if(strcmp(cognomex,lista->cognome)>0){
				    prev=lista;
				    lista=lista->succ;
				    next=lista;
			 }
			 else{
				    if(lista!=first){
					     prev->succ=new(membro);
					     cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                         cout<<"Inserisci il NOME : ";
                         cin>>lista->nome;
                         cout<<"Inserisci il COGNOME : ";
                         cin>> lista->cognome;
                         cout<<"Inserisci la CITTA' : ";
                         cin>> lista->citta;
                         cout<<"Inserisci il NUMERO DI CELLULARE : ";
                         cin>>lista->cellulare;
                         cout<<"Inserisci il NUMERO DI CASA : ";
                         cin>>lista->numero_casa;
                         cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
                         cin>>lista->email;
					     lista->succ=next;
					     ins=1;
				    }
				    else{
					     next=first;
					     lista=new(membro);
					     cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                         cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                         cout<<"Inserisci il NOME : ";
                         cin>>lista->nome;
                         cout<<"Inserisci il COGNOME : ";
                         cin>> lista->cognome;
                         cout<<"Inserisci la CITTA' : ";
                         cin>> lista->citta;
                         cout<<"Inserisci il NUMERO DI CELLULARE : ";
                         cin>>lista->cellulare;
                         cout<<"Inserisci il NUMERO DI CASA : ";
                         cin>>lista->numero_casa;
                         cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
                         cin>>lista->email;
					     first=lista;
					     ins=1;
				    }
			 }
		   }
		   else{
			 if(strcmp(cognomex,lista->cognome)>0){
				    lista->succ=new(membro);
				    lista=lista->succ;
				         cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                           cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                           cout<<"Inserisci il NOME : ";
                            cin>>lista->nome;
                          cout<<"Inserisci il COGNOME : ";
                         cin>> lista->cognome;
                       cout<<"Inserisci la CITTA' : ";
                     cin>> lista->citta;
                    cout<<"Inserisci il NUMERO DI CELLULARE : ";
                      cin>>lista->cellulare;
                      cout<<"Inserisci il NUMERO DI CASA : ";
                    cin>>lista->numero_casa;
                    cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
                   cin>>lista->email;
				    lista->succ=NULL;
				    ins=1;
			 }
			 else{
				    if(prev!=NULL){
					     prev->succ=new(membro);
					       cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                           cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                           cout<<"Inserisci il NOME : ";
                            cin>>lista->nome;
                          cout<<"Inserisci il COGNOME : ";
                         cin>> lista->cognome;
                       cout<<"Inserisci la CITTA' : ";
                     cin>> lista->citta;
					 cout<<"Inserisci il NUMERO DI CELLULARE : ";
                      cin>>lista->cellulare;
                      cout<<"Inserisci il NUMERO DI CASA : ";
                    cin>>lista->numero_casa;
                    cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
                   cin>>lista->email; 
					     ins=1;
				    }
				    else{
					     next=first;
					     lista=new(membro);
					    cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                           cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA";
                           cout<<"Inserisci il NOME : ";
                            cin>>lista->nome;
                          cout<<"Inserisci il COGNOME : ";
                         cin>> lista->cognome;
                       cout<<"Inserisci la CITTA' : ";
                     cin>> lista->citta;
                    cout<<"Inserisci il NUMERO DI CELLULARE : ";
                      cin>>lista->cellulare;
                      cout<<"Inserisci il NUMERO DI CASA : ";
                    cin>>lista->numero_casa;
                    cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : ";
                   cin>>lista->email;
					     lista->succ=next;
					     first=lista;
					     ins=1;
				    }
			 }
		   }
	      }
	 }
	 i++;
     }
     nomu=0;
     cornice();
}

void modifica(void){
}

void cancella(void){
}

void visualizza(void){
}

void ricerca(void){
     int trovato=0;
     stringa nomet;
     nomu=1;
     cornice();
     lista=first;
     cout<<"Inserisci il nome del membro da trovare : ";
     cin>>nomet;
     while((trovato==0)&&(lista!=NULL)){
	  if(strcmp(lista->nome,nomet)==0){
	      trovato=1;
	  }
	  else
	      lista=lista->succ;
     }
     if(trovato==0){
	   cout<<"Il membro di nome " <<nomet <<" non e' presente in rubrica.";
     }
     else{
	  cout<<"Ecco i dati del membro di nome " <<nomet <<" :";
	
	  cout<<"Nome: "<<lista->nome;
	  
	  cout<<"Cognome: "<<lista->cognome;
	 
	  cout<<"Citta': "<<lista->citta;
	 
	  cout<<"Numero del cellulare: "<<lista->cellulare;
	 
	  cout<<"Numero di casa: "<<lista->numero_casa;
	
	  cout<<"Indirizzo email: "<<lista->email;
     }
     nomu=0;
     cornice();
}

void cornice(void){
       if(nomu==0){
          
       cout<<"1. Aggiungi numero"<<endl;
      
       cout<<"2. Modifica numero"<<endl;
      
       cout<<"3. Cancella numero"<<endl;
      
       cout<<"4. Ricerca  numero"<<endl;
      
       cout<<"5. Visualizza cognomi della rubrica"<<endl;
      
       cout<<"6. Esci dalla rubrica"<<endl;
       
       cout<<"FAI LA TUA SCELTA >>> Inserisci un valore : "<<endl;
     }
}

aaa
23/05/09 13:33
theprogrammer
Non capisco perche' utilizzi tante volte lo stesso codice (input del cognome, nome, ecc.) invece di usare una funzione ... cosi' e' confuso, quasi illeggibile ...
aaa
23/05/09 13:36
matteog
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??
aaa