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

Poprawa kalkulatora

Ostatnio zmodyfikowano 2012-06-11 17:31
Autor Wiadomość
VoyteQ
Temat założony przez niniejszego użytkownika
Poprawa kalkulatora
» 2012-06-10 14:17:36
Jako że się uczę dopiero programować... czytam kurs ze strony ale coś nie mogę zajarzyć jednej rzeczy.
Napisałem taki oto kalkulator.
Jak go zapętlić żeby wracał po działaniu do początku? niby jest pętla while ale jak wrzucam ją w kod to mi błędy sypie...
i druga rzecz jak go zabezpieczyć żeby np po wpisaniu litery zamiast cyfry dawał komunikat odpowiedni i wracał do ponownego wyboru.


C/C++
#include<iostream>
#include<cstdlib>
#include<cstdio>

using namespace std;
int liczba1, liczba2, wynik, wynik2;
int ile = 10;
int main()
{
    int liczba;
    cout << "======KALKULATOR======" << endl;
    cout << "1.Dodawanie" << endl;
    cout << "2.Odejmowanie" << endl;
    cout << "3.Mnożenie" << endl;
    cout << "4.Dzielenie" << endl;
    cout << "W celu wyjscia nacisnij inny dowolny klawisz" << endl;
    cin >> liczba;
   
   
    switch( liczba )
    {
       
    case 1:
        cout << "podaj pierwsza liczbe" << endl;
        cin >> liczba1;
        cout << "podaj drugą liczbe" << endl;
        cin >> liczba2;
        wynik = liczba1 + liczba2;
        cout << "Wynik wynosi:" << wynik << endl;
        break;
    case 2:
        cout << "podaj pierwsza liczbe" << endl;
        cin >> liczba1;
        cout << "podaj drugą liczbe" << endl;
        cin >> liczba2;
        wynik = liczba1 - liczba2;
        cout << "Wynik wynosi:" << wynik << endl;
        break;
    case 3:
        cout << "podaj pierwsza liczbe" << endl;
        cin >> liczba1;
        cout << "podaj drugą liczbe" << endl;
        cin >> liczba2;
        wynik = liczba1 * liczba2;
        cout << "Wynik wynosi:" << wynik << endl;
        break;
    case 4:
        cout << "podaj pierwsza liczbe" << endl;
        cin >> liczba1;
        cout << "podaj drugą liczbe" << endl;
        cin >> liczba2;
        wynik = liczba1 / liczba2;
        wynik2 = liczba1 % liczba2;
        cout << "Wynik wynosi:" << wynik << "reszty: " << wynik2 << endl;
        break;
       
    }
    cout << "DO WIDZENIA" << endl;
    system( "pause" );
}
P-58165
SeaMonster131
» 2012-06-10 14:34:46
niby jest pętla while ale jak wrzucam ją w kod to mi błędy sypie...
Jakie błędy i gdzie ją "wrzucasz w kodzie" ?

druga rzecz jak go zabezpieczyć żeby np po wpisaniu litery zamiast cyfry dawał komunikat odpowiedni i wracał do ponownego wyboru
Instrukcja if, sprawdzenie to !cin.good() / cin.fail(), a wracanie to pętla np while :)
P-58166
VoyteQ
Temat założony przez niniejszego użytkownika
» 2012-06-10 15:04:02
pętle wstawiam przed switch a koncze po 4 case a dokładniej  po break.

Może ktoś wstawić te rzeczy do kodu który wpisałem :(
P-58168
Netro
» 2012-06-11 15:51:34
u mnie kod wygląda następująco:


#include <iostream>
using namespace std;
int wczytajLiczbe1()
{
    int a;
    bool x;
 do
 {

    std::cin >> a;
    x=std::cin.good();
    std::cin.clear();
    std::cin.sync();

 } while (x==0);
    return a;
}
int wczytajLiczbe2()
{
    int b;
    bool x;
 do
 {

    std::cin >> b;
    x=std::cin.good();
    std::cin.clear();
    std::cin.sync();

 } while (x==0);
    return b;
}
int dodawanie(int a, int b)
{
    return a + b;
}
int odejmowanie(int a, int b)
{
    return a - b;
}
int mnozenie(int a, int b)
{
    return a * b;
}
int dzielenie(int a, int b)
{
    return a / b;
}
int main()
{
    int x, suma, roznica, iloczyn, iloraz;
    do
    {
    cout << "Podaj pierwsza liczbe: ";
    int liczba1 = wczytajLiczbe1();
    cout << endl << "Podaj druga liczbe: ";
    int liczba2 = wczytajLiczbe2();

    cout << endl << " 1 - dodawanie " << endl << " 2 - odejmowanie " << endl << " 3 - mnozenie " << endl << " 4 - dzielenie " << endl;
    cout << "Podaj numer od 1 do 4, dla zadanego dzialania: ";
    cin >> x;
    switch(x)
    {
    case 1:
        suma=dodawanie(liczba1,liczba2);
        cout << "Suma podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << suma << endl;
        break;
    case 2:
        roznica=odejmowanie(liczba1,liczba2);
        cout << "Roznica podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << roznica << endl;
        break;
    case 3:
        iloczyn=mnozenie(liczba1,liczba2);
        cout << "Iloczyn podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << iloczyn << endl;
        break;
    case 4:
        {
        if (liczba2 == 0)
        cout << "Nie dzielimy przez zero";
        else
        iloraz=dzielenie(liczba1,liczba2);
        cout << "Iloraz podanych liczb " << liczba1 << " i " << liczba2 << " wynosi: " << iloraz << endl;
        break;
        }
    default:
        cout << "Nie podales liczby od 1 do 4" << endl;
        break;
    }
    }while(x>=1&&x<=4);
    return 0;
}
P-58238
Sparrow-hawk
» 2012-06-11 17:31:21
Tak na szybko:
C/C++
#include<iostream>
#include<cstdlib>
#include<cstdio>

using namespace std;
int liczba1, liczba2, wynik, wynik2, liczba;
int ile = 10;
int main()
{
   
    do {
        system( "cls" );
        cout << "======KALKULATOR======" << endl;
        cout << "1.Dodawanie" << endl;
        cout << "2.Odejmowanie" << endl;
        cout << "3.Mnozenie" << endl;
        cout << "4.Dzielenie" << endl;
        cout << "5.Koniec" << endl;
        cin >> liczba;
       
       
        switch( liczba )
        {
           
        case 1:
            cout << "podaj pierwsza liczbe" << endl;
            cin >> liczba1;
            cout << "podaj druga liczbe" << endl;
            cin >> liczba2;
            wynik = liczba1 + liczba2;
            cout << "Wynik wynosi:" << wynik << endl;
            break;
        case 2:
            cout << "podaj pierwsza liczbe" << endl;
            cin >> liczba1;
            cout << "podaj druga liczbe" << endl;
            cin >> liczba2;
            wynik = liczba1 - liczba2;
            cout << "Wynik wynosi:" << wynik << endl;
            break;
        case 3:
            cout << "podaj pierwsza liczbe" << endl;
            cin >> liczba1;
            cout << "podaj druga liczbe" << endl;
            cin >> liczba2;
            wynik = liczba1 * liczba2;
            cout << "Wynik wynosi:" << wynik << endl;
            break;
        case 4:
            cout << "podaj pierwsza liczbe" << endl;
            cin >> liczba1;
            cout << "podaj druga liczbe" << endl;
            cin >> liczba2;
            wynik = liczba1 / liczba2;
            wynik2 = liczba1 % liczba2;
            cout << "Wynik wynosi:" << wynik << "reszty: " << wynik2 << endl;
            break;
           
        }
        system( "pause" );
    }
    while( liczba != 5 );
   
    cout << "DO WIDZENIA" << endl;
    system( "pause" );
}
P-58253
« 1 »
  Strona 1 z 1