﻿#include <iostream>
#include <cmath>

using namespace std;

void czolowka();
void wyswietlMenu();
double pobierzLiczbe(string nazwa);
void wyswietlWynik(double a, double b);

int main()
{
    czolowka();

    // deklaracja i inicjalizacja zmiennych
    double a = 0;
    double b = 0;
    char wyjscie = 'w';

    while (wyjscie != 't') {
        
        a = pobierzLiczbe("pierwsza");
        b = pobierzLiczbe("druga");

        // czyścimy ekran
        system("cls");

        wyswietlMenu();

        wyswietlWynik(a, b);
        
        cout << "\nwyjscie: t/n" << endl;
        cin >> wyjscie;
        
        // czyścimy ekran
        system("cls");
    }

    // wracamy do defaultowqego koloru
    system("color 0F");

    // pożegnanie
    cout << "Żegnamy i zapraszamy ponownie!" << endl;
    
    return 0;
}

void czolowka()
{
    cout << "Kalkulator\n\n";
    cout << "wybierz kolor czcionki:\n";
    cout << "\n[1] szara\n";
    cout << "[2] jasnoniebieska\n";
    cout << "[3] jasnozielona\n";
    cout << "[4] jasnobłekitna\n";
    cout << "[5] jasnoczerwona\n";

    short kolorCzcionki = 0;
    cin >> kolorCzcionki;

    switch (kolorCzcionki) {
    case 1:
        system("color 08");
        break;
    case 2:
        system("color 09");
        break;
    case 3:
        system("color 0A");
        break;
    case 4:
        system("color 0B");
        break;
    case 5:
        system("color 0C");
        break;
    default:
        cout << "nieznany kolor\n";
    }
    // czyścimy ekran
    system("cls");
}


void wyswietlMenu()
{
    cout << "wybierz działanie\n";

    cout << "\n[1] dodawanie\n";
    cout << "[2] odejmowanie\n";
    cout << "[3] mnozenie\n";
    cout << "[4] dzielenie\n";
    cout << "[5] potegowanie\n";
}

double pobierzLiczbe(string nazwa) {
    double a;
    cout << "Podaj " << nazwa << " liczbe\n";
    cin >> a;
    return a;
}

void wyswietlWynik(double a, double b)
{
    short menu;
    cin >> menu;

    double wynik;

    switch (menu) {
    case 1:
        wynik = a + b;
        cout << "Wynik: " << wynik;
        break;
    case 2:
        wynik = a - b;
        cout << "Wynik: " << wynik;
        break;
    case 3:
        wynik = a * b;
        cout << "Wynik: " << wynik;
        break;
    case 4:
        if (b != 0) {
            wynik = a / b;
            cout << "Wynik: " << wynik;
        }
        else {
            cout << "Nie dzielimy przez zero";
            while (b == 0) {
                cout << "\nPodaj druga liczbe\n";
                cin >> b;
            }
            wynik = a / b;
            cout << "Wynik: " << wynik;
        }
        break;
    case 5:
        wynik = pow(a, b);
        cout << "Wynik: " << wynik;
        break;
    default:
        cout << "niewlasciwe dzialanie\n";
    }
}
