Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-10-2010, 13: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


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
Mega Risparmi Amazon Haul: fino al 60% s...
Samsung ha dominato il mercato degli sma...
PlayStation 5 in sconto: prezzo abbassat...
Android 16: arrivano tante novità...
iPhone 17 Pro da 256 GB scende a 1.249€:...
L'europea Mistral sfida i colossi americ...
L'aereo supersonico del futuro non &egra...
Proiettore 1080P a soli 70,99€: 900 ANSI...
Motorola Edge 70 Ultra punta alla fascia...
Miracolo Helldivers 2: lo spazio occupat...
Apple Watch Series 11 e SE 3 in forte sc...
I tre pilastri fondamentali dell'intelli...
Sconti eccezionali su GPU, CPU, monitor ...
OnePlus anticipa nuovi dettagli sui tre ...
Il catalogo del Game Pass si aggiorna: e...
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: 11:29.


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