Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C++] Problema con il Do While (Creazione di un Menù)

    Salve , mi servirebbe una mano. Ho sempre amato l'informatica ma per scelte non mie ho dovuto frequentare altre scuole. Ora sto seguendo videotutorial e altro per imparare questo linguaggio.
    In pratica , voglio creare un programma che risolva le conversioni (Tipo da Binario e Decimale). L'ho fatto e vorrei un aiuto arrivato a questo punto.
    Vorrei mettere un'altra stringa nel menù dove mi chiede di scegliere un altro metodo di conversione oppure di chiudere il programma , mi son informato ed ho visto che serve il Do While e anche vedendo videoguide ci ho capito poco. Mi chiedo se qualcuno di voi può aiutarmi a completarlo con relative spiegazioni se possibile.

    Ecco a voi il programma :

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    int main()
    {
    int n,x;
    char buffer[32];
    cout << " Scegli un metodo di conversione" << endl;
    cout << endl << endl;
    cout << "1)Decimale a Binario" << endl;
    cout << "2)Binario a Decimale" << endl;
    cout << "3)Decimale a Ottale" << endl;
    cout << "4)Ottale a Decimale" << endl;
    cout << "5)Decimale a Esadecimale" << endl;
    cout << "6)Esadecimale a Decimale" << endl;
    cin >> x;
    switch (x)
    {
    case (1):
    cout << "Inserisci un numero decimale da convertire in binario: ";
    cin >> n;
    cout << endl << n << " in binario e': " << itoa(n,buffer,2) << endl;
    break;
    case (2):
    cout << "Inserisci un numero binario da convertire in decimale: ";
    cin >> n;
    cout << endl << n << " in decimale e': " << itoa(n,buffer,10) << endl;
    break;
    case (3):
    cout << "Inserisci un numero decimale da convertire in ottale: ";
    cin >> n;
    cout << endl << n << " in ottale e': " << itoa(n,buffer,8) << endl;
    break;
    case (4):
    cout << "Inserisci un numero ottale da convertire in decimale: ";
    cin >> n;
    cout << endl << n << " in decimale e': " << itoa(n,buffer,10) << endl;
    break;
    case (5):
    cout << "Inserisci un numero decimale da convertire in esadecimale: ";
    cin >> n;
    cout << endl << n << " in esadecimale e': " << itoa(n,buffer,16) << endl;
    break;
    case (6):
    cout << "Inserisci un numero esadecimale da convertire in decimale: ";
    cin >> n;
    cout << endl << n << " in decimale e': " << itoa(n,buffer,10) << endl;
    break;


    }
    system ("pause");
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2014
    Messaggi
    55
    innanzitutto, do...while che significa?
    fai
    {
    tutto_questo
    } finchè (questa condizione è soddisfatta);

    ora, tu quando vuoi uscire dal ciclo? hai intenzione di dedicare una scelta "esci" ad un numero (es. premi 0 per uscire) oppure hai intenzione di fare in modo che qualunque input diverso dalle opzioni del menù corrisponda ad un "esci"? questo non lo hai specificato quindi prendiamo per buona la seconda "opzione"...

    Dopo le opportune modifiche, il tuo codice dovrebbe essere questo:

    codice:
    
    #include <iostream>
    #include <cstdlib>
    
    
    using namespace std;
    
    
    int main()
    {
      int n,x;
      char buffer[32];
    
    
    
    
      do
     {
      cout << " Scegli un metodo di conversione" << endl;
      cout << endl << endl;
      cout << "1)Decimale a Binario" << endl;
      cout << "2)Binario a Decimale" << endl;
      cout << "3)Decimale a Ottale" << endl;
      cout << "4)Ottale a Decimale" << endl;
      cout << "5)Decimale a Esadecimale" << endl;
      cout << "6)Esadecimale a Decimale" << endl;
      cin >> x;
      switch (x)
     {
       case (1):
                   cout << "Inserisci un numero decimale da convertire in binario: ";
                   cin >> n;
                   cout << endl << n << " in binario e': " << itoa(n,buffer,2) << endl;
                   break;
       case (2):
                   cout << "Inserisci un numero binario da convertire in decimale: ";
                   cin >> n;
                   cout << endl << n << " in decimale e': " << itoa(n,buffer,10) << endl;
                   break;
       case (3):
                   cout << "Inserisci un numero decimale da convertire in ottale: ";
                   cin >> n;
                   cout << endl << n << " in ottale e': " << itoa(n,buffer,8) << endl;
                   break;
       case (4):
                   cout << "Inserisci un numero ottale da convertire in decimale: ";
                   cin >> n;
                   cout << endl << n << " in decimale e': " << itoa(n,buffer,10) << endl;
                   break;
        case (5):
                   cout << "Inserisci un numero decimale da convertire in esadecimale: ";
                   cin >> n;
                   cout << endl << n << " in esadecimale e': " << itoa(n,buffer,16) << endl;
                   break;
        case (6):
                   cout << "Inserisci un numero esadecimale da convertire in decimale: ";
                   cin >> n;
                   cout << endl << n << " in decimale e': " << itoa(n,buffer,10) << endl;
                   break;
     }
    }while(x>=1 && x<=6);
    
    
    system ("pause");
    
    
    }
    da modificare in base ad un fattore estetico/funzionale (vuoi cancellare il menù una volta che viene richiamata l'opzione per non "affollare" la console di comando? ecc...)

    Spero di esser stato chiaro e di non aver detto ca**ate

    se non ti è chiaro qualcosa o sono stato poco preciso chiedi pure!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.