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

[Lekcja 15] Prośba o sprawdzenie zadania domowego (kalkulator)

Ostatnio zmodyfikowano 2011-08-30 21:09
Autor Wiadomość
SPARTANIN
Temat założony przez niniejszego użytkownika
» 2011-08-30 15:56:50
To kod mojego kalkulatora:

C/C++
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int wybor;
    float a;
    float b;
    char chce;
   
   
    //nag³owek
   
    cout << "#########################" << endl;
    cout << "##                     ##" << endl;
    cout << "##   Kalkulator v0.02  ##" << endl;
    cout << "##         by          ##" << endl;
    cout << "##  ..::SPARTANIN::..  ##" << endl;
    cout << "##                     ##" << endl;
    cout << "#########################" << endl;
    do
    {
       
        do
        {
           
            //menu wyboru
           
            cout << "Wybierz dzialanie" << endl;
            cout << "1. Dodawanie" << endl;
            cout << "2. Odejmowanie" << endl;
            cout << "3. Mozenie" << endl;
            cout << "4. Dzielenie" << endl;
            cout << "5. Wylacz program" << endl;
           
           
            //wybiera opcje menu
           
            cin.clear();
            cin.sync();
            cin >> wybor;
           
            if( cin.fail() )
                 cout << "tu wpisujemy liczby, nie literki :)\n\n\n";
           
        } while( !cin.good() );
       
       
        //poszczególne opcje
       
        switch( wybor )
        {
           
           
        case 1:
           
           
            do
            {
                cout << "Podaj pierwsza liczbe: ";
                cin.clear();
                cin.sync();
                cin >> a;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            do
            {
               
                cout << "Podaj druga liczbe: ";
                cin.clear();
                cin.sync();
                cin >> b;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            cout << "Wynik: " << a + b << "\n\n" << endl;
           
           
            cout << "Czy chcesz cos jeszcze policzyc ?  (T/N)\n";
            cin.clear();
            cin.sync();
            cin >> chce;
           
           
            break;
           
        case 2:
           
           
            do
            {
               
                cout << "Podaj pierwsza liczbe: ";
                cin.clear();
                cin.sync();
                cin >> a;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            do
            {
               
                cout << "Podaj podaj druga liczbe: ";
                cin.clear();
                cin.sync();
                cin >> b;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            cout << "Wynik: " << a - b << "\n\n" << endl;
           
           
           
           
            cout << "Czy chcesz cos jeszcze policzyc ? {T/N) \n";
            cin.clear();
            cin.sync();
            cin >> chce;
            cout << "\n\n\n";
           
           
            break;
           
           
        case 3:
           
            do
            {
                cout << "Podaj pierwsza liczbe: ";
                cin.clear();
                cin.sync();
                cin >> a;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            do
            {
               
                cout << "Podaj druga liczbe: ";
                cin.clear();
                cin.sync();
                cin >> b;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            cout << "Wynik: " << a * b << "\n\n" << endl;
           
           
            cout << "Czy chcesz cos jeszcze policzyc ?  (T/N)\n";
            cin.clear();
            cin.sync();
            cin >> chce;
            cout << "\n\n\n";
           
           
            break;
           
        case 4:
           
           
            do
            {
               
                cout << "Podaj pierwsza liczbe: ";
                cin.clear();
                cin.sync();
                cin >> a;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            do
            {
               
                cout << "Podaj podaj druga liczbe: ";
                cin.clear();
                cin.sync();
                cin >> b;
               
                if( cin.fail() )
               
               
                     cout << "Podales litere/znak, a nie liczbe\n\n";
               
            } while( !cin.good() );
           
            cout << "Wynik: " << a / b << "\n\n" << endl;
           
           
           
           
            cout << "Czy chcesz cos jeszcze policzyc ? {T/N) \n";
            cin.clear();
            cin.sync();
            cin >> chce;
            cout << "\n\n\n";
           
            break;
           
           
        case 5:
           
           
           
            cout << "Czy napewno ?  (T/N)\n";
            cin.clear();
            cin.sync();
            cin >> chce;
            cout << "\n\n\n";
           
            break;
           
            default:
           
            cout << "Muszisz wybrac jedna z opcji menu\n\n";
        }
       
    } while( chce != 110, chce != 116 );
   
    cout << " Dziekuje za skorzystanie z mojego kalkulatora\n\n\n";
    cout << " Wcisnij dowolny klawisz aby zakonczyc dzialanie programu :)";
   
    getch();
   
    return 0;
}



Dobrze zrobiłem ?



P.S jeśli post pod postem jest jakimś błędem to proszę mnie poinformować lub połączyć ten post z poprzednim

P-40260
SeaMonster131
» 2011-08-30 16:19:02
Hm nie przyglądałem sie, ale pierwsze co sie w oczy rzuca to to - tak masz zbudowany program:

WYBRANIE DZIALANIA
Jeżeli działanie to 1
{
wpisywanie liczby 1;
wpisywanie liczby 2;
wypisanie wyniku;
}
Jeżeli działanie to 2
{
wpisywanie liczby 1;
wpisywanie liczby 2;
wypisanie wyniku;
}
Jeżeli działanie to 3
{
wpisywanie liczby 1;
wpisywanie liczby 2;
wypisanie wyniku;
}

Czyli mógłbyś to skrócić do min czyli:

WYBRANIE DZIALANIA
wpisywanie liczby 1;
wpisywanie liczby 2;
Jeżeli działanie to 1
{
wypisz wynik;
}
Jeżeli działanie to 2
{
wypisz wynik;
}

100x mniej kodu :)

A po 2. tak:
while( chce != 110, chce != 116 );
nie łączy się warunków.


P.S jeśli post pod postem jest jakimś błędem to proszę mnie poinformować lub połączyć ten post z poprzednim
Zawsze edytuj post, no chyba że temat jest jakiś starszy i już ciężko byłoby go znaleźć, to wtedy możesz zrobić taki @refresh :)
P-40262
SPARTANIN
Temat założony przez niniejszego użytkownika
» 2011-08-30 17:46:41
Napisałem w ten sposób gdyż podczas pisania kod był dla mnie bardziej przejrzysty. Tak w ogóle to czy to, że mam więcej linijek kodu wpływa jakoś na szybkość działania czy coś ? Mógłbyś mi podpowiedzieć jak połączyć te warunki aby było dobrze ?
P-40276
Ivian
» 2011-08-30 17:51:11
Zależy czego używasz. Visual najprawdopodobniej to posegreguje. Aczkolwiek takie "duplikowanie" kodu powoduje, że rozrasta się on w pamięci.

P-40277
SPARTANIN
Temat założony przez niniejszego użytkownika
» 2011-08-30 20:28:40
Używałem Visual C++ 2005 Express ale po reinstalce systemu zainstalowałem Code Blocks na próbę i szczerzepowiedziawszy bardziej przypadł mi on do gustu i przy pomocy Code Blocks kompilowałem ten kalkulator. Dzisiaj nieliczne osoby mają komputer który ma 64mb ram i procesor 300MHz by taki program mógł w jakiś sposób zmulić kompa więc wydaje mi się, że to nie robi jakiejś znaczącej różnicy w jaki sposób jest napisany. Dobra, biorę się za następną lekcje :)
P-40280
SeaMonster131
» 2011-08-30 21:09:51
Na dzisiejszych komputerach to różnicy nie ma.. Ale po co utrudniać sobie życie? :) Coś co można zapisać np w 20 liniach, Ty byś zapisał w 100? :) A dodam, że estetyka kodu była by ta sama, a więc ? ;) Nie mówie że zawsze tak jest, ale w większości przypadków to tak ;p
P-40287
1 « 2 »
Poprzednia strona Strona 2 z 2