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

15. 2 praca domowa (kalkulator)

Ostatnio zmodyfikowano 2013-09-28 08:03
Autor Wiadomość
G4m3killer
Temat założony przez niniejszego użytkownika
15. 2 praca domowa (kalkulator)
» 2013-09-27 20:19:29
Mam problem na 15 lekcji w napisaniu kalkulatora z 2 zadania pracy domowej. Zadanie brzmi:
Napisz prosty kalkulator, który będzie potrafił dodawać, odejmować, mnożyć i dzielić. Program ten ma działać następująco:
1. Wypisuje obecny wynik
2. Wprowadź liczbę
3. Wybierz działanie (jeżeli liczba różna od 0)
4. Wykonaj obliczenia (jeżeli liczba różna od 0)
5. Wróć do kroku 1.
6. Jeżeli wprowadzoną liczbą jest 0, zakończ program.
Przykładowe menu wyboru działania:
[1] Dodawanie
[2] Odejmowanie
[3] Mnożenie
[4] Dzielenie
[5] Rezygnuj
Zabezpiecz wcześniej napisany kalkulator przed podawaniem niepoprawnych liczb i operacji. Wykorzystaj wiedzę zdobytą z pierwszego zadania pracy domowej niniejszego rozdziału. Zabezpiecz również w analogiczny sposób przed możliwością wyboru nieprawidłowego działania.

Napisałem taki kod:
C/C++
#include <iostream>
using namespace std;
int main()
{
    int liczba;
    int liczba2;
    int wynik = 0;
   
    do
    {
        cin.clear();
        cin.sync();
        cout << "Wynik: " << wynik << endl;
        cout << "Podaj 1 liczbe: ";
        cin >> liczba;
        cout << "Podaj 2 liczbe: ";
        cin >> liczba2;
        if( liczba != 0 && liczba2 != 0 )
        {
            cout << "[1] Dodawanie" << endl;
            cout << "[2] Odejmowanie" << endl;
            cout << "[3] Mnozenie" << endl;
            cout << "[4] Dzielenie" << endl;
            cout << "[5] Rezygnuj" << endl;
            int co;
            cin >> co;
            switch( co )
            {
            case 1:
                cout << liczba + liczba2 << endl;
                break;
            case 2:
                cout << liczba - liczba2 << endl;
                break;
            case 3:
                cout << liczba * liczba2 << endl;
                break;
            case 4:
                cout << liczba / liczba2 << endl;
                break;
            case 5:
                break;
            default:
                cout << "Podales bledne dane :/" << endl;
                break;
            }
        }
    } while( wynik > 0 );
   
    return 0;
}
I nie wiem jak zrobić aby dane z obliczen zapisywaly sie do zmiennej wynik.. Czy moze zle podszedlem do tego zadania?
P-92752
Buby
» 2013-09-27 21:29:27
Poprawiłem twój kod.
Przyjrzyj się uważnie, w poprawionych liniach dodałem komentarze.

C/C++
#include <iostream>
using namespace std;
int main()
{
    int liczba;
    int liczba2;
    int wynik = 0;
   
    do
    {
        cin.clear();
        cin.sync();
        cout << "Wynik: " << wynik << endl;
        cout << "Podaj 1 liczbe: ";
        cin >> liczba;
        if( cin.good() ) // zmieniłem warunek, na taki, ze jeśli użytkownik wpisze poprawne dane, i metoda zwróci prawdę,warunek zostanie spełniony.
        {
            cout << "Podaj 2 liczbe: ";
            cin >> liczba2;
            if( cin.good() ) // analogicznie do pierwszego warunku ;)
            {
                cout << "[1] Dodawanie" << endl;
                cout << "[2] Odejmowanie" << endl;
                cout << "[3] Mnozenie" << endl;
                cout << "[4] Dzielenie" << endl;
                cout << "[5] Rezygnuj" << endl;
                int co;
                cin >> co;
                switch( co )
                {
                case 1:
                    wynik = liczba + liczba2; // Nadpisanie zmiennej wynik.
                    cout << liczba << " + " << liczba2 << " = " << wynik << endl; //wypisanie wyniku
                    break;
                case 2:
                    wynik = liczba - liczba2; // Tutaj też.
                    cout << liczba << " - " << liczba2 << " = " << wynik << endl; // tu tez
                    break;
                case 3:
                    wynik = liczba * liczba2; // Tutaj też.
                    cout << liczba << " * " << liczba2 << " = " << wynik << endl; // i tu
                    break;
                case 4:
                    wynik = liczba / liczba2; // Tutaj też. ;p
                    cout << liczba << " : " << liczba2 << " = " << wynik << endl; // i tu xd
                    cout << "Reszta: " << liczba % liczba2 << endl; // reszta z dzielenia - zrobiłem modulo
                    break;
                case 5:
                    return 0; // Tutaj zakończenie programu. Spójrz, celowo robimy pętle, żeby program nie wyłączał się po wykonaniu raz polecenia.
                    break;
                default:
                    cout << "Podales bledne dane :/" << endl;
                    break;
                }
            }
        }
    } while( wynik > 0 );
   
    return 0;
}
P-92764
megatron
» 2013-09-27 21:29:56
wynik = liczba[ +, -, *, / ] liczba2;

#@#EDIT#@#

@UP dawanie gotowców niczego użytkownika @G4m3killer nie nauczy ;/
P-92765
G4m3killer
Temat założony przez niniejszego użytkownika
» 2013-09-28 08:03:32
Dzięki @buby :) Napewno się przyda.
@megatron też po części prawda :) Chodz jesli ktoś poda to przeanalizuje kod i zapamietam na nastepny raz, ale nie bede mial tej satysfakcji ze sam zrobilem :/
Wole aby mnie naprowadzano :)
Dzięki chłopaki jeszcze raz :)
P-92777
« 1 »
  Strona 1 z 1