본문 바로가기
00.Project

자판기프로그램(mini)

by chojju 2018. 4. 30.
반응형

//소스.cpp

#include <iostream>
using namespace std;
#include "DrinkmachineControl.h"

int MenuPrint();

int main()
{
 DrinkmachineControl *c = new DrinkmachineControl;
 int idx;
 while (true)
 {
  system("cls");
  c->Print();

  idx = MenuPrint();
  switch (idx)
  {
  case 1: c->InputMoney();  break;
  case 2: c->SelectProduct();  break;
  case 3: c->OutputMoney();  break;
  case 4: return 0;
  }
  system("pause");
 }
 delete c;
 return 0;
}

int MenuPrint()
{
 int idx;
 cout << "[1] 금액투입 [2] 제품선택 [3] 잔액요청 [4] 종료 " << endl;
 cin >> idx;
 return idx;
}


//Drinkmachine.h

#pragma once
class Drinkmachine
{
private:
 int sell_money[5];
 int money;

public:
 Drinkmachine();
 ~Drinkmachine();

public:
 int getmoney() const;

public:
 void print() const;
 void add_money(int money);
 void select(int idx);
 void balance();
};


//DrinkmachineControl.h

#pragma once

#include "Drinkmachine.h"

class DrinkmachineControl
{
 Drinkmachine *pmachine;

public:
 DrinkmachineControl();
 ~DrinkmachineControl();

public:
 void Print();
 void InputMoney();
 void SelectProduct();
 void OutputMoney();
};


//Drinkmachine.cpp

#include <iostream>
using namespace std;
#include "Drinkmachine.h"

Drinkmachine::Drinkmachine()
 : money(0)
{
 sell_money[0] = 500;
 sell_money[1] = 200;
 sell_money[2] = 300;
 sell_money[3] = 100;
 sell_money[4] = 300;
}


Drinkmachine::~Drinkmachine()
{
}

int Drinkmachine::getmoney() const
{
 return money;
}

void Drinkmachine::print() const
{
 cout << "*********************************************" << endl;
 for (int i = 0; i < 5; i++)
  printf("[%d] %d  ", i, sell_money[i]);
 cout << endl;
 cout << "*********************************************" << endl;
 cout << ">> 현재 입금 금액 : " << money << endl;
 cout << "*********************************************" << endl;
}

void Drinkmachine::add_money(int _money)
{
 if (_money <= 0)
  return;

 money = money + _money;
}

void Drinkmachine::select(int idx)
{
 if (idx >= 0 && idx <= 4)
 {
  if (money >= sell_money[idx])
   money = money - sell_money[idx];
  else
   cout << "잔액이 부족합니다." << endl;
 }
}

void Drinkmachine::balance()
{
 money = 0;
}


DrinkmachineControl.cpp

#include <iostream>
using namespace std;
#include "DrinkmachineControl.h"

DrinkmachineControl::DrinkmachineControl()
{
 pmachine = new Drinkmachine;
}


DrinkmachineControl::~DrinkmachineControl()
{
}

void DrinkmachineControl::Print()
{
 pmachine->print();
}

void DrinkmachineControl::OutputMoney()
{
 pmachine->balance();
}

void DrinkmachineControl::SelectProduct()
{
 int idx;
 cout << "제품을 선택하세요 : ";
 cin >> idx;
 pmachine->select(idx);
}

void DrinkmachineControl::InputMoney()
{
 int money;
 cout << "돈을 넣으세요 : ";
 cin >> money;
 pmachine->add_money(money);
}

 

반응형

'00.Project' 카테고리의 다른 글

C++학생관리프로그램(mini)  (0) 2018.05.10
야구게임(mini)  (0) 2018.04.28
간단한 관리프로그램(mini)  (0) 2018.04.28

댓글