Program prosty kalkulator z wyborem działania

0

Witam!
Tworze sobie właśnie program podobny do kalkulatora.

Mam takie prowizoryczne menu:
1- aby dodać
2- aby odjąć
3- aby pomnożyć
4- aby podzielić
5- aby wyjść

(Menu oparte na ifie a nie na switchu)

Na samym początku napisałem sobie funkcje dodawania , odejmowania, dzielenia i mnożenia.

Chce ,żeby po kliknięciu np klawisza 1 pobrał dane od użytkownika z klawiatury:

cin >> liczba1
cin >> liczba2 itd

I potem wyświetlił wynik wybranego działania:)

Ale coś tu chyba namieszałem bo jak wybieram opcje np, dodawania to wpierw wyswietla mi wyniku a pozniej dopiero chce pobrać jakiekolwiek wartości zmiennych od użytkownika ;/

Proszę o pomoc!

 

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <conio.h>
#include <stdlib.h>

using namespace std;


void Dodawanie(int nWartosc1, int nWartosc2)
{
	int nWynik = nWartosc1 + nWartosc2;
	cout << "Wynikiem dodawania liczb " << nWartosc1 << " + " << nWartosc2 << " = " << nWynik;
	cout << endl;

}

void Odejmowanie(int nWartosc1, int nWartosc2)
{
	int nWynik = nWartosc1 - nWartosc2;
	cout << "Wynikiem odejmowania liczb " << nWartosc1 << " - " << nWartosc2 << " = " << nWynik;
	cout << endl;

}

void Mnozenie(int nWartosc1, int nWartosc2)
{
	int nWynik = (nWartosc1 * nWartosc2);
	cout << "Wynikiem mnozenia liczb " << nWartosc1 << " * " << nWartosc2 << " = " << nWynik;
	cout << endl;

}

void Dzielenie(int nWartosc1, int nWartosc2)
{
	int nWynik = (nWartosc1 / nWartosc2);
	cout << "Wynikiem dzielenia liczb " << nWartosc1 << " / " << nWartosc2 << " = " << nWynik;
	cout << endl;

}






int main()
{
	cout << "-------------------------------------" << endl;
	cout << "  Witamy w konsolowym kalkulatorze  " << endl;
	cout << "-------------------------------------" << endl;
	cout << "  	  1   -   aby dodac"<< endl;
	cout << "  	  2   -   aby odjac"<< endl;
	cout << "  	  3   -   aby pomnozyc"<< endl;
	cout << "  	  4   -   aby podzielic"<< endl;
	cout << "  	  5   -   aby wyjsc"<< endl;
	cout << "-------------------------------------" << endl << endl;
	
	cout << "	Co chcesz zrobic?" << endl << endl;
	
	int wybor;
	int nLiczba1, nLiczba2;
	
	cin >> wybor;
	
	if(wybor==1)
	{
		system("cls");
		cout << "Wybrales dodawanie!" << endl << endl;
		Dodawanie(nLiczba1, nLiczba2);
		};
		if(wybor==2)
		{
			system("cls");
			cout << "Wybrales odejmowanie!" << endl << endl;
			Odejmowanie(nLiczba1, nLiczba2);
				};
				if(wybor==3)
				{
					system("cls");
					cout << "Wybrales mnozenie!" << endl << endl;
					Mnozenie(nLiczba1, nLiczba2);
					};
					if(wybor==4)
					{
						system("cls");
						cout << "Wybrales dzielenie!" << endl << endl;
						Dzielenie(nLiczba1, nLiczba2);
						};
						if(wybor==5)
						{
							exit(1);
							};
	
	
	
	cout << "Podaj 1 liczbe: " << endl;
	cin >> nLiczba1;
	
	cout << "Podaj 2 liczbe: " << endl;
	cin >> nLiczba2;
	
	
	
	


system("PAUSE");
return 0;
}


Pozdrawiam forumowiczów :)

0

No pomyśl logicznie. Kiedy podajesz swoje liczby, a kiedy wybierasz opcje działania? Jak widać najpierw musisz wybrać opcję, jak wybierzesz opcje wyświetla się wynik. Dopiero potem podajesz liczby. Czy tak ma być? Możesz zrobić to na dwa sposoby:

  1. Wczytujesz swoje dwie liczby, po czym wybierasz opcje i dane działanie wykonuje się tak, jak chcesz.
  2. Możesz umieścić "podawanie" liczb w danym warunku. Tj. wybieram sobie opcje pierwszą po czym podaje swoje liczby i wykonuje działanie.
0

No właśnie chce tę drugą opcje zrobić:

Wpierw wybieram z menu odpowiednie działanie -> później pobieram liczby z klawiatury -> i na samym dole wyświetlam wynik

Co tu mam źle?

0

Nie, Ty najpierw wybierasz działanie i od razu wyświetlasz wynik. Dopiero potem podajesz liczby. Spróbuj tak:

int liczba1, liczba2;
if(wybor==1)
        {
               cin>>liczba1>>liczba2;
                cout << "Wybrales dodawanie!" << endl << endl;
                Dodawanie(liczba1, liczba2);
                };

Tutaj znacznie wygodniej użyć switch i case, dla czytelności kodu i mniejszego prawdopodobieństwa popełnienia błędu.

0

Mam :D faktycznie wystarczało ruszyć trochę głową xd

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <conio.h>
#include <stdlib.h>

using namespace std;


void Dodawanie(int nWartosc1, int nWartosc2)
{
	int nWynik = nWartosc1 + nWartosc2;
	//cout << "Wynikiem dodawania liczb " << nWartosc1 << " + " << nWartosc2 << " = " << nWynik;
	cout << endl;

}

void Odejmowanie(int nWartosc1, int nWartosc2)
{
	int nWynik = nWartosc1 - nWartosc2;
	//cout << "Wynikiem odejmowania liczb " << nWartosc1 << " - " << nWartosc2 << " = " << nWynik;
	cout << endl;

}

void Mnozenie(int nWartosc1, int nWartosc2)
{
	int nWynik = (nWartosc1 * nWartosc2);
	//cout << "Wynikiem mnozenia liczb " << nWartosc1 << " * " << nWartosc2 << " = " << nWynik;
	cout << endl;

}

void Dzielenie(int nWartosc1, int nWartosc2)
{
	int nWynik = (nWartosc1 / nWartosc2);
	//cout << "Wynikiem dzielenia liczb " << nWartosc1 << " / " << nWartosc2 << " = " << nWynik;
	cout << endl;

}






int main()
{
	cout << "-------------------------------------" << endl;
	cout << "  Witamy w konsolowym kalkulatorze  " << endl;
	cout << "-------------------------------------" << endl;
	cout << "  	  1   -   aby dodac"<< endl;
	cout << "  	  2   -   aby odjac"<< endl;
	cout << "  	  3   -   aby pomnozyc"<< endl;
	cout << "  	  4   -   aby podzielic"<< endl;
	cout << "  	  5   -   aby wyjsc"<< endl;
	cout << "-------------------------------------" << endl << endl;
	
	cout << "	Co chcesz zrobic?" << endl << endl;
	
	int wybor;
	int nLiczba1, nLiczba2, nWynik;
	
	cin >> wybor;
	
	if(wybor==1)
	{
		system("cls");
		cout << "Wybrales dodawanie!" << endl << endl;
		Dodawanie(nLiczba1, nLiczba2);
		};
		if(wybor==2)
		{
			system("cls");
			cout << "Wybrales odejmowanie!" << endl << endl;
			Odejmowanie(nLiczba1, nLiczba2);
				};
				if(wybor==3)
				{
					system("cls");
					cout << "Wybrales mnozenie!" << endl << endl;
					Mnozenie(nLiczba1, nLiczba2);
					};
					if(wybor==4)
					{
						system("cls");
						cout << "Wybrales dzielenie!" << endl << endl;
						Dzielenie(nLiczba1, nLiczba2);
						};
						if(wybor==5)
						{
							exit(1);
							};
	
	
	
	cout << "Podaj 1 liczbe: " << endl;
	cin >> nLiczba1;
	
	cout << "Podaj 2 liczbe: " << endl;
	cin >> nLiczba2;
	
	cout << nWynik;
	
	


system("PAUSE");
return 0;
}
0

Jednak coś wciąż jest nie tak ;/

Po wykonaniu np. dodawania 2 + 4 wynik wyświetla mi liczbe 574574567 :o

co tu mam wciąż namieszane? Proszę o pomoc

0

A próbowałeś, jak Ci napisałem? To spróbuj, a nie gadaj.

0

lepiej użyj instrukcji switch niż if i po problemie

0

albo nie zagnieżdżaj ifów

0

od kiedy ifa kończy się średnikiem?

0

spróbuj bez średnika po nawiasie
if (warunek)
{
instrukcja_1;

}

0

Mam takie pytanie, bo ostatnio dużo tu tych kalkulatorów.

Nie lepiej zaimplementować sobie RPN? Moim zdaniem to lepsze na przykładowy program i wcale nie takie trudne.

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