Problema calcolatrice da me programmata

di Anonimizzato15001 il
5 risposte
Premetto che questo è il mio primo topic quindi, vi chiedevo come poter fare tornare "alla homepage" (cioè alla scelta delle operazioni) senza dover per forza ri-aprire il programma...visto che ora sono obbligato a chiudere e ri-aprire.... p.s. il linguaggio è il c++


ecco qua' il codice

//calcolatrice
#include <iostream>
using namespace std;


int main(){
char risposta, lettera;
int numero1, numero2, numfin;

numero1=0;
numero2=0;
numfin=0;

cout << "Inserisci A(+)B(-)C(/)D(*)\n";
cin >> lettera;

switch (lettera) {
case 'A':{
do{
cout << "inserisci primo numero\n";
cin >> numero1;
cout <<"inserisci secondo numero\n";
cin >> numero2;
numfin = numero1 + numero2;
cout <<"la risposta e' "<<numfin<<"\n";
cout <<"vuoi continuare a sommare <s/n>\n";
cin >> risposta;
} while (risposta =='s');
break;
}
}
numfin=0;
numero1=0;
numero2=0;
switch (lettera) {
case 'B': {
do {
cout << "inserisci il primo numero\n";
cin >> numero1;
cout << "inserisci il secondo numero\n";
cin >> numero2;
numfin = numero1 - numero2;
cout <<"la risposta e' "<<numfin<<"\n";
cout <<"vuoi continuare a sottrarre <s/n>\n";
cin >> risposta;
} while (risposta =='s');
break;
}
}
numero1=0;
numfin=0;
numero2=0;

switch (lettera){
case 'C' :{
do{
cout << "inserisci il primo numero\n";
cin >> numero1;
cout << "inserisci il secondo numero\n";
cin >> numero2;
numfin = numero1 / numero2;
cout <<"la risposta e' "<<numfin<<"\n";
cout <<"vuoi continuare a dividere <s/n>\n";
cin >> risposta;
} while (risposta =='s');
break;
}
}
numero1=0;
numfin=0;
numero2=0;

switch (lettera) {
case 'D' :{
do {
cout << "inserisci il primo numero\n";
cin >> numero1;
cout << "inserisci il secondo numero\n";
cin >> numero2;
numfin = numero1 * numero2;
cout <<"la risposta e' "<<numfin<<"\n";
cout <<"vuoi continuare a moltiplicare?<s/n>\n";
cin >> risposta;
} while (risposta =='s');
break;
}
}
system ("pause");
}

5 Risposte

  • Inserisci la parte di codice opportuna in un ciclo do...while ... praticamente come hai fatto per le singole operazioni.
  • Provato ma non funziona...non mi fa uscire...se vuoi ti faccio uno screen
  • Se non funziona, mostra il codice sul forum (copialo e incollalo) e usa i tag CODE.
  • Puoi usare, come dice oregon, un semplice ciclo.
    Utilizzi già una variabile lettera per ricevere input dall'utente. Basta eseguire le istruzioni in ciclo finché lettera sia diversa da 'Q' o il carattere che ti pare.
    
    std::cout << "Inserisci A(+)B(-)C(/)D(*) o Q per uscire" << std::endl;
    std::cin >> lettera;
    while(lettera != 'Q'){
        // Esegui tutti i tuoi comandi
        std::cout << "Inserisci A(+)B(-)C(/)D(*) o Q per uscire" << std::endl;
        std::cin >> lettera;
    }
    
    Per favore, per una maggiore chiarezza, utilizza sempre i tag code e la corretta indentazione.
    Spero di essere stato d'aiuto
  • tuixte ha scritto:


    
    std::cout << "Inserisci A(+)B(-)C(/)D(*) o Q per uscire" << std::endl;
    std::cin >> lettera;
    while(lettera != 'Q'){
        // Esegui tutti i tuoi comandi
        std::cout << "Inserisci A(+)B(-)C(/)D(*) o Q per uscire" << std::endl;
        std::cin >> lettera;
    }
    
    Per evitare di ripetere il codice e visto che comunque almeno una iterazione del ciclo devi comunque farla puoi anche usare un ciclo do..while:
    
    do {
        std::cout << "Inserisci A(+)B(-)C(/)D(*) o Q per uscire" << std::endl;
        std::cin >> lettera;
    } while (lettera != 'Q');
    
    EDIT: whoops ho appena visto che anche oregon aveva suggerito la stessa cosa
Devi accedere o registrarti per scrivere nel forum
5 risposte