Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

lekcja 15 ,zadanie kalkulator

Ostatnio zmodyfikowano 2014-09-08 14:41
Autor Wiadomość
mortall
Temat założony przez niniejszego użytkownika
lekcja 15 ,zadanie kalkulator
» 2014-09-01 17:57:53
Witam , ostatnio zrobiłem to zadanko ale nie wiem czy tak to miało wyglądać.Program jak najbardziej działa. Bardzo proszę o "rzucenie" okiem na mój kod i opinie na jego temat i podanie ewentualnych błędów. Z góry dziękuje za pomoc.

C/C++
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
   
    int a, g, h, liczba;
    string b, c, d, e, f;
   
    do
    {
        {
            b = "1. Dodawanie";
            c = "2. Odejmowanie";
            d = "3. Mnozenie";
            e = "4. Dzielenie";
            f = "5. Rezygnuj";
        };
        cout << " Oto prosty kalkulator \n";
        cout << "  Wybierz polecenie \n \n";
        cout << b << "\n";
        cout << c << "\n";
        cout << d << "\n";
        cout << e << "\n";
        cout << f << "\n\n";
       
        do {
           
            cout << " Wprowadz nr polecenia : ";
            cin.clear();
            cin.sync();
            cin >> a;
           
            if( cin.fail() )
            {
                cout << "Prowadziles nieprawidlowy znak ! sprobuj ponownie " << endl;
            }
           
        } while( cin.fail() );
       
        cout << " Wybrane dzialanie : ";
       
       
        switch( a )
        {
        case 1:
            cout << " dodawanie" << endl;
            break;
           
        case 2:
            cout << " odejmowanie" << endl;
            break;
           
        case 3:
            cout << " mnozenie" << endl;
            break;
           
        case 4:
            cout << " dzielenie" << endl;
            break;
           
        case 5:
            cout << " rezygnuj" << endl;
            cout << " Dziekuje za kozystanie z programu . Dowidzenia ";
            return 0;
            break;
           
        };
       
       
        cout << "\n";
       
        do
        {
           
            cout << "Podaj pierwsza liczbe : ";
            cin.clear();
            cin.sync();
            cin >> g;
           
            if( cin.fail() )
            {
                cout << " Podana znak nie jest liczba !!! \n" << endl;
            };
        } while( cin.fail() );
       
        cout << "\n";
        do
        {
           
            cout << "Podaj druga liczbe : ";
            cin.clear();
            cin.sync();
            cin >> h;
           
            if( cin.fail() )
            {
               
                cout << "Podaj liczbe !! \n" << endl;
            }
           
        } while( cin.fail() );
       
        cout << "\n";
       
        switch( a )
        {
           
        case 1:
            cout << "wynik dzialania to : " << g << " + " << h << " = " << g + h;
            break;
           
        case 2:
            cout << "wynik dzialania to : " << g << " - " << h << " = " << g - h;
            break;
        case 3:
            cout << "Wynik dzialania to : " << g << " * " << h << " = " << g * h;
            break;
        case 4:
            cout << "Wynik dzialania to : " << g << " : " << h << " = " << g / h << " a reszta to : " << g % h;
            break;
        };
        cout << "\n";
        cout << "Aby wyjsc wcisnij '1' \n Aby dalej uzywac programu wcisnij '2' : ";
        cin.clear();
        cin.sync();
        cin >> liczba;
       
        if( liczba == 1 )
        {
           
            cout << " Zacznijmy od poczatku \n";
           
        };
        if( liczba != 1 )
        {
           
            cout << "Dziekuje za skorzystanie z programu. \n" << endl;
        };
        system( "cls" );
    } while( liczba != 1 );
   
   
    return 0;
}
P-116507
Mateus.
» 2014-09-01 18:19:49
Ten kod jest zbyt długi jak na takie coś (spróbuj go skrócić o połowę). Nie nazywaj też sobie zmiennych liczbowych
int a, g, h;
, a stringów
string b, c, d, e, f;
, ponieważ gdy będziesz operował na większej ilości zmiennych to takie nazewnictwo doprowadzi do wielu błędów i wydłuży pisanie samego kodu. Oczywiście takie nazywanie zmiennych:
int liczba_numer_jeden_typu_int
 też nie ma sensu ;)
P-116508
Kazaname
» 2014-09-08 12:15:12
Chciałbym się podpiąć pod temat kolegi i zapytać o opinie na temet mojego dzieła.
C/C++
#include <iostream>

using namespace std;

int main()
{
    int liczba, koniec;
    int wynik = 0;
    int dzialanie;
    bool kontrola;
   
    do
    {
        cout << "Aktualny wynik: " << wynik << endl;
        cout << "Podaj liczbe: ";
        cin >> liczba;
        kontrola = cin.good();
        cin.clear();
        cin.sync();
       
        if( liczba >= 1 && kontrola == 1 )
        {
            do
            {
                cout << "Jakie dzialanie chcesz wykonac?" << endl;
                cout << "[1] Dodawanie" << endl;
                cout << "[2] Odejmowanie" << endl;
                cout << "[3] Mnozenie" << endl;
                cout << "[4] Dzielenie" << endl;
                cout << "[5] Koniec" << endl;
                cin >> dzialanie;
                kontrola = cin.good();
                cin.clear();
                cin.sync();
               
                if( kontrola != 1 || dzialanie < 1 || dzialanie > 5 )
                {
                    cout << "Podane dzialanie jest niepoprawne. Sprobuj jeszcze raz." << "\n" << endl;
                }
               
            }
            while( kontrola == 0 );
           
            {
                switch( dzialanie )
                {
                case 1:
                    wynik = wynik + liczba;
                    break;
                case 2:
                    wynik = wynik - liczba;
                    break;
                case 3:
                    wynik = wynik * liczba;
                    break;
                case 4:
                    wynik = wynik / liczba;
                    break;
                }
            }
        }
        else
        {
            cout << "Podales niepoprawna wartosc. Czy chcesz zakonczyc dzialanie kalkulatora?" << endl;
            cout << "[0] Tak" << endl;
            cout << "[1] Nie" << endl;
            cin >> koniec;
        }
       
    }
    while( koniec != 0 && dzialanie != 5 );
   
    cout << "Koniec" << endl;
   
    return 0;
}
P-116746
michal11
» 2014-09-08 13:49:41
Wasze programy są za bardzo skomplikowane i zagmatwane. Zresztą ten temat był juz ostatnio poruszany tu na forum w dziale nasze prace.
Szablon takiego kalkulatora może wyglądać tak:

C/C++
bool dzialaj = true;
double liczba1, liczba2;
int opcja;

while( dzialaj )
{
    cin >> liczba1;
    cin >> liczba2;
    cin >> opcja;
    switch( opcja )
    {
    case 1:
        break;
    case 2:
        break;
    case 3:
        break;
    case 4:
        break;
    case 5:
        dzialaj = false;
        break;
    default:
    }
}

Wystarczy do tego dodać menu i obsługę błędów i gotowe.
P-116748
Mateus.
» 2014-09-08 14:41:58
cin<<...;
 ;)
P-116752
« 1 »
  Strona 1 z 1