#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
const int MAX_MONEY_NUM = 100000;

class ioHandler //입출력 담당 클래스
{  
public:
 ioHandler() {}
 ~ioHandler() {}
 void all();
};
void ioHandler::all()
{
 cout<<"ㅣㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅣ"<<endl;
 cout<<"ㅣ                 자판기                     ㅣ"<<endl;
 cout<<"ㅣㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅣ"<<endl;
 cout<<"ㅣ         실행할 행동을 선택하세요           ㅣ"<<endl;
 cout<<"ㅣ 1.동전투입     2.상품선택    3.잔돈반환    ㅣ"<<endl;
 cout<<"ㅣㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅣ"<<endl;

 
  
}

class CanStorage //상품 관리 클래스
{
private:
 char id; //iD
 string name; //name(이름)
 int price; //(price)단가
 int stock_quantity; //(stock_quantity)재고수량
public:
 char getId();
 void setId(char id_NUM);
 string getName();
 void setName(string Can_name);
 int getPrice();
 void setPrice(int Can_price);
 int getStock_Quantity();
 void setStock_Quantity(int stock_quantity_NUM);
};
char CanStorage::getId()
{
 return id;
}
void CanStorage::setId(char id_NUM)
{
 id = id_NUM;
}
string CanStorage::getName()
{
 return name;
}
void CanStorage::setName(string Can_name)
{
 name = Can_name;
}
int CanStorage::getPrice()
{
 return price;
}
void CanStorage::setPrice(int Can_price)
{
 price = Can_price;
}
int CanStorage::getStock_Quantity()
{
 return stock_quantity;
}
void CanStorage::setStock_Quantity(int stock_quantity_NUM)
{
 stock_quantity = stock_quantity_NUM;;
}

class MoneyKeeper
{
private:
 int m_money[MAX_MONEY_NUM];    //돈

public :
 MoneyKeeper()     // 생성자
 {
  m_money[MAX_MONEY_NUM] = 0;   // 돈의 값=0 초기화
 }
 ~MoneyKeeper(){};    // 소멸자
 void operate();    // 동전 넣기
};

void MoneyKeeper::operate()
{
 
 int c;
 cout<<"1번(100원 투입) 2번(500원 투입) 3번(1000원 투입)"<<endl;
 cout<<"4번(상위메뉴로 돌아가기)"<<endl;
 cout<<"잔액 : "<<m_money[MAX_MONEY_NUM]<<"원"<<endl;
 while(1)
 {
  
  cout<<"현금을 투입 하세요 : ";
  cin >> c;

  if(c<=1)
  {
   m_money[MAX_MONEY_NUM] += 100;
   cout << "100원 투입되었습니다. 잔액 :" << m_money[MAX_MONEY_NUM]<<"원"<< endl << endl;
  }
  else if(c<=2)
  {
   m_money[MAX_MONEY_NUM] += 500;
   cout << "500원 투입되었습니다. " << m_money[MAX_MONEY_NUM] << endl << endl;
  }
  else if(c<=3)
  {
   m_money[MAX_MONEY_NUM] += 1000;
   cout << "1000원 투입되었습니다." << m_money[MAX_MONEY_NUM] << endl << endl;
  }
  else if(c<=4)
  {
   break;
  }
 }
}

void main()
{
 while(1)
 {
  ioHandler ioH;
  ioH.all();

  int selection = 0;
  cout<<"실행할 메뉴를 선택합니다(숫자를 입력해주세요) : ";
  cin>>selection;
  cout<<endl;
  cout<<endl;
  
  if(selection<=1)
  {
   MoneyKeeper Money;
   Money.operate();
  }
  else if(selection<=2)
  {

  }
  else if(selection<=3)
  {
 
  }
  else
  {
   cout<<"잘못 선택하셨습니다."<<endl;
  }
 }
 getch();
}
 


아직 미완성 작이긴 한데.,, 자판기를 만드는 거에요...
일단 전체 메뉴 iohandler::all를 먼저 실행하고 selction이 1이면
돈관리 클래스 머니키퍼로 접근하는데 까지 햇는데 여기서 무한루프 돌려서
동전을 받아서 잔액을 구하는거 까지는 했는데 이 무한루프에서 탈출하려고 break를 걸어서
다시 all로 접근을 하면 이전에 입력했던 잔액이 다시 0으로 초기화되는데요
어떤소스를 추가해야지 잔액을 그대로 유지할수 있을까요??