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

[C++] Kalkulator

Ostatnio zmodyfikowano 2015-12-09 23:56
Autor Wiadomość
Laggger97
Temat założony przez niniejszego użytkownika
[C++] Kalkulator
» 2015-12-09 23:09:55
Witam mam taki o to kalkulator mojej roboty i chciałbym żeby ktoś bardziej doświadczony zobaczył co można w nim ew. zmienić lub poprawić tzn. jak go można zoptymalizować.
C/C++
#include <iostream>
#include <cstdio>
#include<stdio.h>
#include <conio.h>
#include<cmath>
#include <cstdlib>
using namespace std;

int wczytajLiczbe()
{
    int a;
    cout << "\nPodaj a: ";
    cin >> a;
    return a;
}

int wczytajLiczbeb()
{
    int b;
    cout << "\nPodaj b: ";
    cin >> b;
    return b;
}

void opcje()
{
    cout << "1. Dodawanie" << endl;
    cout << "2. Odejmowanie" << endl;
    cout << "3. Mnozenie" << endl;
    cout << "4. Dzielenie" << endl;
    cout << "5. Potegowanie" << endl;
    cout << "6. Silnia" << endl;
    cout << "0. Wyjscie" << endl << endl;
}

void dodawanie()
{
    int a = wczytajLiczbe();
    int b = wczytajLiczbeb();
    cout << "\nSuma liczb " << a << " i " << b << " wynosi: " << a + b << endl << endl;
    system( "pause" );
}

void odejmowanie()
{
    int a = wczytajLiczbe();
    int b = wczytajLiczbeb();
    cout << "\nRoznica liczb " << a << " i " << b << " wynosi: " << a - b << endl << endl;
    system( "pause" );
}

void mnozenie()
{
    int a = wczytajLiczbe();
    int b = wczytajLiczbeb();
    cout << "\nIloczyn liczb " << a << " i " << b << " wynosi: " << a * b << endl << endl;
    system( "pause" );
}

void dzielenie()
{
    int a = wczytajLiczbe();
    int b = wczytajLiczbeb();
    if( a >= b )
    {
        cout << "\nIloraz liczb " << a << " i " << b << " wynosi: " << a / b << endl << endl;
    }
    else
    {
        cout << "\nLiczba " << a << " jest mniejsza od " << b << " i nie umiem tego policzyc" << endl << endl;
    }
    system( "pause" );
}

float potega()
{
    int a, b, wynik, n;
    cout << "\nPodaj podstawe: ";
    cin >> a;
    cout << "\nPodaj wykladnik: ";
    cin >> b;
    if( b == 0 )
    {
        wynik = 1;
    }
    else
    {
        wynik = a;
        for( n = 1; n < b; n++ )
        {
            wynik = wynik * a;
        }
    }
    cout << endl << a << " do potegi " << b << " = " << wynik << endl;
    cout << endl;
    system( "pause" );
}

int silnia()
{
    int liczba1, wynik, n;
    cout << "\nPodaj liczbe do policzenia jej silni: ";
    cin >> liczba1;
    wynik = 1;
    for( n = 1; n <= liczba1; n++ )
         wynik = wynik * n;
   
    cout << endl << liczba1 << "! = " << wynik << endl;
    cout << endl;
    system( "pause" );
}

int main()
{
    cout << "Kalkulator by Bartek Michalski v 1.5" << endl;
    cout << endl << "Obslugiwane dzialania:" << endl;
    opcje();
    cout << "Zycze milego korzystania" << endl << endl;
    int dzialanie;
    do
    {
        opcje();
        cin >> dzialanie;
        switch( dzialanie )
        {
        case 1:
            dodawanie();
            break;
        case 2:
            odejmowanie();
            break;
        case 3:
            mnozenie();
            break;
        case 4:
            dzielenie();
            break;
        case 5:
            potega();
            break;
        case 6:
            silnia();
            break;
            default:
            break;
           
        }
    }
    while( dzialanie != 0 );
   
    return 0;
}
P-141691
Gibas11
» 2015-12-09 23:21:30
1. Sporo zbędnych funkcji, jasne, są fajne ale bez przesady.
2. Unikaj system("pause"), strasznie wolne i ogranicza cię do Windy.
3. Spróbuj podnieść tym programem jakąś liczbę do potęgi ujemnej lub ułamkowej.
P-141693
Laggger97
Temat założony przez niniejszego użytkownika
» 2015-12-09 23:25:43
W szkole nauczycielka chciała takie rozbicie na funkcje więc tak zrobiłem, to które by były najbardziej zbędne?
P-141694
michal11
» 2015-12-09 23:29:25
Jak jest różnica między funkcjami
wczytajLiczbe()
 i
wczytajLiczbeb()
 ?
P-141695
Laggger97
Temat założony przez niniejszego użytkownika
» 2015-12-09 23:36:42
Dopiero teraz zauważyłem że 2 razy to samo jest, nie myślałem jak pisałem.
P-141697
mateczek
» 2015-12-09 23:48:50
zwykły głupi ale skompiluj i zobacz !!! pamiętaj o spacjach podając równanie !!! 3 + 14
C/C++
#include <iostream>
using namespace std;

int dodawanie( int a, int b ) {
    return a + b;
}
int mnozenie( int a, int b ) {
    return a * b;
}

int main()
{
    int a, b, wynik;
    char znak;
   
    cin >> a >> znak >> b;
   
    switch( znak ) {
    case '+':
        wynik = dodawanie( a, b );
        break;
    case '*':
        wynik = mnozenie( a, b );
       
    }
    cout << "= " << wynik << endl;
}

A tak działa
http://zapodaj.net/images​/28cc17fcb308b.png
P-141698
mateczek
» 2015-12-09 23:56:09
Dopiero teraz zauważyłem że 2 razy to samo jest, nie myślałem jak pisałem.
nie jest to samo :P pierwszy wyświetla napis "podajA" a drugi "podajB" :P
P-141699
« 1 »
  Strona 1 z 1