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