Menu z serią funkcji - kod do sprawdzenia

0

Witam ponownie,

Kolejne zadanie z podrecznika rozdz. 6 zad.1

Zad.1 Weź program z menu który napisałeś wcześniej i rozbij go na serię wywołań funkcji z których każda odpowiada za jedną pozycję menu. Jako dwie nowe pozycje menu dodaj kalkulator oraz piosenkę 99 bottles of beer.

Moje rozwiązanie:

#include <iostream>
#include <windows.h>

using namespace std;

string name2, surname2;
int age2;
char option1;

int introduction()
{
    cout << "Podaj swoje imie: ";
    cin >> name2;
    cout << "Podaj swoje nazwisko: ";
    cin >> surname2;
    cout << "Podaj swoj wiek: ";
    cin >> age2;
}

int name()
{
    cout << name2 << endl;
}

int surname()
{
    cout << surname2 << endl;
}

int age()
{
    cout << age2 << endl;
}
int calculator()
{
    string znak;
    double a;
    double b;

    cout << "Prosze podac znak arytmetyczny +,-,*,/: ";
    cin >> znak;
    cout << "Prosze podac pierwsza liczbe: ";
    cin >> a;
    cout << "Prosze podac druga liczbe: ";
    cin >> b;

    if (b == 0) {
        while (b == 0) {
            cout << "Nie dzieli sie przez 0!!!" << endl;
            cout << "Prosze podac ponownie druga liczbe: ";
            cin >> b;
        }
    }

    if (znak == "+") {
        cout << "Suma liczb a i b wynosi: " << a + b << endl;
    }
    else if (znak == "-") {
        cout << "Roznica liczb a i b wynosi: " << a - b << endl;
    }
    else if (znak == "*") {
        cout << "Iloczyn liczb a i b wynosi: " << a * b << endl;
    }
    else {
        cout << "Iloraz liczb a i b wynosi: " << a / b << endl;
    }
}

int song()
{
    for (int x = 99; x >= 1; x--) {
        cout << x << " bottles of beer on the wall, " << x << " bottles of beer. " << endl;
        cout << " Take one down and pass it around - " << x - 1 << " bottles of beer on the wall." << endl;
    }

    cout << "No bottle of beer on the wall, No bottle of beer.";
}

int menu()
{
    cout << "MENU - wybierz interesujaca Cie opcje" << endl;
    cout << "[1] Wyswietli imie" << endl;
    cout << "[2] Wyswietli nazwisko" << endl;
    cout << "[3] Wyswietli wiek" << endl;
    cout << "[4] Kalkulator" << endl;
    cout << "[5] Drukowanie piosenki 99 Bottles of beer" << endl;
    cin >> option1;
}

int main()
{
    introduction();
    system("cls");
    menu();
    system("cls");

    while (option1 != '1' && option1 != '2' && option1 != '3' && option1 != '4' && option1 != '5') {
        menu();
    }
    if (option1 == '1') {
        name();
    }
    else if (option1 == '2') {
        surname();
    }
    else if (option1 == '3') {
        age();
    }
    else if (option1 == '4') {
        calculator();
    }
    else if (option1 == '5') {
        song();
    }

    return 0;
}

Proszę o uwagi do mojego rozwiązania.

Pozdrawia Piotrek

0

Zamiast tego while zrób switcha ;)

switch(option1)
{
case '1':
...
}

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