Witam. Pytanie następujące: Jak do poniższego kalkulatora dodać możliwość wpisywania liczb za pomocą tekstu? By automatycznie sobie konwertował "dwa" = 2 i obliczał zadanie. Poza tym potrzebuje, by funkcje te były przeciążone. Myśle, że z przeciążeniem sobie jakoś poradze, ale z wpisywaniem tekstu jako liczby już niezbyt.
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <math.h>
using namespace std;
int dzialanie, powrot;
double Liczba1, Liczba2, Wynik, decyzja, ilosc;
int main()
{
start:
cout << "Cwiczenie 5 - Przeciazenie funkcji - KALKULATOR \n";
cout << "Wybierz dzialanie z menu \n" << endl;
cout << "[1] Dodawanie " << endl;
cout << "[2] Odejmowanie " << endl;
cout << "[3] Mnozenie " << endl;
cout << "[4] Dzielenie " << endl;
cout << "[5] Pierwiastek N-tego stopnia " << endl;
cout << "[6] Srednia artmetyczna " << endl;
cout << "[7] Potegowanie " << endl;
cout << "[0] Aby zakonczyc dzialanie kalkulatora \n" << endl;
cout << "Decyzja: ";
cin >> dzialanie;
if (dzialanie <= 6 && dzialanie > 0)
{
cout << "Podaj pierwsza liczbe: ";
cin >> Liczba1;
cout << "Podaj druga liczbe: ";
cin >> Liczba2;
}
cout << "\n";
switch (dzialanie)
{
case 1:
Wynik = Liczba1 + Liczba2;
break;
case 2:
Wynik = Liczba1 - Liczba2;
break;
case 3:
Wynik = Liczba1 * Liczba2;
break;
case 4:
if (Liczba2 == 0)
{
cout << "Nie dzielimy przez zero!\n";
}
else
Wynik = Liczba1 / Liczba2;
break;
case 5:
cout << "Wybrano pierwiastek dowolnego stopnia. \n";
cout << "Podaj liczbe: ";
cin >> Liczba1;
cout << "Podaj stopien pierwiastka: ";
cin >> Liczba2;
double power;
power = exp(log(Liczba1) / Liczba2);
Wynik = power;
break;
case 6:
cout << "Wybrano srednia artmetyczna. \n";
Liczba1 = 0;
Wynik = 0;
ilosc = 0;
cout << "Napisz 12345 aby zakonczyc wpisywanie liczb: \n";
{
cout << "Podaj liczbe: ";
cin >> Liczba1;
if (Liczba1 == 12345) break;
Wynik += Liczba1;
ilosc += 1;
}
Wynik = Wynik / ilosc;
break;
case 7:
cout << "Wybrano potegowanie. \n";
cout << "Podaj liczbe: ";
cin >> Liczba1;
cout << "Podaj potege: ";
cin >> Liczba2;
Wynik = pow(Liczba1, Liczba2);
break;
case 0:
cout << "\n\nDziekujemy za skorzystanie z kalkulatora. \nKliknij dowolny klawisz aby kontynuowac\n\n\n";
return 0;
break;
default:
break;
}
if (dzialanie == 0 || dzialanie >= 10)
{
cout << "\nWcisnieto nieprawidlowy klawisz" << endl;
return 0;
}
else
cout << "\nWynik wynosi: " << Wynik << endl;
cout << "\n [0] Aby zamknac kalkulator";
cout << "\n [1] Aby korzystac dalej z kalkulatora\n";
cout << "Decyzja: ";
cin >> powrot;
switch (powrot)
{
case 1:
goto start;
break;
case 0:
cout << "\n\nDziekujemy za skorzystanie z kalkulatora. \nKliknij dowolny klawisz aby kontynuowac\n\n\n";
return 0;
break;
default:
return 0;
break;
}
}
char *
to najgorszy typ dla parametru tutaj jaki mogę sobie wyobrazić, podobnie z komentarzami.masz tutaj coś złego możesz sobie to zmienić
to dobre podejście