U E D R , A S I H C RSS

Vending Machine/재니

02 Genie

로그램


  • 기(VendingMachine) 고,
  • 람(Man) 다..
  • 기는 를 구는데 고, 료(Drink)를 따로 ..
  • 그러면 것(CoinCounter) 것 같다..^^
를 나는 것 끝난 것 같깐 각각() ..^^

  • ..... 기는 먼 메뉴를 게 보 될꺼...
  • 그리고 메뉴를 보고 각 메뉴 명령 내릴 고...
  • 료가 뭐가 까?

    (목,가격,량)게 보 ...

    그리고 가격 는 것 구..... /

    될꺼!!^^

    두가 겠고, !^^

  • .. 그리고 볼까? 고..

    맞는(10,50,100,500,1000) 늘려 고,

    꺼내 ?^^

    !! 그리고 가격 따라 겠군!^^

가만.. 끝난 가? 그럼 볼까?*

~cpp 
#include <iostream>
#include <cstring>
using namespace std;

int selection, num;

class Man{
public:
	void select(){
		selection = 0;
		while (selection < 1 || selection > num){
			cout << ">> ";
			cin >> selection;
			if (selection < 1 || selection > num)
				cout << "다. n";
		}
	};
};

class CoinCounter{
public:
	int remainders, coin;
	void resetCoins(){
		remainders = 0;
	};
	void showRemainders(){
		cout << "REMAINDERS : " << remainders << endl;
	};
	void insertCoins(){
		cout << " .n 1. 10 n 2. 50 n 3. 100 n 4. 500 n 5. 1000 n>> ";
		cin >> coin;
		if (coin == 1)			coin = 10;
		else if (coin == 2)		coin = 50;
		else if (coin == 3)		coin = 100;
		else if (coin == 4)		coin = 500;
		else if (coin == 5)		coin = 1000;
		else coin = 0;
		remainders += coin;
		cout << coin <<" 다. n " << remainders << "다.n";
	};
	void pay(int used){
		cout << used << " 다.n";
		remainders -= used;
	};
};

class VendingMachine{
public:
	void showMenu(){
	num = 4;
	cout << "MAIN MENU n 1. INSERT COIN n 2. BUY n 3. RETURN THE REMAINDERS n 4. EXIT n";
	};
};

class Drink{
public:
	struct drinks{
		char name[10];
		int price;
		int quantity;
	};
	drinks detail[3];
	Drink(){
		strcpy(detail[0].name, "다");
		strcpy(detail[1].name, "라");
		strcpy(detail[2].name, "2% 부");
		detail[0].price = 500;
		detail[1].price = 400;
		detail[2].price = 600;
		for (int i = 0 ; i < 3 ; i++)
			detail[i].quantity = 10;
	};
	void showDetails(){
		num = 3;
		cout << " 명t 가격t 량n";
		for (int i = 0 ; i < 3; i++)
			cout << i+1 << ". " << detail[i].name << "t"
				<< detail[i].price << "t"
				<< detail[i].quantity << endl;
	};
	int buy(int remainders){
		if (remainders >= detail[selection - 1].price && detail[selection - 1].quantity != 0){
			cout << detail[selection - 1].name << " 다.n";
			detail[selection - 1].quantity--;
			return detail[selection - 1].price;
		}
		else if (detail[selection - 1].price > remainders)
			cout << "다.n";
		else if (detail[selection - 1].quantity == 0)
			cout << "매다. 다른  골라.n";
		return 0;
	};
};

int main(){
	Man man;
	CoinCounter coin_counter;
	VendingMachine vending_machine;
	Drink drink;
	int usedmoney;
	coin_counter.resetCoins();
	while(selection != 4)
	{
		vending_machine.showMenu();
		coin_counter.showRemainders();
		man.select();
		if (selection == 1)
			coin_counter.insertCoins();
		else if (selection == 2){
			drink.showDetails();
			man.select();
			usedmoney = drink.buy(coin_counter.remainders);
			coin_counter.pay(usedmoney);
		}
		else if (selection == 3){
			cout << "다.n";
			coin_counter.resetCoins();
		}
		else if (selection == 4)
			break;
		else cout << "다.n";
		system("pause");
		system("cls");
	};
	return 0;
}

만들고나..

  • 무 많 만들다는 다.

    대로 모르는 고.. 결론 공부 많다는 것...^^
  • 만 대는 말두는 게 것 같다...^^

    는 게 많드가 는 못 모르는 드는군..^^
  • 로그램 글로 보고 ..^^

    (그럼 공부 나 더 늘나는가...^^)
    가 많 닌듯(모 VendingMachine Requirement 변경 따라 가 10개 되기 ; 다기보다 료된 나 명료느냐가 복를 결리라 각). 단, 때 각 명료 는것 겠다. CoinCounter VendingMachine 듯. CRC 각각 따로 는 것 같만, 론 그 로를 든. 또는 당 기능 다른 들과 고 (Collaboration. 다른 드들 다던 ). 고 난 다 나리를 만든뒤 나갔다면 본다. UnitTest는게 . UnitTest & ScheduledWalk/ 반부UnitTest .--1002
----
see also FifteenSecondsRule
----
CppStudy_2002_2 VendingMachine

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:21
Processing time 0.0178 sec