Program kasa działa - ale pod koniec 1 grosz wyskakuje w jakiś dziwnych znaczkach jak sobie z tym poradzić ???
//bilbioteki
#include <iostream>
#include <fstream>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iomanip>
#include <cstdio>
////bilbioteki
using namespace std;
main()
//deklaracja zmiennych
{
int kwota_poczatkowa=200, i=0;
float reszta, cena_do_zaplaty;
float n[13];
signed int in[13];
//deklaracja zmiennych
ofstream plik;//deklaracja funkcji pliku do zapisu
//banknoty/monety
n[0]=100;
n[1]=50;
n[2]=20;
n[3]=10;
n[4]=5;
n[5]=2;
n[6]=1;
n[7]=0.5;
n[8]=0.2;
n[9]=0.1;
n[10]=0.05;
n[11]=0.02;
n[12]=0.01;
//ilosc banknotow/monet
in[0]=3;
in[1]=5;
in[2]=20;
in[3]=1;
in[4]=1;
in[5]=1;
in[6]=1;
in[7]=1;
in[8]=1;
in[9]=1;
in[10]=1;
in[11]=1;
in[12]=1;
plik.open("plik.txt");//otwarcie pliku do zapisu
cout<<"PROGRAM KASA"<<endl;
//1 wpisanie kwoty początkowej
cout<<"podaj wartosc z ktorej automat ma wydac: ";
cin>>kwota_poczatkowa;
//1 wpisanie kwoty początkowej
//2 podanie ceny do zapłaty
cout<<"podaj cene do zaplaty: ";
cin>>cena_do_zaplaty;
//2 podanie ceny do zapłaty
//3 wypis do pliku plik.txt
plik<<"zaplacono: "<<cena_do_zaplaty<<endl;
plik<<"wartosc z ktorej wydac: "<<kwota_poczatkowa<<endl;
//3 wypis do pliku plik.txt
//4 zaokrąglanie aby pozbyć się błędu z 1 groszem
reszta=kwota_poczatkowa-cena_do_zaplaty;
//4 zaokrąglanie aby pozbyć się błędu z 1 groszem
//5 gdy reszta jest większa od 0 i i mniejsze niż 13
while((reszta>0) && (i<13))
//5 gdy reszta jest większa od 0 i i mniejsze niż 13
//6
{
if((reszta>=n[i]) && (in[i]>0)) // jesli reszta jest wieksze równe n[i] i in[i] większe od 0 to
{
//7 zapis do pliku plik.txt i wypisanie na ekranie
plik<<"wydano: "<<n[i]<<endl;
cout<<"wydano: "<<n[i]<<" zl"<<endl;
//7 zapis do pliku plik.txt i wypisanie na ekranie
//8 zaokrąglanie aby pozbyć się błędu z 1 groszem
// reszta = floorf((reszta-n[i])*100 + 0.5) / 100;
reszta=reszta-n[i];
//* 100 + 0.5) / 100;
//8 zaokrąglanie aby pozbyć się błędu z 1 groszem
cout<<"ilosc banknotow poczatkowych : "<<in[i]<<endl;
if (in[i]>0)
{
in[i]=in[i]-1;
}
cout<<"zostalo do wydania"<< setprecision(4)<<reszta<<" zl"<<endl;
cout<<"ilosc pozostalych banknotow :"<<in[i]<<endl;
cout<<"indeks banknotu : "<<i<<endl;
cout<<""<<endl;
getch();
}
else //w przeciwnym razie
{
i++;
}
}
if (reszta>0)
{
cout<<"nie udalo sie wydac - zostalo "<<reszta<<endl;
}
else//w przeciwnym razie
{
cout<<"wydano cala naleznosc - zostalo "<<reszta<<endl;//koniec
cout<<"dziengi"<<endl;
}
plik.close();
getch();
}