• 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

C언어 동전전지기 ver1,ver2

너에게제공 너에게제공
533 0 0

#include <iostream>
#include <ctime>

#include<string>

#include <fstream>

using namespace std;


Coin::Coin() 
{
    srand((unsigned)time(NULL));
       
    face = rand()%2; // 동전 던지기 (0 혹은 1)
}

void Coin::flip() {face = rand()%2; } // 동전 던지기 (0 혹은 1)

void Coin::show_face()
{
    if (face==0)
           cout << "앞면 " << endl;    
    else            
           cout << "뒷면 " << endl;    
}

int main()
{
    Coin myCoin;

    myCoin.flip(); // 동전 던지기

    myCoin.show_face(); // 동전 앞면 혹은 뒷면 출력
}
*/


class Coin
{
    private:
       int face;
      static int same; // 같은 면 횟수 저장하는 정적 멤버변수
    public:
       Coin();   // 생성자
       void flip();
       void show_face();
       int getFace(); // 동전 앞면/ 혹은 뒷면 반환

       static  void setSame();  // 정적 멤버 함수 : 같은 면 횟수 증가

       static  int getSame();  // 정적 멤버 함수 : 같은 면 횟수 반환
};

int Coin::same=0; // 같은 면 정적멤버변수 0으로 초기화

Coin::Coin()   { srand((unsigned)time(NULL));     face = rand()%2;  }

void Coin::flip() { face = rand()%2; }

void Coin::show_face()
{
    if (face==0)
           cout << "앞면 " << endl;    
    else
           cout << "뒷면 " << endl;    
}

int Coin::getFace() { return face; }

void Coin::setSame() { same++; }

int Coin::getSame() {return same; }

// 두개의 동전 비교하여 같은 면이면 횟수 증가하는 함수 호출

void isSnakeFace(Coin *c1, Coin *c2)
{  
 int c_1,c_2;
 c_1= c1->getFace();
 c_2= c2->getFace();
 if(c_1==c_2)
  Coin::setSame();
         
}

int main() 
{
    Coin myCoin, yourCoin;

    for (int i = 0; i <10; i++)     {  // 2개의 동전 10번 던지기
        myCoin.flip();
        yourCoin.flip();

        isSnakeFace(&myCoin, &yourCoin);                  // 두개의 동전 비교

     } 
    cout << Coin::getSame()<< endl; // 같은 면 횟수 출력
}


 

신고공유스크랩

댓글 0

댓글 쓰기
권한이 없습니다. 로그인
에디터 모드

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?

공유

퍼머링크