[MFC] Windows 계산기 흉내내 봤어요~~

비주얼C++/자작프로그램 2013. 6. 23. 21:50


 

 

소스료 :

WinCalc1.exe

1000원

 



설정

트랙백

댓글

MFC로 만든 맨화투게임!!

비주얼C++/자작프로그램 2012. 12. 21. 21:49


소스구입

은행명 : 국민은행

계좌번호 : 55950101165793

예금주 : 윤태민

소스로 : 5,000원

 

 

 

 

 

 

dibigi2.exe



설정

트랙백

댓글

MFC로 만든 사다리 게임!!!

비주얼C++/자작프로그램 2012. 12. 10. 17:17


5명까지 할수 있습니다. 소스 필요하신 분은 

 

국민은행 55950101165793 윤태민 

소스료 : 2000원 

 

보내주시면 보내드리겠습니다.

 

 

 

 

 

 

sadari.exe



설정

트랙백

댓글

MFC로 만든 로또 번호 만드는 프로그램

비주얼C++/자작프로그램 2012. 12. 6. 22:31


약간 버그가 있는데 그래도 재미로 하기엔 괜찮을거 같습니다.  

소스를 원하시는 분은

 

국민은행 55950101165793 윤태민 앞으로 1000원 보내주시면 소스 보내드립니다^^

 

 

 

 

lotto(release).zip



설정

트랙백

댓글

MFC로 만든 간단한 OX퀴즈 프로그램!!

비주얼C++/자작프로그램 2012. 12. 5. 17:49


  소스가 필요하신분은 

 

국민은행

계좌번호 : 55950101165793

예금주 : 윤태민

 

으로 1500원 보내주세요.

 

 

 

 

 

oxquiz(release).zip



설정

트랙백

댓글

버튼에 비트맵 이미지 넣기

비주얼C++/함께공부해요 2012. 12. 5. 17:35


비트맵 이미지 넣기

  먼저 리소스에 BitMap을 등록시켜야 합니다.

 

  리소스탭에서

 

마우스 오른쪽 Import에서 bitmap 파일을 선택해서 등록시킵니다.

그런다음 ID를 원하는걸로 바꾸면 됩니다. 예를들어 IDB_BITMAP1으로 되어 있는것을 IDB_HEALTH이런식으로요.

 

그다음에 아래 코드를 OnInitDialog()함수에 넣어줍니다.

아 그전에 버튼컨트롤 만든거의 속성에 Bitmap부분을 체크해주세요~

 

 HBITMAP msp; // 비트맵 핸들러 선언
 msp = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_HEALTH));

// 핸들러 초기화 , IDB_BITMAP1 -> 비트맵 아이디

 ((CButton*)GetDlgItem(IDC_BUTTON1))->SetBitmap(msp);

// 버튼에 이미지 넣기, IDC_BUTTON1 -> 버튼 아이디


  이렇게 해주면 완성입니다~~ 

  버튼에 여러개일경우는 HBITMAP msp; 부분 아래만 계속 ID를 바꿔가며 하시면 되곘죠~~ 



설정

트랙백

댓글

대화상자 배경색깔 바꾸기

비주얼C++/함께공부해요 2012. 12. 5. 16:41


http://sehwa4444.egloos.com/2738890 

 

이 블로그에 잘되어 있네요...

 

pDC->FillSolidRect(&rt, RGB(255, 255, 255));

 

이부분에 RGB값만 바꾸면 원하는 색으로 바꿀수



설정

트랙백

댓글

삽입정렬

비주얼C++/예제모음 2012. 11. 24. 21:19


삽입정렬

 

  예를들어

 

  7 3 5 2 1 8 9 4 6 0

 

  이렇게 있을때

  먼저 두번째 값 3을 정해서 3앞의 숫자들과 비교해서 위치를 옮깁니다.

  여기서는 7과 비교해서 3이 작으므로 바꿉니다. 그러면,

 

  3 7 5 2 1 ...

 

  이렇게 되겠지요?

 

  그다음에 앞의 두번째를 한칸 더 증가시킵니다. 즉 세번째 수 5를 정해서 그 앞의 수 즉, 두번째 첫번째 수와 비교해서 적당한 자리로 옮깁니다. 여기서 적당한

자리란 5와 7을 먼저 비교해서 7이 더 크므로 바꾸고 (3 5 7 ..) 다시 3과 비교해서 3보다 크므로 그대로 둡니다. 이 작업을 계속 해 주면 됩니다. (네번째, 다섯번째

수를 정해서 앞의 숫자와 거꾸로 계속 비교해 가는 것입니다.

 

  설명하기가 참 어렵네요...제가 그래픽 솜씨라도 있으면 그래픽으로 설명해 드릴수도 있을텐데...

 

  소스입니다.

 

      for (int i=1;i<9;i++) // i는 처음부터 끝까지 갑니다.
 for (int j=i-1;j>0;j--)  // j는 i보다 하나 적은 곳부터 처음까지 검색합니다.
  if (num[j]>num[i]) {  // 두수를 비교해서 바꿔줍니다.
   int temp;
            temp = num[j];
   num[i] = num[j];
   num[j] = temp;
  }
 cout << "삽입정렬후 : " << num[0] << " " << num[1] << " " << num[2] << " " << num[3] << " " << num[4] << " " << num[5] << " " << num[6] << " " << num[7] << " " << num[8] << " " << num[9] << "\n";

 

  이해안되시는 부분은 댓글이나 쪽지주세요~

'비주얼C++ > 예제모음' 카테고리의 다른 글

[C++] 완전수 찾기소스  (0) 2014.07.24
선택정렬  (0) 2012.11.24
버블정렬  (0) 2012.11.24


설정

트랙백

댓글

선택정렬

비주얼C++/예제모음 2012. 11. 24. 20:48


선택정렬

 

  선택정렬은 두개의 포인터를 두고 한개는 현재위치를 한개는 나머지를 검색하면서 가장 작은 숫자를 찾는 것입니다. 예를 들어

 

  7 3 5 2 1 8 9 4 6 0

 

  이렇게 있을때

  처음 포인터를 7에 두고 뒤의 포인터를 3부터 0까지 검색하는 거지요.

  검색해서 가장 작은 숫자(여기서는 0)를 찾아서 7과 바꿔주는 겁니다. 그러면

 

   0 3 5 2 1 8 9 4 6 7

 

  이렇게 되겠지요?

  버블정렬에서는 가장 큰수가 맨뒤로 가는 것이 처음단계였다면 선택정렬에서는 가장 작은수가 앞으로 오는 것이 가장 첫단계가 되겠습니다.

 

  그다음에 현재 포인터를 두번째로 옮기고 (여기서는 3) 세번째부터 끝까지 검색하는 거지요. 그러면 5부터 7까지 검색이 되겠지요? 그 중에 1이 가장

작으니깐 1과 3을 바꿔줍니다.

 

  0 1 5 2 3 8 9 4 6 7

 

  이렇게 바뀌겠지요?

 

  이런 작업을 마지막까지 해주면 됩니다. 이해되시죠?

  그럼 소스를 볼까요?

 

{
 int min; // 최소수의 자릿수
 for (int j=0;j<9;j++) {
  min = j; // j 즉 위치포인터를 항상 가장 작다고 정해줍니다.
  for (int i=j+1;i<9;i++)
   if (num[min]>num[i]) min=i; // 위치포인터값과 검색포인터값을 비교해서 위치포인터값이 크면
   
        // 바꿔줍니다.
  int temp;
  temp = num[min];
  num[j] = num[min];
  num[min] = temp;
 };
 cout << "선택정렬후 : " << num[0] << " " << num[1] << " " << num[2] << " " << num[3] << " " << num[4] << " " << num[5] << " " << num[6] << " " << num[7] << " " << num[8] << " " << num[9] << "\n";
}

  이해가시리라 믿습니다. 이해안되시면 댓글이나 쪽지주세요~

'비주얼C++ > 예제모음' 카테고리의 다른 글

[C++] 완전수 찾기소스  (0) 2014.07.24
삽입정렬  (0) 2012.11.24
버블정렬  (0) 2012.11.24


설정

트랙백

댓글

버블정렬

비주얼C++/예제모음 2012. 11. 24. 17:51


버블정렬

 

  예를들어 7 3 5 2 1 8 9 4 6 0 이라는 숫자가 있다고 합시다. 이것을 버블정렬로 순서대로 정렬하는 법을 말씀드리겠습니다.
  먼저 첫번째수 7과 다음수 3을 비교합니다. 두 수중에 작은수(오름차순정렬일때)가 3이니깐 앞에 작은수가 와야하므로 두수를 바꿉니다. 그럼,
 
  3 7 5 2 1 ...

  이렇게 되겠지요.

 

  그다음에 첫번째수를 비교했으므로 한칸 뒤로 가서 두번째수를 비교합니다. 7과 5지요. 5가 작으므로 또 바꿉니다. 그럼,

 

  3 5 7 2 1 ...

  이렇게 되지요.

 

  그다음에는 세번째수 7과 다음 2를 비교합니다. 그럼 2가 작으니깐 또 바꿉니다. 그럼,

  3 5 2 7 1 ...

 

  여기까지 이해되시죠? 맨처음부터 두번째 , 두번째수와 세번째수, 세번째수와 네번째수 ... 이렇게 끝까지 비교하면 맨 뒤에 뭐가 남을까요?

  제일큰 숫자가 맨뒤에 남게 됩니다. 여기서는 9가 되겠지요?

 

  그래서 처음실행 결과는

  3 5 2 1 7 8 4 6 0 9

  이렇게 9가 맨뒤로 가게 됩니다.

 

    그다음에 다시 처음부터 비교합니다. 아까와 같은 방법으로요. 근데 이번에는 맨뒤에 제일큰수 9가 가 있으므로 그 앞까지만 비교해도 되겠지요? 그래서 0까지만 비교하게 됩니다. 그럼 다음큰수인 8이 9앞으로 오게 됩니다.

 

  3 2 1 5 7 4 6 0 8 9

  이런식으로요...


  이렇게 자꾸 하다보면 큰숫자가 계속 뒤로 가게되지요. 그러면 끝에는 정렬이 되게 되는 것입니다.

  이게 버블정렬 방법이에요. 별로 어렵지 않지요?

  그럼 소스를 보시죠.

 

#include <iostream.h>

void main()
{
 int num[10];

 cout << "숫자 10개를 띄워서 입력하세요.\n";
 cin >> num[0] >> num[1] >> num[2] >> num[3] >> num[4] >> num[5] >> num[6] >> num[7] >> num[8] >> num[9];
   
 for (int j=9;j>0;j--) {
  for (int i=0;i<j;i++)
  if (num[i]>num[i+1]) {
   int temp;
   temp = num[i];
   num[i]=num[i+1];
   num[i+1]=temp;
  };
 };
 cout << "버블정렬후 : " << num[0] << " " << num[1] << " " << num[2] << " " << num[3] << " " << num[4] << " " << num[5] << " " << num[6] << " " << num[7] << " " << num[8] << " " << num[9] << "\n";
}

 

먼제 int num[10]에서 10개의 숫자를 담는 배열을 선언하구요.
cin에서 10개의 숫자를 띄워쓰기로 입력받습니다.

그다음부분이 정렬메인인데요.

 

 for (int j=9;j>0;j--) {  // 최대 9번에서 0까지 비교
  for (int i=0;i<j;i++)  // 처음부터 j까지 비교
  if (num[i]>num[i+1]) {  // 만약에 뒤의수가 앞의수보다 작으면은
   int temp;            // 바꿔줍니다.
   temp = num[i];
   num[i]=num[i+1];
   num[i+1]=temp;
  };
 };

 

  주석을 보시면 이해가시죠? 바꾸어 주는 부분이 좀 해깔릴수 있는데 여기서 그냥 num[i] = num[i+1] 이렇게 해주면 되지 않느냐고 하실지 모르겠지만
이렇게 해주면 두개가 같아집니다. 예를들어 7과 3이 있는데 num[i]=num[i+1]해주면 num[i]도 3 num[i+1]도 3이 되지요. 7이 없어져버립니다. 그래서
임시변수 temp를 줘서 임시변수에 앞의 수를 저장해놓고 두수를 같게 만든다음 뒤수에 임시변수값을 넣어주는 것입니다.

 

  이해되시지요? 궁금하신 사항은 댓글로 부탁드립니다.

'비주얼C++ > 예제모음' 카테고리의 다른 글

[C++] 완전수 찾기소스  (0) 2014.07.24
삽입정렬  (0) 2012.11.24
선택정렬  (0) 2012.11.24


설정

트랙백

댓글