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++ - inserimento stringa
Forum - C/C++ - inserimento stringa

Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 18:17
Giovedì, 21/05/2009
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


Codice sorgente - presumibilmente C++

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



matteog
PM Quote