Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-10-2010, 12:15   #1
Sebilio89
Junior Member
 
Iscritto dal: Oct 2010
Messaggi: 10
[C++] Problema con funzioni ricerca(dicotomica) e modifica in database

Salve ragazzi, mi sn appena iscritto a questo sito, e sn un programmatore alle primissime armi, quindi mi scuso fin d'ora x tutti gli errori ke potrò commettere, e sn naturalmente disponibile ad accettare suggerimenti e critiche purché siano costruttive. Sto trovando alcuni problemi nella gestione di un database e x qst chiedo il vostro aiuto:
- il primo è la ricerca ke nn va(il prof vuole x forza la ricerca dicotomica, e la devo effettuare su almeno 2 campi )
Codice:
struct volontario
{
   char nome[30];
   char cognome[30];
   char indirizzo[40];
   int eta;
   char numero_cellulare[20];
};

class listavolontari
{
public:
   listavolontari(void);
   int addvolontario (volontario v);
   int rimuovivolontario (volontario* v);
   int modificavolontario (volontario* v);
   void scegli_visualizza(void);
   void scegli_cerca(void);
   void ordina_cognome(void);
   void ordina_eta(void);
   void visualizzalista (void);
   void ricerca_dicotomica_cognome(void); 
   void ricerca_dicotomica_eta(void);
   void modifica();
   char NomeComponente[30];
   private:
   int numerodeivolontari;
   volontario lista[Num_massimo_volontari];
};

void listavolontari:: scegli_visualizza(void)
{
     while (scelta != 3)
	 {
          system ("CLS");
          cout << " Se desideri visualizzare l'elenco ordinato per cognome premi 1: \n "; 
          cout << " Se desideri visualizzare l'elenco ordinato per età premi 2: \n";
          cout << " Se desideri tornare al menu di componente premi 3: \n";
          scelta = ReadNumber();
   	      switch (scelta)
	            {
   		           case 1:   
                   ordina_componente_cognome();
                   visualizzalista ();
                   system ("PAUSE");
                   break;
              
                   case 2:   
                   ordina_componente_eta();
                   visualizzalista ();
                   system ("PAUSE");
                   break;
              }
    }
}

void listavolontari :: ordina_cognome(void)
{
   int i,j;
   if(numerodeivolontari ==0){"Non ci sono volontari da ordinare \n";}
   else
   {
       for(i=0; i< numerodeivolontari-1; i++)
       {
          for(j=i+1; j< numerodeivolontari; j++)
          {
             if (strcmp(lista[i].cognome,lista[j].cognome)>= 1)
             {
                 strcpy(buffer,lista[j].nome);
                 strcpy(lista[j].nome,lista[i].nome);
                 strcpy(lista[i].nome,buffer);
                 strcpy(buffer,lista[j].cognome);
                 strcpy(lista[j].cognome,lista[i].cognome);
                 strcpy(lista[i].cognome,buffer);
                 strcpy(buffer,lista[j].indirizzo);
                 strcpy(lista[j].indirizzo,lista[i].indirizzo);
                 strcpy(lista[i].indirizzo,buffer);
                 buffer_eta = lista[j].eta;
                 lista[j].eta = lista[i].eta;
                 lista[i].eta = buffer_eta;
                 strcpy(buffer,lista[j].numero_cellulare);
                 strcpy(lista[j].numero_cellulare,lista[i].numero_cellulare);
                 strcpy(lista[i].numero_cellulare,buffer);
            }
         }
      }
   cout << " Ordinamento per cognome completato con successo \n";
   }
}

void listavolontari :: ordina_eta(void)
{
   int i,j;
   if(numerodeivolontari ==0){"Non ci sono volontari da ordinare \n";}
   else
   {
        for(i=0; i< numerodeivolontari-1; i++)
        {
           for(j=i+1; j< numerodeivolontari; j++)
           {
              if (lista[i].eta>lista[j].eta)
                {
                      strcpy(buffer,lista[j].nome);
                      strcpy(lista[j].nome,lista[i].nome);
                      strcpy(lista[i].nome,buffer);
                      strcpy(buffer,lista[j].cognome);
                      strcpy(lista[j].cognome,lista[i].cognome);
                      strcpy(lista[i].cognome,buffer);
                      strcpy(buffer,lista[j].indirizzo);
                      strcpy(lista[j].indirizzo,lista[i].indirizzo);
                      strcpy(lista[i].indirizzo,buffer);
                      buffer_eta = lista[j].eta;
                      lista[j].eta = lista[i].eta;
                      lista[i].eta = buffer_eta;
                      strcpy(buffer,lista[j].numero_cellulare);
                      strcpy(lista[j].numero_cellulare,lista[i].numero_cellulare);
                      strcpy(lista[i].numero_cellulare,buffer);
                 }
          }
    }
      cout << " Ordinamento per età completato con successo \n";
    }
}

void listavolontari:: scegli_cerca(void)
{
     while (scelta != 3)
	 {
          system ("CLS");
          cout << " Se si desidera cercare un volontario inserendo il suo cognome premi 1: \n "; 
          cout << " Se si desidera cercare un volontario inserendendo la sua età premi 2: \n "; 
          cout << " Se desideri tornare al menu di componente premi 3: \n";
          scelta = ReadNumber();
 	      switch (scelta)
	            {
   		            case 1: 
                    ordina_componente_cognome();
                    ricerca_dicotomica_cognome(); 
                    system ("PAUSE");
                    break;
              
                    case 2:   
                    ordina_componente_eta();
                    ricerca_dicotomica_eta();
                    system ("PAUSE");
                    break;
              }
   }
}      


void listavolontari :: ricerca_dicotmica_cognome(void) 
{	
   int basso=0, alto=numerodeivolontari-1, medio; 
   char cognome_trovare[30];
   system ("CLS");
   cout << " Scirivi il Cognome del volontario che stai cercando: \n";
   cin.getline(cognome_trovare, sizeof(cognome_trovare));
   
   while (basso <= alto) 
   {
           medio = (basso + alto)/2; 
           if(strcmp(lista[medio].cognome, cognome_trovare) == 0)
           { 
               cout << lista[medio].nome << "\n";
               cout << lista[medio].cognome << "\n"; 
               cout << lista[medio].indirizzo << "\n";
               cout << lista[medio].eta << "\n";
               cout << lista[medio].numero_cellulare << "\n"; 
           }  
           if (strcmp(lista[medio].cognome, cognome_trovare) < 0) basso = medio +1; 
              else 
              {
                  alto = medio -1; 
                  break;
             } 
   }
   cout << "Attualmente non c'è nessun volontario nella componente dei:" << NomeComponente << "\n";
   cout << "con il cognome " << cognome_trovare << "\n";
}


void listavolontari :: ricerca_dicotmica_eta(void) 
{
     int basso=0, alto=numerodeivolontari-1, medio=0; 
     system ("CLS");
     cout << " Scirivi l'eta del volontario che stai cercando: \n";
     buffer_eta= ReadNumber();
     while (basso <= alto) 
     {
          medio = (basso + alto)/2; 
          if(lista[medio].eta == buffer_eta)
          { 
             cout << lista[medio].nome << "\n";
             cout << lista[medio].cognome << "\n"; 
             cout << lista[medio].indirizzo << "\n";
             cout << lista[medio].eta << "\n";
             cout << lista[medio].numero_cellulare << "\n"; 
          } 
          if (buffer_eta > lista[medio].eta) basso = medio+1; 
             else 
             {
                 alto = medio -1; 
                 break;
            }
    cout << "Attualmente non c'è nessun volontario nella componente dei:" << NomeComponente << "\n";
    cout << "che abbia " << buffer_eta << " anni \n";
    }
}
Sebilio89 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v