Проблема: Мне нужно вычислить программу изменения для торгового автомата. Я сделал массив для чисел изменения (10,50,100,500 = 4 изменения). При отладке, я понял, что количество изменений я инициализированы не работает должным образомC++ с изменениями
Код:
class BeverageVendingMachine : VendingMachine {
public:
static int change[4];
virtual void menu(int remain[])
{
cout<<"[1] Coke ("<<remain[0]<<" left)"<<endl;
cout<<"[2] Milk ("<<remain[1]<<" left)"<<endl;
cout<<"Select menu: ";
}
virtual void CalculateChange(int cost, int money)
{
int Change = money-cost;
if (Change>0)
{
if ((money-500)>=0){
money-=500;
change[0]+=1;
}
else{
change[1]+=(money/1000);
money -=(money/100)*100;
}
if ((money-50)>=0){
money-=50;
change[2]+=1;
}
else{
change[3]+=(money/10);
money -=(money/10)*10;
}
}
cout<<"your Change is "<<Change<<endl;
if ((Change-500)>=0){
Change-=500;
change[0]-=1;
}
else{
change[1]-=(Change/1000);
Change -=(Change/100)*100;
}
if ((Change-50)>=0){
Change-=50;
change[2]-=1;
}
else{
change[3]-=(Change/10);
Change -=(Change/10)*10;
}
}
};
int BeverageVendingMachine::change[4] = {5,5,5,5};
Не в тему, но почему функция CalculateChange в определении для BeverageVendingMachine, а не в общем VendingMachine? –
Потому что я должен сделать несколько видов торговых автоматов с независимыми изменениями. мне тяжело сделать лучший код, чем это ... T.T – WoW