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

[C++] Argumenty funkcji main

Ostatnio zmodyfikowano 2013-04-24 09:46
Autor Wiadomość
Małolatt
Temat założony przez niniejszego użytkownika
[C++] Argumenty funkcji main
» 2013-04-23 14:41:36
Witam wszystkich mam problem z jedną rzeczą. Mianowicie dostałem do zrobienia program następującej treści :
Napisz program realizujący prosty
kalkulator wykonujący podstawowe operacje na dwóch liczbach. Argumenty i operację
ma pobierać z linii zlecenia. Wykorzystać prostą klasę z prywatnymi polami (argument 1,
argument 2, wynik, operacja) oraz publicznymi metodami (ustaw argument 1, ustaw
argument 2, wykonaj dodawanie, wykonaj odejmowanie itd., podaj wynik). W programie
zawrzeć kompilację warunkową.

Wszystko działa mi poprawnie tylko nie potrafię zrobić tego podpunktu:

Argumenty i operację
ma pobierać z linii zlecenia.

domyślam się ze zamiast zwykłego int main () musi zostać wstawione  int main(int argc, char *argv[]) czy ktoś mógłby mi pomóc :) ?

oto kod programu:

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

using namespace std;

class kalkulator
{
private:
    int arg1;
    int arg2;
    int wynik;
    char operacja;
   
public:
    void ustaw_arg1( int a )
    {
        arg1 = a;
    }
    void ustaw_arg2( int a );
   
    int pobierz_wynik()
    {
        return wynik;
    }
    void dodaj()
    {
        operacja = '+';
        wynik = arg1 + arg2;
    }
    void odejmij()
    {
        operacja = '-';
        wynik = arg1 - arg2;
    }
    void pomnoz()
    {
        operacja = '*';
        wynik = arg1 * arg2;
    }
    void podziel()
    {
        operacja = '/';
        wynik = arg1 / arg2;
    }
};

void kalkulator::ustaw_arg2( int a ) // inline
{
    arg2 = a;
}

#define DEBUG

#ifdef DEBUG

int main( void )
{
   
    kalkulator k;
   
    k.ustaw_arg1( 15 );
    k.ustaw_arg2( 3 );
   
    k.dodaj();
    cout << k.pobierz_wynik() << endl;
   
    k.odejmij();
    cout << k.pobierz_wynik() << endl;
   
    k.pomnoz();
    cout << k.pobierz_wynik() << endl;
   
    k.podziel();
    cout << k.pobierz_wynik() << endl;
   
    system( "pause" );
    return 0;
}

#else

int main()
{
    int a = 1, b = 1;
    char oper;
    kalkulator k;
   
    while( a != 0 || b != 0 )
    {
        cin >> a >> oper >> b;
       
        k.ustaw_arg1( a );
        k.ustaw_arg2( b );
       
        if( oper == '+' ) k.dodaj();
        else if( oper == '-' ) k.odejmij();
        else if( oper == '*' ) k.pomnoz();
        else k.podziel();
       
        cout << " = " << k.pobierz_wynik() << endl;
       
    }
   
    return 0;
}
#endif
P-81050
pekfos
» 2013-04-23 14:51:27
C/C++
int main( int argc, char ** argv )
{
    std::cout << "Argumenty programu:" << std::endl;
    for( int a = 0; a < argc; ++a )
    {
        std::cout << argv[ a ] << std::endl;
    }
}
P-81053
Małolatt
Temat założony przez niniejszego użytkownika
» 2013-04-23 23:45:54
Nie bardzo to rozumiem czy byłbyś na tyle miły i mi to wyjaśnił krok po kroku bo naprawdę  nie rozumiem tego ;/
P-81103
MrPoxipol
» 2013-04-24 09:46:49
argc to liczba podanych argumentów, a tablica argv to argumenty.
P-81114
« 1 »
  Strona 1 z 1