21/05/09 16:17
matteog
ciao a tutti ho un problema nell'inserimento della stringa all'interno di una lista
questo programma dovrebbe eseguire le opzioni della rubrica in una lista lineare potete dirmi come fare a far si che nell'inserimento della stringa nella lista come posso inserire una stringa???????????????????????????'
ecco un esempio:
lista->cognome=cognomex;
poi potete dirmi se è migliorabile e se secondo voi potrebbe funzionare in questo modo sn infatti alle prime armi ciao e grazie
questo programma dovrebbe eseguire le opzioni della rubrica in una lista lineare potete dirmi come fare a far si che nell'inserimento della stringa nella lista come posso inserire una stringa???????????????????????????'
ecco un esempio:
lista->cognome=cognomex;
poi potete dirmi se è migliorabile e se secondo voi potrebbe funzionare in questo modo sn infatti alle prime armi ciao e grazie
#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(){ 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; char pointer[100]; stringa nomex, cognomex, cittax, cellx, casax, emailx; nomu=1; cornice(); cout<<"AGGIUNTA DI UN MEMBRO ALLA RUBRICA"; cout<<"Inserisci il NOME : "; cin>>nomex; cout<<"Inserisci il COGNOME : "; cin>>cognomex; cout<<"Inserisci la CITTA' : "; cin>>cittax; cout<<"Inserisci il NUMERO DI CELLULARE : "; cin>>cellx; cout<<"Inserisci il NUMERO DI CASA : "; cin>>casax; cout<<"Inserisci l'INDIRIZZO DI POSTA ELETTRONICA : "; cin>>emailx; num_membri++; while(i<=num_membri){ if(first==NULL) { lista=new(membro); lista->nome=nomex; lista->cognome=cognomex; lista->citta=cittax; lista->cellulare=strcpy(cellulare,cellx); lista->numero_casa=strcpy(numero_casa,casax); lista->email=strcpy(email,emailx); 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); lista=prev->succ; lista->nome=nomex; lista->cognome=cognomex; lista->citta=cittax; lista->cellulare=cellx, lista->numero_casa=casax; lista->email=emailx; lista->succ=next; ins=1; } else{ next=first; lista=new(membro); lista->nome=nomex; lista->cognome=cognomex; lista->citta=cittax; lista->cellulare=cellx, lista->numero_casa=casax; lista->email=emailx; lista->succ=next; first=lista; ins=1; } } } else{ if(strcmp(cognomex,lista->cognome)>0){ lista->succ=new(membro); lista=lista->succ; lista->nome=nomex; lista->cognome=cognomex; lista->citta=cittax; lista->cellulare=cellx, lista->numero_casa=casax; lista->email=emailx; lista->succ=NULL; ins=1; } else{ if(prev!=NULL){ prev->succ=new(membro); lista=prev->succ; lista->nome=nomex; lista->cognome=cognomex; lista->citta=cittax; lista->cellulare=cellx, lista->numero_casa=casax; lista->email=emailx; lista->succ=next; ins=1; } else{ next=first; lista=new(membro); lista->nome=nomex; lista->cognome=cognomex; lista->citta=cittax; lista->cellulare=cellx, lista->numero_casa=strcpy(numero_casa,casax); lista->email=emailx; 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; } getch(); nomu=0; cornice(); } void cornice(void){ if(nomu==0){ cout<<"RUBRICA DEL GRUPPO 5 2004/2005"; cout<<"1. Aggiungi numero"; cout<<"2. Modifica numero"; cout<<"3. Cancella numero"; cout<<"4. Ricerca numero"; cout<<"5. Visualizza cognomi della rubrica"; cout<<"6. Esci dalla rubrica"; cout<<"FAI LA TUA SCELTA >>> Inserisci un valore : "; } }
aaa