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++ - aiuto rubrica!!!!!!!
Forum - C/C++ - aiuto rubrica!!!!!!!

Avatar
boss (Normal User)
Newbie


Messaggi: 1
Iscritto: 18/04/2007

Segnala al moderatore
Postato alle 14:55
Mercoledì, 18/04/2007
CIAO RAGAZZI,HO BISOGNO DI UN GRANDE AIUTO..HO DA
FARE UNA SIMPATICA RUBRICA CON LE STRUTTURE,CON TANTO DI INSERIMENTO,MODIFICA,RICERCA(DICOTOMICA)E CANCELLAZIONE...INTANTO VI POSTO IL CODICE CHE HO FATTO FIN ORA,PERCHE MI SONO BLOCCATO QUI...SE MI DATE 1 MANO VI RINGRAZIO.
#include <iostream.h>
#include <window.h>
#include <stdio.h>
#include <string.h>

struct Persona
    {
        char Nome[15],Cognome[20],Numero[50];
    };
Persona vet[50];

void main (void)
{
    //variabili main
    bool flag;
    char risp;
    int i=0,j=0,k=0,temp;
    //struttura con informazioni persona
    

    struct temp
    {
        char Nome[15],Cognome[20];
    };
    Persona Vet[1];
    
    do
    {
        flag=true;
        cout <<"Rubrica "<<endl;
        cout <<endl;
        cout <<endl;
        cout <<"quale operazione vuoi svolgere "<<endl;
        cout <<" 1)inserisci nuovo"<<endl;
        cout <<" 2)elimina contatto"<<endl;
        cout <<" 3)ricerca"<<endl;
        cout <<" 4)stampa tutto"<<endl;
        cout <<" 5)chiudi"<<endl;
        cout <<"inserire il numero corrispondente alla scelta\n\n"<<endl;
    
        do
        {
            cin>>risp;
        }
        while(risp!='1'&&risp!='2'&&risp!='3'&&risp!='4'&&risp!='5');
        
        switch(risp)
        {
            case '1':
            {
                cout<<"inserire il nome"<<endl;
                gets(Vet[0].Nome);
                cout<<"inserire il cognome"<<endl;
                if (i>0)
                {
                    do
                    {
                        gets(Vet[0].Cognome);
                        for(j=i;j>=0&&flag ==true;j--)
                        {
                            if (strcmp (vet[j].Cognome,Vet[0].C)

        cout<<"inserire il numero di telefono"<<endl;
                    gets(vet.Numero);
                }
                for(j=i;j>=0&&flag ==true;j--)
                {
                    if ( strcmp (vet[j].Cognome,Vet[0].Cognome)>0)
                    {
                        j=i;
                        flag=false;
                    }
                }
                i++;
            }
            break;
            case '2':
                flag=true;
            {
                cout <<"inserisci il cognome dell\'elemento da eliminare "<<endl;
                gets(Vet[0].Cognome);
                for(j=i;j>=0&&flag==true;j--)
                {
                    if (strcmp (vet[j].Cognome,Vet[0].Cognome)==0)
                    {
                        temp=j;
                        flag=false;
                    }
                }
                for(j=temp;j<=i;j++)
                {
                    vet[j]=vet[j+1];
                }
                i--;
            }
            break;
            case '3':
            {
            }
            break;
            case '4':
            {
                system("CLS");
                for(k=0;k<i;k++)
                {
                    cout <<"  "<<(k+1)<<") ";
                    cout <<vet[k].Nome<<endl;
                    cout <<"  "<<vet[k].Cognome<<endl;
                    cout <<"  "<<vet[k].Numero<<endl;
                    cout <<endl;
                    
                }
                system ("pause");
            }
            break;
            case '5':
            {
                break;
            }
            break;
        }
        system ("cls");
        
    }while (risp!='5');

}



PM Quote
Avatar
nikipe_silver (Founder Member)
Expert


Messaggi: 339
Iscritto: 20/09/2005

Segnala al moderatore
Postato alle 17:46
Mercoledì, 18/04/2007
non e' perfetto ma l'ho rifatto da capo e funziona...
Codice sorgente - presumibilmente C++

  1. #include <iostream.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. struct persona{
  6.     char nome[20];
  7.     char cognome[20];
  8.     char numero[12];
  9. };
  10. persona rubrica[50];
  11. int main(void){
  12.     int i;
  13.     int sceltaMenu=0;
  14.  
  15.     while(sceltaMenu!=5){
  16.         system("cls");
  17.         cout <<"Rubrica "<<endl;
  18.         cout <<endl;
  19.         cout <<endl;
  20.         cout <<"quale operazione vuoi svolgere "<<endl;
  21.         cout <<" 1)inserisci nuovo"<<endl;
  22.         cout <<" 2)elimina contatto"<<endl;
  23.         cout <<" 3)ricerca"<<endl;
  24.         cout <<" 4)stampa tutto"<<endl;
  25.         cout <<" 5)chiudi"<<endl;
  26.         cout <<"inserire il numero corrispondente alla scelta\n\n"<<endl;
  27.  
  28.         scanf("%i",&sceltaMenu);
  29.         //al posto dello switch preferisco una serie di if in cascata...
  30.         if(sceltaMenu==1){
  31.             int x;
  32.             for(x=0;x<50&&(strcmp(rubrica[x].cognome,""));++x);
  33.             if(x<50){
  34.                 cout<<"Inserisci Nome: ";
  35.                 scanf("%s",&rubrica[x].nome);
  36.                 cout<<"Inserisci Cognome: ";
  37.                 scanf("%s",&rubrica[x].cognome);
  38.                 cout<<"Inserisci Numero: ";
  39.                 scanf("%s",&rubrica[x].numero);
  40.             }
  41.         }
  42.         if(sceltaMenu==2){
  43.             cout<<"Inserisci Cognome: ";
  44.             char co[20];
  45.             cin>>co;
  46.             for(int x=0;x<50;x++){
  47.                 if(strcmp(rubrica[x].cognome,co)==0){
  48.                     strcpy(rubrica[x].cognome,"");
  49.                     break;
  50.                 }
  51.             }
  52.         }
  53.         if(sceltaMenu==3){
  54.             cout<<"Inserisci Cognome: ";
  55.             char co[20];
  56.             cin>>co;
  57.             for(int x=0;x<50;x++){
  58.                 if(strcmp(rubrica[x].cognome,co)==0){
  59.                     cout<<"Cognome: "<<rubrica[x].cognome<<endl;
  60.                     cout<<"Nome: "<<rubrica[x].nome<<endl;
  61.                     cout<<"Numero: "<<rubrica[x].numero<<endl;
  62.                 }
  63.             }
  64.             system("pause");
  65.         }
  66.         if(sceltaMenu==4){
  67.             for(int x=0;x<50;x++){
  68.                 if(strcmp(rubrica[x].cognome,"")){
  69.                     cout<<"Cognome: "<<rubrica[x].cognome<<endl;
  70.                     cout<<"Nome: "<<rubrica[x].nome<<endl;
  71.                     cout<<"Numero: "<<rubrica[x].numero<<endl;
  72.                 }
  73.             }
  74.             system("pause");
  75.         }
  76.     }
  77. }



c'e' qualcosa in questa pizza che non mi quadra...
E' logico, e' tonda..E' facile se ci pensi..
PM Quote