Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
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


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Cina: eseguito il test della navicella M...
Mistral, il rivale europeo di OpenAI, in...
Libri piratati, allarme rosso: 722 milio...
Ayaneo svela quasi tutte le specifiche d...
Sony chiude definitivamente con i regist...
Renault Twingo E-Tech Electric sotto i 2...
Auto elettriche, il freddo non fa pi&ugr...
Amazon, ancora sconti sugli smartphone: ...
Il dispositivo hardware AI di Jony Ive p...
Wikipedia valuta il blocco di Archive.to...
Cupra Tavascan primo veicolo cinese a en...
openSIL, il firmware open-source di AMD ...
Da dove avete scaricato 7-zip? Il vostro...
Fotocamera selfie da 100 megapixel: la n...
Robot aspirapolvere in super offerta su ...
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: 16:08.


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