¶
~cpp
#include <iostream>
using namespace std;
#include <string>
//기 래
class VendingMachine
{
private:
int _money;
int _temp_money;
int _select_money, _select_drink, _insert_amount;
struct drink
{
char * name;
int price, amount;
};
drink s_drink[5];
int _max_num;
public:
VendingMachine();
int showMenu();
void get_money();
void buy();
void takeBack_money();
void insertDrink();
};
int VendingMachine::showMenu()
{
int choice;
cout << "\n기 다\n";
cout << "1. 는디\n";
cout << "2.물 다\n";
cout << "3. 러 는다\n";
cout << "4.료를 다\n";
cout << "0.료다\n";
cout << "메뉴를 : ";
cin >> choice;
return choice;
}
//기 메뉴를 기다
VendingMachine::VendingMachine()
{
_money = _temp_money = 0;
_max_num = 5;
char * drink_name[] = {"coke", "juice", "tea" , "cofee", "milk"};
int price[] = {400, 600, 500, 450, 350};
for(int i = 0 ; i < _max_num ; i++)
{
s_drink[i].name = drink_name[i];
s_drink[i].price = price[i];
s_drink[i].amount = 10;
}
}
//님 기 는다
void VendingMachine::get_money()
{
cout << " . 10, 50, 100, 500, 1000만 가능 : ";
cin >> _temp_money;
if(_temp_money == 10 || _temp_money == 50 || _temp_money == 100 || _temp_money == 500 || _temp_money == 1000)
_money = _money + _temp_money;
else
cout << "10, 50, 100, 500, 1000만 가능다. 다 \n";
cout << _money << " 다\n";
}
//님 물 다
void VendingMachine::buy()
{
cout << "료\t\t가격\t량\n";
cout << "------------------------------------\n";
for(int i = 0 ; i < _max_num ; i++)
cout << i + 1 << "." << s_drink[i].name << "\t\t" << s_drink[i].price << "\t" << s_drink[i].amount << "\n";
cout << "\n " << _money << " \n";
cout << "는 료를 : ";
cin >> _select_drink;
if((_money - s_drink[_select_drink - 1].price) >= 0 && s_drink[_select_drink - 1].amount >= 1)
{
s_drink[_select_drink - 1].amount--;
_money = _money - s_drink[_select_drink - 1].price;
}
else
cout << " 부나 량 부\n";
cout << _money << " 남\n";
}
//님 내다
void VendingMachine::takeBack_money()
{
cout << "" << _money << " 돌려드립다\n";
_money = 0;
}
//료를 다
void VendingMachine::insertDrink()
{
for(int i = 0 ; i < _max_num ; i++)
cout << i + 1 << "." << s_drink[i].name << "\t" << s_drink[i].amount << "\n";
cout << "길 는 료를 : ";
cin >> _select_drink;
cout << "길 는 료 량 력 : ";
cin >> _insert_amount;
s_drink[_select_drink - 1].amount += _insert_amount;
cout << "료를 다\n";
for(i = 0 ; i < _max_num ; i++)
cout << i + 1 << "." << s_drink[i].name << "\t" << s_drink[i].amount << "\n";
}
int main()
{
VendingMachine VendingMachine;
int choice = VendingMachine.showMenu();
while(choice != 0)
{
if( choice >= 0 || choice <= 4)
{
switch(choice)
{
case 1:
VendingMachine.get_money();
break;
case 2:
VendingMachine.buy();
break;
case 3:
VendingMachine.takeBack_money();
break;
case 4:
VendingMachine.insertDrink();
break;
case 0:
cout << "기를 료다!!\n\n";
break;
}
}
else
cout << "못된 력다. 다 력 : ";
choice = VendingMachine.showMenu();
}
return 0;
}
드 경 가 단 가 기로 두가를 둔다면,
- 드를 기 가. - 부로 보는 public 메드 대 'how' 가 닌 'what' 되 겁다. 래는 보 '되는 모' 로 되므로, 떤 고리 느냐가 메드로 되는게 라 '무 것가' 가 되 겠.
- 드 복 나 가 - 드 복 많 록, 드 나가 못되면, 나머 복드들 다 고 다. Copy & Paste 를 는 것과 /메드로 것 가 되겠.
- 두가 기 드를 보면, 더 디 드를 다. --1002
- 가 대 고보다 -- 동










