Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by asd ( 6 years ago )
#include <iostream>
#include <vector>

#include "stdafx.h"

using namespace std;

struct LottoNum
{
	unsigned int num[6];

	LottoNum()
	{
		memset(num, 0, sizeof(unsigned int) * 6);
	}
};


class LottoNumGenereator
{
public:
	virtual LottoNum GetNumber() = 0;
};

class AutoNumGenerator : public LottoNumGenereator
{
public:
	LottoNum GetNumber() override;
};

LottoNum AutoNumGenerator::GetNumber()
{
	int index = 0;
	LottoNum result;
	for (int i = 0; i < 6; ++i)
	{
		result.num[i] = rand() % 45 + 1;
	}
	return  result;
}

class ManualNumGenerator : public LottoNumGenereator
{
public :
	LottoNum GetNumber() override;
};

LottoNum ManualNumGenerator::GetNumber()
{
	int index = 0;
	int num = 0;
	LottoNum result;
	for (int i = 0; i < 6; ++i)
	{
		cout << "번호를 입력하세요 : ";
		cin >> num;
		while(num < 1 || num > 45)
		{
			cout << "번호를 다시 입력하세요 : ";
			cin >> num;
		}
		result.num[i] = num;
	}
	return  result;
}


class Lotto
{
	LottoNumGenereator * mLottoNumGenerator;

public:

	void SetLottoNumGenerator(LottoNumGenereator * lottoNumGenerator)
	{
		mLottoNumGenerator = lottoNumGenerator;
	}
	
	LottoNum GetNumber()
	{
		return mLottoNumGenerator->GetNumber();
	}
};


int main()
{
	Lotto lotto;
	AutoNumGenerator autoNumGenerator;
	ManualNumGenerator manualNumgenerator;
	lotto.SetLottoNumGenerator(&autoNumGenerator);
	lotto.GetNumber();
	lotto.SetLottoNumGenerator(&manualNumgenerator);
	lotto.GetNumber();
	
    return 0;
}

 

Revise this Paste

Your Name: Code Language: