Kalkulator, wracanie do poczatku po obliczeniach

0

Hej, zamieszcze nizej kod mojego kalkulatora i chcialbym zebyscie powiedzieli mi co zrobic zeby po wybraniu dzialania i wykonaniu wybranego obliczenia program wrocil z powrotem do tabeli wyboru dzialania.

#include <iostream>
int wczytajLiczbe()
{
#include <iostream>
#include <cstdio>
using namespace std;

int dodawanie(int a, int b)
{
  return a + b;
    }
int odejmowanie(int c, int d)
{
  return c - d;
         }
int mnozenie(int e, int f)
{
  return e * f;
         }
int dzielenie(int g, int h)
  {
    return g / h;
              }


int main()
{
  int wybor;
  do
  {
  cout << " --Kalkulator-- " << endl;
  cout << "|==============|" << endl;
  cout << "|Dodawanie[1]  |" << endl;
  cout << "|Odejmowanie[2]|" << endl;
  cout << "|Mnozenie[3]   |" << endl;
  cout << "|Dzielenie[4]  |" << endl;
  cout << "|              |" << endl;
  cout << "|Wyjscie[0]    |" << endl;
  cout << "|==============|" << endl;
  cout << "Wybor: ";
  cin >> wybor;

 if(wybor == 0 )
    {
      cout << "Koniec" << endl;
      return 0;
    }
 int a1, a2;
       cout << "Podaj pierwsza liczbe: ";
       cin >> a1;
       cout << "Podaj druga liczbe: ";
       cin >> a2;

    switch(wybor)
      {
    case 1:
      {
      cout << "Wynik to: " << dodawanie(a1, a2) << endl;
      break;
           }
      case 2:
	{
	  cout << "Wynik to: " << odejmowanie(a1, a2) << endl;
	  break;
      }
      case 3:
	{
	  cout << "Wynik to: " << mnozenie(a1, a2) << endl;
        break;
      }
 case 4:
   {
   if(a1 == 0 || a2 ==0)
     {
       cout << "Probujesz podzielic zero albo przez zero..." << endl;
       break;
     }
   else;
   {
     cout << "Wynik to: " << dzielenie(a1, a2) << endl;
     break;
   }
   }
     }
  }while(wybor > 4 && wybor != 0);
}
0

Zamienić:

 while(wybor > 4 && wybor != 0);

Na:

while(wybor != 0); 
0

No tak ale wtedy jak przy wyborze dzialania wybiore liczbe wieksza od 4 to kiepsko to dziala ;c co z tym ?

0

Zmień warunek tak jak polecił kolega wyżej, a w default w switchu powiedz użytkownikowi, że wybrał złą opcję.

0

Juz zmienilem warunek, ale jak w default powiedziec uzytkownikowi ze wybral zla opcje ? O co chodzi, prosze jasniej, i gdzie dac tego defaulta dokladnie ?

0

Po ostatnim casie.

Wejście w kod znajdujący się po słowie kluczowym default nastąpi tylko wtedy, gdy żaden z case'ów nie zostanie spełniony.

0

Nie wiem, dodalem gdzies na koncu ten default, ale pewnie w zlym miejscu bo nie dziala, i czemu mam informowac uzytkownika ze wybral zla opcje skoro ja chce zeby po dzialaniu wrocil do menu, on niczego zlego nie wybiera.
a oto co zrobilem:

#include <iostream>
#include <cstdio>
  using namespace std;

  int dodawanie(int a, int b)
  {
    return a + b;
  }
  int odejmowanie(int c, int d)
  {
    return c - d;
  }
  int mnozenie(int e, int f)
  {
    return e * f;
  }
  int dzielenie(int g, int h)
  {
    return g / h;
  }


  int main()
  {
    int wybor;
      do
	{
	  cout << " --Kalkulator-- " << endl;
	  cout << "|==============|" << endl;
	  cout << "|Dodawanie[1]  |" << endl;
	  cout << "|Odejmowanie[2]|" << endl;
	  cout << "|Mnozenie[3]   |" << endl;
	  cout << "|Dzielenie[4]  |" << endl;
	  cout << "|              |" << endl;
	  cout << "|Wyjscie[0]    |" << endl;
	  cout << "|==============|" << endl;
	  cout << "Wybor: ";
	  cin >> wybor;

	  if(wybor == 0 )
	    {
	      cout << "Koniec" << endl;
	      return 0;
	    }
	  int a1, a2;
	  cout << "Podaj pierwsza liczbe: ";
	  cin >> a1;
	  cout << "Podaj druga liczbe: ";
	  cin >> a2;

	  switch(wybor)
	    {
	    case 1:
	      {
		cout << "Wynik to: " << dodawanie(a1, a2) << endl;
		break;
	      }
	    case 2:
	      {
		cout << "Wynik to: " << odejmowanie(a1, a2) << endl;
		break;
	      }
	    case 3:
	      {
		cout << "Wynik to: " << mnozenie(a1, a2) << endl;
		break;
	      }
	    case 4:
	      {
		if(a1 == 0 || a2 ==0)
		  {
		    cout << "Probujesz podzielic zero albo przez zero..." << endl;
		    break;
		  }
		else;
		{
		  cout << "Wynik to: " << dzielenie(a1, a2) << endl;
		  break;
		}default:
		std::cout << "asd" << endl;
	      }
	    }
	}while(wybor > 4 && wybor != 0);
  }

  }
  int dzielenie(int g, int h)
  {
    return g / h;
  }


  int main()
  {
    int wybor;
      do
	{
	  cout << " --Kalkulator-- " << endl;
	  cout << "|==============|" << endl;
	  cout << "|Dodawanie[1]  |" << endl;
	  cout << "|Odejmowanie[2]|" << endl;
	  cout << "|Mnozenie[3]   |" << endl;
	  cout << "|Dzielenie[4]  |" << endl;
	  cout << "|              |" << endl;
	  cout << "|Wyjscie[0]    |" << endl;
	  cout << "|==============|" << endl;
	  cout << "Wybor: ";
	  cin >> wybor;

	  if(wybor == 0 )
	    {
	      cout << "Koniec" << endl;
	      return 0;
	    }
	  int a1, a2;
	  cout << "Podaj pierwsza liczbe: ";
	  cin >> a1;
	  cout << "Podaj druga liczbe: ";
	  cin >> a2;

	  switch(wybor)
	    {
	    case 1:
	      {
		cout << "Wynik to: " << dodawanie(a1, a2) << endl;
		break;
	      }
	    case 2:
	      {
		cout << "Wynik to: " << odejmowanie(a1, a2) << endl;
		break;
	      }
	    case 3:
	      {
		cout << "Wynik to: " << mnozenie(a1, a2) << endl;
		break;
	      }
	    case 4:
	      {
		if(a1 == 0 || a2 ==0)
		  {
		    cout << "Probujesz podzielic zero albo przez zero..." << endl;
		    break;
		  }
		else;
		{
		  cout << "Wynik to: " << dzielenie(a1, a2) << endl;
		  break;
		}default:
		std::cout << "-zly wybor-" << endl;
	      }
	    }
	}while(wybor > 4 && wybor != 0);
  }
0

Nadal nie zamieniłeś

while(wybor > 4 && wybor != 0); 

na while(wybor!=0)

 
Gdy to zrobisz, program zakończy się automatycznie kiedy użytkownik wprowadzi zero. 
```cpp
 if(wybor == 0 )
        {
          cout << "Koniec" << endl;
          return 0;
        }

Ten kawałek stanie się wówczas bezużyteczny więc można go usunąć, co do defaulta , chodzi o to , że wyświetli informacje na konsole dotyczącą innego wyboru niż w Twoim przypadku liczb z przedziału 1-4 i jest to dokładnie odpowiedź na Twoje pytanie w trzecim poście.

0

Okej wszystko dziala dobrze, tylko bez wzgledu czy wpisze 0 czy liczbe wieksza od 4 to musi jeszcze raz poprosic o pierwsza i druga liczbe do dzialania. Gdzie moge umiescic te podawanie ich zebym nie musial pisac tego w kazdym casie ale zeby dzialalo we wszystkich i sie nie pojawialo kiedy nie trzeba ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1