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

Bankomat w C++ - Wydawania kwoty z określonej liczby banknotów?

Ostatnio zmodyfikowano 2018-02-20 20:19
Autor Wiadomość
darko202
» 2018-02-20 13:43:35
1.
opanuj użycie struktury
http://cpp0x.pl/kursy/Kurs-C++​/Struktury-danych/303


2.
oraz użycie tablic w funkcjach
http://cpp0x.pl/kursy/Kurs-C++​/Poziom-2​/Przekazywanie-tablic-jednowym​iarowych-do-funkcji​/324

3.
przekazując zmienna do funkcji działamy na kopii zmiennej, tzn. nie zmieniamy orginału
dlatego przekazując do funkcji zmienną przez & zmieniamy orginał 

tablice przekazujemy do funkcji z definicji przez referencję

4.
jak mógłby wyglądać kod z użyciem wspomnianych funkcji
C/C++
struct Banknot {
    string nazwa;
    int wartosc;
    int ilosc;
};

int Suma( Banknot bankomat[], int n )
{
    int suma = 0;
    for( int i = 0; i < n; i++ )
    {
        suma += bankomat[ i ].ilosc * bankomat[ i ].wartosc;
    }
    return suma;
}

void wyplata( int & kwota, Banknot bankomat[], int n )
{
   
    int x = 0;
    //ile200 = kwota/200
    int ile = kwota / bankomat[ n ].wartosc;
   
    //if (  banknotyDostepne["200"] <ile200)
    if( bankomat[ n ].ilosc < ile )
   
    //{  ile200 = banknotyDostepne["200"] }
    { ile = bankomat[ n ].ilosc; }
   
    x = ile * bankomat[ n ].wartosc;
    // wypłacamy ile200 potrzeba
    cout << kwota << " - " << x << " = ";
    kwota -= ile * bankomat[ n ].wartosc;
    cout << kwota << "\n";
    // zmniejszamy ilość 200 do w bankomacie o ile200
    bankomat[ n ].ilosc -= ile;
   
}

int main()
{
    Banknot bankomat[ 5 ] = {
        { "200", 200, 1 },
        { "100", 100, 2 },
        { " 50", 50, 0 },
        { " 20", 20, 5 },
        { " 10", 10, 7 }
    };
   
    cout << "w bankomacie jest : " << Suma( bankomat, 5 ) << "\n";
   
    int kwota = 340;
    cout << "wypłacamy : " << kwota << "\n";
   
    for( int i = 0; i < 5; i++ )
    {
        wyplata( kwota, bankomat, i );
       
    }
   
    cout << "w bankomacie jest : " << Suma( bankomat, 5 ) << "\n";
}
P-169540
PhilippO
Temat założony przez niniejszego użytkownika
» 2018-02-20 20:19:18
Dzięki za pomoc! Zapisałem sobie kursy, ale na ten moment jestem poza domem i nie mam jak ich przestudiować, a co dopiero spróbować napisać :). Jak tylko wrócę to podzielę się kodem :)
P-169550
1 « 2 »
Poprzednia strona Strona 2 z 2