Program nie czyści okna

1

Witam, mam problem. Napisałem program i na końcu miał się albo wyłączyć, albo zresetować (zależy od wyboru). Lecz zamiast tego się zaokrągla i zamiast się wyczyścić pisze dalej poniżej. Co mogę zrobić. Kod podaję poniżej i prosił bym o szybkie rozwiązanie, z góry dzięki ;)
'''
#include <iostream>
#include <math.h>
#include <windows.h>

using namespace std;

float x,y,z,w;
int wybor;
int main()
{
while(true)
for(;;)
{
cout << "Menu" << endl;
cout<<"1.Kwadrat"<<endl;
cout<<"2.Prostokat"<<endl;
cout<<"3.Trojkat"<<endl;
cout<<"4.Kolo"<<endl;
cout<<"5.Trapez"<<endl;
cout<<"6.Romb"<<endl;
cout<<"7.Rownoleglobok"<<endl;
cout<<"Wybierasz:";
cin>>wybor;
switch(wybor)
{
case 1:
{
cout<<"Zostal wybrany kwadrat"<<endl;
cout<<"Podaj Bok:";
cin>>x;
cout<<"Wzor: ";
cout<<"aa"<<endl;
cout<<"Pole: "<<x
x<<endl;
cout<<"Wzor: ";
cout<<"a4"<<endl;
cout<<"Obwod: "<<x
4<<endl;
}
break;
case 2:
{
cout<<"Zostal wybrany prostokat"<<endl;
cout<<"Podaj bok a:";
cin>>x;
cout<<"Podaj bok b:";
cin>>y;
cout<<"Wzor :";
cout<<"ab"<<endl;
cout<<"Pole: "<<x
y<<endl;
cout<<"Wzor :";
cout<<"2a+2b"<<endl;
cout<<"Obwod: "<<2*(x+y)<<endl;
}
break;
case 3:
{
cout<<"Zostal wybrany trojkat"<<endl;
cout<<"Podaj podstawe:";
cin>>x;
cout<<"Podaj wysokosc:";
cin>>y;
cout<<"Wzor:"<<endl;
cout<<"ah/2"<<endl;
cout<<"Pole: "<<x
y/2<<endl;
cout<<"Wzor:"<<endl;
cout<<"3a"<<endl;
cout<<"Obwod: "<<3
x<<endl;

        }
    break;
    case 4:
    {
        cout<<"Zostalo wybreane kolo"<<endl;
        cout<<"Podaj promien:";
        cin>>x;
        cout<<"Wzor:"<<endl;
        cout<<"Pi*r*r"<<endl;
        cout<<"Pole: "<<x*x<<"Pi"<<endl;
        cout<<"Zaokrolgenie: "<<(x*x)*3.14<<endl;
        cout<<"Wzor:"<<endl;
        cout<<"2Pi*r"<<endl;
        cout<<"Obwod: "<<2*x<<"Pi"<<endl;
        cout<<"Zaokrolgenie: "<<2*x*3.14<<endl;
    }
    break;
    case 5:
    {
        cout<<"Zostal wybrany trapez"<<endl;
        cout<<"Podaj bok a: ";
        cin>>x;
        cout<<"Podaj bok b: ";
        cin>>y;
        cout<<"Podaj wysokosc/bok c: ";
        cin>>z;
        cout<<"Podaj bok d: ";
        cin>>w;
        cout<<"Wzor: "<<endl;
        cout<<"(a+b)*h/2"<<endl;
        cout<<"Pole: "<<((x+y)*z)/2<<endl;
        cout<<"Wzor: "<<endl;
        cout<<"a+b+c+d"<<endl;
        cout<<"Pole:"<<x+y+z+w<<endl;
    }
    break;
    case 6:
    {
        cout<<"Zostal wybrany Romb"<<endl;
        cout<<"Podaj bok a: ";
        cin>>x;
        cout<<"Podaj bok b: ";
        cin>>y;
        cout<<"Podaj wysokosc: ";
        cin>>z;
        cout<<"Wzor: "<<endl;
        cout<<"a+b/2*h"<<endl;
        cout<<"Pole: "<<((x+y)/2)*z<<endl;
        cout<<"Wzor: "<<endl;
        cout<<"4*a"<<endl;
        cout<<"Obwod: "<<4*x<<endl;
    }
    break;
    case 7:
    {
        cout<<"Zostal wybrany Rownoleglobok"<<endl;
        cout<<"Podaj bok a: ";
        cin>>x;
        cout<<"Podaj bok b: ";
        cin>>y;
        cout<<"Podaj wysokosc: ";
        cin>>z;
        cout<<"Wzor: "<<endl;
        cout<<"a*h"<<endl;
        cout<<"Pole: "<<(x*z)<<endl;
        cout<<"Wzor: "<<endl;
        cout<<"2a+2b"<<endl;
        cout<<"Obwod :"<<2*x+2*y<<endl;
    }
    break;
    default:
    {
        cout<<"Nie ma takiej opcji !!!"<<endl;
        Sleep(3000);
        system("cls");
    }
    {
                        string a,b;
                        cout << "czy chcesz wylaczyc, w przeciwnym wypadku nastapi reset: ";
                        cin >> a;
                        if (a == "tak")
                        {
                            cout<<"Dziekuje za uwage. Program zostal napisany przez K.T";
                            Sleep(3000);
                            exit(0);
                        }
                        else
                            cout<<"czy chcesz wylaczyc, w przeciwnym wypadku nastapi reset: ";
                            {
                                system("cls");
                            }
                    }

}
}
return 0;

}
'''

3

Czuję, że zostałeś padawanem znanego mistrza internetowych kursów C++. Kopy-pejsta strasznie dużo co pachnie znaną tutaj od bardzo dawna mocą Jedi, no i sformatuj jakoś ten kod.

Zrobiłbym to tak (może nie najnowszy C++ ale chyba niezły, biorąc pod uwagę fakt, że większy kod w C++ pisałem chyba 1,5 roku temu. :-) ):

#include<iostream>
#include<string>
#include<memory>
using namespace std;

class shape
{
    string name;

public:
    shape(const string& name) : name(name) {}
    string getName() { return name; }
    virtual float calculateField() = 0;
    virtual ~shape() = default;
};

class square : public shape
{
    float a;

public:
    square(const string& name, float a)
        :shape(name), a(a) {}

    float calculateField() override { return a * a; }
};

class triangle : public shape
{
    float a, h;

public:
    triangle(const string& name, float a, float h)
        :shape(name), a(a), h(h) {}

    float calculateField() override { return 0.5f * a * h; }
};

class shapePresenter
{
public:
    void show(const unique_ptr<shape>& sh)
    {
        cout << "Shape: " << sh->getName() << ", field: " << sh->calculateField() << "\n\n";
    }
};

int main()
{
    int selected = 0;
    do
    {
        cout << "1. Square;\n2. Triangle;\n3. Quit\n\nSelect: ";
        cin >> selected;

        shapePresenter presenter;
        unique_ptr<shape> sh;

        switch (selected)
        {
            case 1:
            {
                //  Przykładowe wartości liczbowe, bo nie chcę mi sie
                //  pisać wprowadzania danych etc...
                sh = unique_ptr<square>(new square("Square", 2.0f));
                presenter.show(sh);
                break;
            }
            case 2:
            {
                sh = unique_ptr<triangle>(new triangle("Triangle", 2.0f, 3.0f));
                presenter.show(sh);
                break;
            }
            default:
            {
                selected = 3;
                break;
            }
        }
    } while (selected != 3);

    return 0;
}

@INH: poczytaj o klasach, metodach wirtualnych i o niekopiowaniu fragmentów kodu oraz niekorzystaniu ze zmiennych globalnych. Poza tym, tak patrząc na pierwszy rzut oka, Twój kod się nawet nie skompiluje, bo masz tam mnóstwo zmiennych, które w ogóle nie istnieją np. x4.

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