디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

프로그래밍 계산기ㅠㅠ

살려줘(210.125) 2011.06.14 13:57:08
조회 104 추천 0 댓글 4






// 기말고사11 실기문제
// 본 소스에는 버그들이 있다. 이를 수정하여 계산기가 되도록 완성하라.
// 버튼 중에 C는 클리어(0 되게), +/-는 값의 부호를 바꿈
#include <windows.h>
#include <stdio.h>
#include "resource.h"
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg,
       WPARAM wParam, LPARAM lParam);
BOOL CALLBACK DlgProc(HWND hDlg, UINT iMsg,
       WPARAM wParam, LPARAM lParam);
HINSTANCE hInst;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
       LPSTR lpszCmdLine, int nCmdShow)
{
 HWND   hwnd;
 MSG   msg;
 WNDCLASS WndClass;     
 hInst = hInstance;
 WndClass.style = CS_HREDRAW | CS_VREDRAW;
 WndClass.lpfnWndProc = WndProc;  
 WndClass.cbClsExtra = 0;  
 WndClass.cbWndExtra = 0;  
 WndClass.hInstance = hInstance;  
 WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
 WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); 
 WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 
 WndClass.lpszMenuName = MAKEINTRESOURCE(ID_MENU1);  
 WndClass.lpszClassName = "Window Class Name"; 
 RegisterClass(&WndClass); 
 hwnd = CreateWindow("Window Class Name",
  "기말11실기(계산기) - 이름", // 자기 이름 넣을 것
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT, 
  CW_USEDEFAULT, 
  CW_USEDEFAULT, 
  CW_USEDEFAULT, 
  NULL, 
  NULL, 
  hInstance, 
  NULL 
 );
 ShowWindow(hwnd, nCmdShow);
 UpdateWindow(hwnd);
 while (GetMessage(&msg, NULL, 0, 0))
 {
  TranslateMessage(&msg); 
  DispatchMessage(&msg); 
 }
 return (int)msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg,
       WPARAM wParam, LPARAM lParam)    
{
 switch (iMsg)
 {
 case WM_CREATE:
  break;
 case WM_COMMAND:
  switch(LOWORD(wParam))
  {
  case ID_40002 :
   DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, DlgProc);
   break;
  }
  break;
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 }
 return DefWindowProc(hwnd, iMsg, wParam, lParam);
}

void operation(int _nOp, float* _fResult, float _fNumber)
{
 switch(_nOp)
 {
 case 0 :
  {
   *_fResult = _fNumber;
  }
  break;
 case 1 :
  {
   *_fResult += _fNumber;
  }
  break;

 case 2 :
  {
   *_fResult -= _fNumber;
  }
  break;

 case 3 :
  {
   *_fResult *= _fNumber;
  }
  break;

 case 4 :
  {
   *_fResult /= _fNumber;
  }
  break;
 }
}

BOOL CALLBACK DlgProc(HWND hDlg, UINT iMsg,
       WPARAM wParam, LPARAM lParam)
{
 int count;
 float result;
 char num[100];
 int op;
 float number;
 char answer[100]= {NULL};

 switch(iMsg)
 {
 case WM_INITDIALOG:
  count = 0;
  result = 0.0f;
  op = 0;
  return 1;
 case WM_COMMAND:
  switch (LOWORD(wParam))
  {
  case ID_BUTTON_PULS:
   number = atof(num);
   operation(op, &result, &number);
   num[0] = \'\\0\';
   count = 0;
   op = 1;
   sprintf(answer, "%f", result);
   SetDlgItemText(hDlg, IDC_DISPLAY, answer);
   break;
  case ID_BUTTON_MINUSE:
   number = atof(num);
   operation(op, &result, &number);
   num[0] = \'\\0\';
   count = 0;
   op = 2;
   sprintf(answer, "%f", result);
   SetDlgItemText(hDlg, IDC_DISPLAY, answer);
   break;

  case ID_BUTTON_MUL:
   number = atof(num);
   number = atof(num);
   operation(op, &result, &number);
   num[0] = \'\\0\';
   count = 0;
   op = 3;
   sprintf(answer, "%f", result);
   SetDlgItemText(hDlg, IDC_DISPLAY, answer);
   break;
  case ID_BUTTON_AVG:
   number = atof(num);
   operation(op, &result, &number);
   num[0] = \'\\0\';
   count = 0;
   op = 4;
   sprintf(answer, "%f", result);
   SetDlgItemText(hDlg, IDC_DISPLAY, answer);
   break;
  case ID_1 :
   {
    num[count] = \'1\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_2 :
   {
    num[count] = \'2\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_3 :
   {
    num[count] = \'3\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_4 :
   {
    num[count] = \'4\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_5 :
   {
    num[count] = \'5\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_6 :
   {
    num[count] = \'6\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_7 :
   {
    num[count] = \'7\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_8 :
   {
    num[count] = \'8\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_9 :
   {
    num[count] = \'9\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_0 :
   {
    if(count)
    {
     num[count] = \'0\';
     count++;
     num[count] = \'\\0\';
     SetDlgItemText(hDlg, IDC_DISPLAY, num);
    }
   }
   break;
  case ID_DOT :
   {
    num[count] = \'.\';
    count++;
    num[count] = \'\\0\';
    SetDlgItemText(hDlg, IDC_DISPLAY, num);
   }
   break;
  case ID_EQ :
   {
    number = atof(num);
    num[0] = \'\\0\';
    count = 0;
    operation(op, &result, &number);
    sprintf(answer, "%f", result);
    SetDlgItemText(hDlg, IDC_DISPLAY, answer);
   }
   break;
  case ID_BUTTON_EXIT:
   EndDialog(hDlg, 0);
   break;
  case IDCANCEL:
   EndDialog(hDlg, 0);
   break;
  }
  break;
 }
 return 0;
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 지금 결혼하면 스타 하객 많이 올 것 같은 '인맥왕' 스타는? 운영자 24/10/28 - -
278120 이참에 애플 사버릴까? [1] 좋은아버지갤로그로 이동합니다. 11.10.05 61 0
278119 출 to 더 근 아 근데 오늘은 마음이 다른 날보다 다르다. 좋은아버지갤로그로 이동합니다. 11.10.05 29 0
278118 아이폰4s 관련 언플 쩐다 [2] 전간디갤로그로 이동합니다. 11.10.05 111 0
278117 애플.. 어제 아이폰 4s는 실망이네.. [5] 쿄스케갤로그로 이동합니다. 11.10.05 97 0
278116 중대 기상하십시오! [1] 이힝(121.177) 11.10.05 71 0
278115 operating system concepts 8판 번역 언제 발매될까? dd(59.30) 11.10.05 111 0
278113 디시앱보다 디시모바일페이지가 편한거 같다 SODMaster갤로그로 이동합니다. 11.10.05 42 0
278112 (c언어)이게 왜잘못됨? [3] forhappiness갤로그로 이동합니다. 11.10.05 82 0
278111 객체지향을 너무 어렵게 생각할 필요는 없는 것 같다. [1] 바보플머(119.207) 11.10.05 83 0
278110 c/c++ 쓰레드풀 구현된거 없음?? [1] 늅늅늅(114.71) 11.10.05 92 0
278108 형들 도아줰ㅋㅋㅋㅋㅋㅋㅋ [3] 리핀(180.182) 11.10.05 58 0
278104 스마트폰은 너무 크게만 나온다 막장갤신학생갤로그로 이동합니다. 11.10.05 49 0
278103 이번 아이폰 발표는 소프트웨어 위주구만 [2] 거칠게갤로그로 이동합니다. 11.10.05 97 0
278102 Objective - C 하고있는데 [1] LPrine갤로그로 이동합니다. 11.10.05 70 0
278101 아잉폰 생중계 보고 싶으면 클릭해라 거칠게갤로그로 이동합니다. 11.10.05 38 0
278100 Fortran 기초 제발 도와저.. 자고 싶어 [6] 아..(125.208) 11.10.05 82 0
278099 횽들 foundations of Algorithms 솔루션있는 사람있어? [1] 호구왔는가(27.117) 11.10.05 532 0
278097 이거 좀 해석해줘 아무리 책을 봐도 모르겠다. [3] 좋은아버지갤로그로 이동합니다. 11.10.05 83 0
278095 횽들 좀 도와줘. 포트런인데 첨배워서 뭐가 뭔지 모르겠어.. 진짜 기초야 [14] 아..(125.208) 11.10.05 93 0
278094 아씨`발 띠껍다 폰번만으로 위치추적가능? [38] ㅁㄴㅇ(112.172) 11.10.05 365 0
278093 뭐야 아이폰 발표 생중계 안하네?? [1] 거칠게갤로그로 이동합니다. 11.10.05 49 0
278092 난이제자러감 [3] 三didas갤로그로 이동합니다. 11.10.05 50 0
278091 c언어 기초문법다띄고선 뭐만들어야지 아 애 제대로 공부했구나함? [5] 박구갤로그로 이동합니다. 11.10.05 87 0
278089 유군 [2] 三didas갤로그로 이동합니다. 11.10.05 33 0
278088 난 솔직히 마음이 그래 [14] 좋은아버지갤로그로 이동합니다. 11.10.05 129 0
278087 프로그래머 님들 꼭봐주세요 개인입니다 (장난사절입니다) [7] 양성윤(58.234) 11.10.05 89 0
278086 착한 여자와 결혼하고 싶다. 거칠게갤로그로 이동합니다. 11.10.05 79 0
278084 곧 있으면 아이퐁 5 발표된다. [1] 거칠게갤로그로 이동합니다. 11.10.05 48 0
278083 좋은아버지횽은봅니다 [4] 三didas갤로그로 이동합니다. 11.10.05 57 0
278082 심슨 21기 15화 (여자는 어려워..) [5] 밤이네..갤로그로 이동합니다. 11.10.05 241 0
278080 왜 한국 프로그래머는 0~ 100까지 다 해야하는가? [8] 거칠게갤로그로 이동합니다. 11.10.05 249 0
278079 우리 엄마 아빠 세탁소를 14년동안 하셧는데 [3] 좋은아버지갤로그로 이동합니다. 11.10.05 99 0
278077 형들 씨언어 헬로월드! 에서부터 막혔어연 ㅠㅠ [1] 씨몽키(121.181) 11.10.05 116 0
278075 살춤이는 나랑활동시간이 같은듯 [3] 三didas갤로그로 이동합니다. 11.10.05 44 0
278074 상양 허세 쩌네 이힝(121.177) 11.10.05 43 0
278073 그래도 난 진짜 좋다 [7] 좋은아버지갤로그로 이동합니다. 11.10.05 81 0
278072 하이킥 보는 겔러 있음?? 거칠게갤로그로 이동합니다. 11.10.05 43 0
278071 cpp this포인터에 대해 질문여 [3] ㅁㄴ(182.214) 11.10.05 64 0
278069 와 컴파일러 과목 [3] 이모군(175.114) 11.10.05 80 0
278068 형들아 소프트웨어 공학에 나온는 명세서에 대해 좀 물어볼꼐 [1] 1313(223.222) 11.10.05 52 0
278067 c언어 띄고 다음은 어떤언어배울까 [5] 박구갤로그로 이동합니다. 11.10.05 85 0
278066 c# dictionary 에 대해서 조금만 알려줘영 ㅠ [2] 구해주세여!(211.209) 11.10.05 111 0
278065 모바일 OS에 관심이 생겼는데, 관련 기초가 모자라서 고민 [6] ㅋㅋㅋ(219.241) 11.10.05 66 0
278063 시발 내일도 도서관 방콕해서 [3] 三didas갤로그로 이동합니다. 11.10.05 40 0
278060 공대생을 어디 춤추러 가실때 봐야하실 매뉴얼 [1] Lab-1갤로그로 이동합니다. 11.10.05 102 0
278058 미드갤 애들은 참 재미있는거 같아. [1] qt(14.32) 11.10.05 47 0
278056 횽들 보안 소프트웨어 만드는 회사 이력서 쓸때말야 [2] 보안관련회사(110.11) 11.10.05 87 0
278055 컴파일러... 악마의 과목 [19] [성대아싸]갤로그로 이동합니다. 11.10.05 277 1
278054 너네 빨리 지원해라ㅋ.jpg [4] warota(221.150) 11.10.05 132 0
278053 그런티님!!!!!!!!!!!!!!!!!(수정본) [2] Sayrin갤로그로 이동합니다. 11.10.05 29 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2