Problem z kalkulatorem C++

0

Witam mam problem z kalkulatorem w C++ wyskakują taki błąd jak na zdjęciu screenshot-20220521212817.png

A oto cały kod:

#include <conio.h>
#include <math.h>
#include <ctime>
#include <cstdlib>
int main()
{
    srand(time(0));
    float a;
    float b;
    float c;
    float pi=3.14;
    float pottrzecia = 3;
    int wybor;


    std::cout << "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n \t Kalkulator by DxDxDxD dla mpcforum.pl \t \t Wersja: 1.0 \n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \n" << std::endl;
    std::cout << "Wybierz klawisz: \n [1] Dodawanie \t [2] Odejmowanie \t [3] Mnozenie \n [4] Dzielenie \t [5]Objetosc szescianu \t [6]Potegowanie \n [7]Objetosc prostopadloscianu \t [8]Objetosc walca \n [9]Objetosc stozka \t [10]Pole trojkata \n [11]Wysokosc trojkata rownobocznego \t [12]Pole trojkata rownobocznego \n [13]Pierwiastkowanie \t [14]Pole kola \t [15]Dlugosc kola \n [16]Pole kuli \t [17]Objetosc kuli \t [18]Kwadrat sumy \n [19]Kwadrat roznicy \t [20]WYLOSUJ LICZBE \t [99] Wyjdz ";
    std::cout << "\n Wybor: ";
    std::cin >> wybor;
        switch (wybor)
        {
        case 1:


        std::cout << "Wybrales dodawanie." << std::endl;
        std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout <<std::endl;
        std::cout << "Dodawanie: " << a << " + " << b << " = " << a+b << std::endl;
        break;
        case 2:
        std::cout << "Wybrales odejmowanie." << std::endl;
        std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout << "Odejmowanie: " << a << " - " << b << " = " << a-b << std::endl;
        break;
        case 3:
        std::cout << "Wybrales mnozenie." << std::endl;
         std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout << "Mnozenie: " << a << " * " << b << " = " << a*b << std::endl;
        break;
        case 4:
         std::cout << "Wybrales dzielenie." << std::endl;
         std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podaj liczbe druga: ";
        std::cin >> b;
        std::cout << "Dzielenie: " << a << " / " << b << " = " << a/b << std::endl;
        break;
        case 5:
        std::cout << "Wybrales objetosc szescianu." << std::endl;
         std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Objetosc szescianu: " << a << " do potegi trzeciej = " << pow(a,pottrzecia) << std::endl;
        break;
        case 6:
        std::cout << "Wybrales potegowanie." << std::endl;
         std::cout << "Podaj liczbe pierwsza: ";
        std::cin >> a;
        std::cout << "Podnies liczbe pierwsza do potegi: ";
        std::cin >> b;
        std::cout << "Potegowanie: " << a << " do potegi "<< b << " = " << pow(a, std::endl;
        break;
        case 7:
        std::cout << "Wybrales objetosc prostopadloscianu." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Podaj dlugosc b: ";
        std::cin >> b;
        std::cout << "Podaj dlugosc c: ";
        std::cin >> c;
        std::cout << "Objetosc prostopadloscianu: " << a << " * "<< b << " * " << c << " = " << a*b*c << std::endl;
        break;
        case 8:
        std::cout << "Wybrales objetosc walca." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << "Podaj wysokosc: ";
        std::cin >> b;
        std::cout << "Objetosc walca: " << a << " do potegi drugiej * "<< b << " = " << pow(a,2)*b << " pi" << std::endl;
        std::cout << " \t \t \t Mnozac pi (3,14) = " << pow(a,2)*b*pi<< std::endl;
        break;
        case 9:
        std::cout << "Wybrales objetosc stozka." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << "Podaj wysokosc: ";
        std::cin >> b;
        std::cout << "Objetosc stozka: " << "1/3 * " << a << " do potegi drugiej * "<< b << " = " << pow(a,2)*b*1/3 << " pi" << std::endl;
        std::cout << " \t \t \t Mnozac pi (3,14) = " << pow(a,2)*b*pi<< std::endl;
        break;
        case 10:
        std::cout << "Wybrales pole trojkata." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Podaj wysokosc: ";
        std::cin >> b;
        std::cout << "Pole trojkata: " << "("<< a << " * "<< b << ")" << "/2"<< " = " << (a*b)/2 << std::endl;
        break;
        case 11:
        std::cout << "Wybrales wysokosc trojkata rownobocznego." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Wysokosc trojkata rownobocznego: " << a << " /2 = " << a/2 << " pierwiastek 3ciego stopnia" << std::endl;
        break;
        case 12:
        std::cout << "Wybrales pole trojkata rownobocznego." << std::endl;
        std::cout << "Podaj dlugosc a: ";
        std::cin >> a;
        std::cout << "Pole trojkata rownobocznego: " << "("<< a << " do potegi drugiej)/4 = " << (pow(a,2))/4 << " pierwiastek 3ciego stopnia" << std::endl;
        break;
        case 13:
        std::cout << "Wybrales pierwiastkowanie." << std::endl;
        std::cout << "Podaj liczbe, ktora chcesz pierwiastkowac: ";
        std::cin >> a;
        std::cout << "Podaj wartosc pierwiastka: ";
        std::cin >> b;
        std::cout << "Pierwiastek " << b << " stopnia z " << a << " jest rowny = " << pow( a,( 1 / b ) ) << std::endl;
        break;
        case 14:
        std::cout << "Wybrales pole kola." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " do potegi drugiej * pi = " << pow(a,2) << "pi" << std::endl;
        std::cout << " \t \t \t Mnozac pi (3,14) = " << pow(a,2)*pi<< std::endl;
        break;
        case 15:
        std::cout << "Wybrales dlugosc kola." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " * 2 * pi = " << 2*a << "pi" << std::endl;
        std::cout << " \t \t Mnozac pi (3,14) = " << 2*a*pi<< std::endl;
        break;
        case 16:
        std::cout << "Wybrales pole kuli." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " do potegi drugiej * 4 * 4/3 * pi = " << pow(a,2)*4 << "pi" << std::endl;
        std::cout << " \t \t Mnozac pi (3,14) = " << pow(a,2)*4*pi<< std::endl;
        break;
        case 17:
        std::cout << "Wybrales objetosc kuli." << std::endl;
        std::cout << "Podaj promien: ";
        std::cin >> a;
        std::cout << a << " do potegi drugiej * 4 * 4/3 * pi = " << pow(a,2)*4/3 << "pi" << std::endl;
        std::cout << " \t \t Mnozac pi (3,14) = " << pow(a,2)*4/3*pi<< std::endl;
        break;
        case 18:
        std::cout << "Wybrales kwadrat sumy." << std::endl;
        std::cout << "Podaj pierwsza liczbe: ";
        std::cin >> a;
        std::cout << "Podaj druga liczbe: ";
        std::cin >> b;
        std::cout << a << " do potegi drugiej + 2 * " << a << " * " << b << " + " << b << " do potegi drugiej = " << pow(a,2)+2*a*b+pow(b,2) << std::endl;
        break;
        case 19:
        std::cout << "Wybrales kwadrat roznicy." << std::endl;
        std::cout << "Podaj pierwsza liczbe: ";
        std::cin >> a;
        std::cout << "Podaj druga liczbe: ";
        std::cin >> b;
        std::cout << a << " do potegi drugiej - 2 * " << a << " * " << b << " + " << b << " do potegi drugiej = " << pow(a,2)-2*a*b+pow(b,2) << std::endl;
        break;
        case 20:
        {
        int x;
        int xx;
        int xxx;
        int licznik = 0;
        std::cout << "Wybrales losowanie liczb." << std::endl;
        std::cout << "Podaj liczbe poczatkowa: ";
        std::cin >> x;
        std::cout << "Podaj liczbe koncowa: ";
        std::cin >> xx;
        std::cout << "Podaj ilosc liczb, ktore maja zostac wylosowane: ";
        std::cin >> xxx;
        int sprawdzacz = xx-x;
        if (sprawdzacz < xxx)
        {
            std::cout << "Nie mozesz wylosowac tylu liczb z tego zakresu!" << std::endl;
        }
        else
        {


        std::cout << "Wylosowane liczby to: ";
            do
            {
            std::cout << (rand() %( xx- x + 1 ) + x)<< ", ";
            licznik++;
            }while (licznik !=xxx);
        }
        std::cout << std::endl;
        }
        break;
        case 99:
        std::cout << "Wybrales wyjscie. Nadus dowolny przycisk aby zakonczyc." << std::endl;
        break;
        default:
        std::cout << "Brak funkcji o tym numerze." << std::endl;
        }
    getch();
    return 0;
} 

Linia z błędem:



Wiem że ten kod nie jest jakiś świetny, ale prosze o pomoc :)

5

Błędem jest dokładnie to, co Ci kompilator napisał. Nie domknąłeś nawiasu w 69. linii: pow(a, std::endl;

3

Wg mnie błędem jest metoda Kopiego-Pejsta.
https://4programmers.net/Forum/C_i_C++/352675-stos_funkcje_zapisu_i_odczytu_pliku_binarnego?p=1772198#id1772198
Jak masz całe menu zapisane w obiektach struktur to jak działa jedno to działa całość.

Моże taki odskok ... czy zauważyliście że każdy wzorzec projektowy da się opisać zdaniem: - "Wpierdol to do kontenera!"
Czy to Fabryka gdzie wsadzamy to switch (co za ... (autocenzura)), listy lub mapy...
Czy to Pylek gdzie trzymamy wylosowaną tablicę...
Czy to Dekorator gdzie trzymamy to w zasadzie na liście jednokierunkowej (w postaci matrioszki ale nie jest to zasadnicze) ...
Może jeden czy dwa wzorce wyłamują się z tej reguły np. Strategia ale jak mamy więcej niż jedną strategię (bo jak tylko jedną to po kiego ... ten wzorzec) to warto wszystkie możliwe umieścić w tablice/liście/mapie.

0
_13th_Dragon napisał(a):

Моże taki odskok ... czy zauważyliście że każdy wzorzec projektowy da się opisać zdaniem: - "Wpierdol to do kontenera!"
Czy to Fabryka gdzie wsadzamy to switch (co za ... (autocenzura)), listy lub mapy...
Czy to Pylek gdzie trzymamy wylosowaną tablicę...
Czy to Dekorator gdzie trzymamy to w zasadzie na liście jednokierunkowej (w postaci matrioszki ale nie jest to zasadnicze) ...
Może jeden czy dwa wzorce wyłamują się z tej reguły np. Strategia ale jak mamy więcej niż jedną strategię (bo jak tylko jedną to po kiego ... ten wzorzec) to warto wszystkie możliwe umieścić w tablice/liście/mapie.

Po co pisać o wzorcach projektowych, komuś, kto pisze wszystko w main?
Niech lepiej najpierw ogarnie definiowanie funkcji i podzieli ten kod na jakieś logiczne części.

Swoja drogą błąd jest jasny i przejrzysty: https://godbolt.org/z/fovse7WjY i problem sam rzuca się w oczy.

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