2008. 11. 5. 12:32

사용자 삽입 이미지

재귀함수를 이용한 n제곱 구하는 프로그램 예제 입니다.

A에 입력된 값의 B에 입력 된 값만큼 제곱하여 아래에 출력되어집니다.



- Visual Studio 2005 (SP1)에서 작성되었습니다.
Posted by 해비
2008. 11. 4. 22:28
사용자 삽입 이미지

스택을 이용하여 10진수를 2진수로 변환 하는 예제 입니다.

IPv4 주소를 입력 받아서 각각의 10진수를 2진수로 출력하는 형태로 동작합니다.

<< NOTE >>
- IP주소는 각 항목당 반드시 3자리로 입력 되어져야 하며 아래의 형식을 지켜야 합니다.
  ###.###.###.###
ex) 202.193.255.101 - O
     192.168.0.1 - X (0과 1의 경우 000 또는 001로 표현해야 합니다)
     192.168.000.001 - O


- VisualStudio2005 (SP1)에서 작성되었습니다.
Posted by 해비
2008. 9. 17. 20:29
학교에서 과제로 나온것을 한번 만들어 본 것입니다^^
사용자 삽입 이미지
실행한 화면이고 별다른 특징은 없습니다;;^^

프로그램 사양서
* 언어 : 자유선택. GUI 자유선택
* 반환기능, 여러잔 출력가능
* 커피(200), 우유(150), 코코아(100)
* Text 형태 출력



요구사항(소스 오픈 시)
- Visual Studio 2005 (SP1) 또는 상위버젼의 컴파일러

최소요구사항(실행 시, 요구사항 충족 시 필요없음)
- Visual C++ 2005 Runtime Library

별로 어려운 부분은 없으며, 소스에 주석을 달아놨습니다.

첨부파일 안에 Release 폴더 안에 해당 실행파일이 존재 합니다.
Posted by 해비
2008. 5. 19. 13:15

자바 스크립트에서 구현하는 요일 출력하기 입니다.

<script language="JavaScript">
  // 함수 정의
  //-------------------------------------
 
  // 요일 구하기 (년/월/일 입력하면 해당 요일을 출력)
  // Coded by : 구공탄(최영민)
  // 2008-05-19 MON
  // http://www.gugongtan.net
  function ext_day(n_year,n_month,n_day){
   var p_year = n_year -1;
   var p_month = n_month-1;
   var ext = 0;

   ext = parseInt((p_year*365 + parseInt(p_year/4) + day_cnt(n_year,p_month) + e_day -1)%7)

   return day_str(ext)
  }

  //날짜 수 계산
  // (요일 구하기 함수의 부분....)
  function day_cnt(year, month) {
   if(month==1)
    return 31
   else if(month==2){
    if(year%4==0)
     return 60
    else
     return 59
    }
   else if(month==3){
    if(year%4==0)
     return 91
    else
     return 90
    }
   else if(month==4){
    if(year%4==0)
     return 121
    else
     return 120
    }
   else if(month==5){
    if(year%4==0)
     return 152
    else
     return 151
    }
   else if(month==6){
    if(year%4==0)
     return 182
    else
     return 181
    }
   else if(month==7){
    if(year%4==0)
     return 213
    else
     return 212
    }
   else if(month==8){
    if(year%4==0)
     return 244
    else
     return 243
    }
   else if(month==9){
    if(year%4==0)
     return 274
    else
     return 273
    }
   else if(month==10){
    if(year%4==0)
     return 305
    else
     return 304
    }
   else if(month==11){
    if(year%4==0)
     return 335
    else
     return 334
    }
   else if(month==12){
    if(year%4==0)
     return 366
    else
     return 365
    }
  }

  // 요일 표시
  // (요일 구하기 함수의 부분....)
  function day_str(num) {
   if(num==0)
    return "일"
   else if(num==1)
    return "월"
   else if(num==2)
    return "화"
   else if(num==3)
    return "수"
   else if(num==4)
    return "목"
   else if(num==5)
    return "금"
   else
    return "토"
  }


 
  // 처리부...
  document.write(ext_day(2008,5,24))
 </script>



맨 마지막의 ext_day(년,월,일) 을 입력하면 해당요일이 출력됩니다.
혹, 잘못된 부분이나 버그가 존재 할수 있으므로 사용에 참고하시기 바랍니다

Posted by 해비
2008. 3. 21. 08:50


자바스크립트의 간단한 구문을 설명합니다.
학교에서 배운 내용을 기반으로 작성하였습니다.

구문이 대부분 C와 유사하므로, 이 부분은 생략합니다. -_- v


- 절대값 구하기
변수 = Math.abs(Number(a))
- 파란색은 반드시 위와 같은 형태로 대소문자 구분하여 표기해야 함...

ex)
   c=Math.abs(Number(-7))
   document.write("절대 값 : "+c)
- -7에 대한 절대값, 7이 출력됩니다.



- 키보드로 부터 입력을 받아옴
변수=prompt("내용을 입력하세요","기본으로 입력 되어져 있을 값")
ex)
   a=prompt("내용을 입력하세요","10")
   document.write("입력한 값 : "+a)
- 브라우저 실행 시, 내용을 입력하세요 라는 창이 뜨며 그 기본값으로 10이 들어있는것을 확인할수 있습니다.
- 그냥 확인을 누르면 ... "입력한 값 : 10" 이 출력 될것이고, 임의의 어떤 값 또는 문자를 입력하면 "입력한 값 : 텍스트" 의 형태로 출력 됩니다.



- 화면에 문자 출력
document.write("출력할 내용")

가정1. 변수의 내용과 함께 텍스트 출력...
document.write("텍스트"+변수+"텍스트")
- 텍스트와 출력할 변수 사이에 '+' 를 넣음으로서 같이 출력이 가능하다.

Posted by 해비
2007. 12. 26. 19:54
첨부된 소스파일은 Visual Studio 2005 (Service Pack 1) 에서 작성되었습니다.


실행화면...
사용자 삽입 이미지














Spin 컨트롤 예제 입니다.

1. MFC 응용프로그램 프로젝트 생성
2. 다이얼로그 기반으로 선택하고 마침 선택


컨트롤 ID 설정(기본값 사용)
IDC_EDIT1
IDC_SPIN1


헤더에 스핀의 값을 기억할 변수 선언(SpinExDlg.h)
사용자 삽입 이미지








변수값 초기화...(SpinExDlg.cpp)
사용자 삽입 이미지










이제 마지막으로... 아래의 코드 작성...
(스핀 컨트롤 더블클릭하면 아래 코드 작성하도록 나옵니다)
사용자 삽입 이미지





















캡쳐 하는데 spin_val-- 아랫줄에 커서도 같이 찍혔네요 -0-''

음... 이로써 끝났습니다.


스핀 컨트롤의 경우에도 스크롤바와 같이...

SetRange(int Min, int Max)
SetPos(int)
GetPos()
가 분명 존재 합니다...

하지만, 저것들을 사용해서 범위 지정하고, 위치값 얻어오는 과정에서 이상한 값이 출력되고 맙니다.
위치값 뿐만 아니라 버튼 위,아래의 오작동에 대한 증상도 같이 나타납니다.
(궁금하면 직접 해보시길...)

비주얼 스튜디오 6.0과 2005에서 동일 증상이 나타납니다.

따라서 여기 예제에서는 저런것들은 쓰지 않고, 단지 △, ▽가 눌린것을 체크하여서 임의의 변수에 값을 저장한 다음 그것을 출력하는 방식을 취하게 되었습니다.
Posted by 해비
2007. 12. 26. 02:12

첨부된 소스파일은 Visual Studio 2005 (Service Pack 1) 에서 작성되었습니다.


방학 후 혼자 MFC 가지고 놀고 있습니다...
프로그래밍 내공(?) 수련중... 이라고 해도 될거 같군요~

한동안 프로그래밍 안하다가 단지 몇주만에 다시 간단한거 하나 하는데도 몇 시간이 걸려 버리는군요... OTL

실행 화면입니다.
사용자 삽입 이미지
















스크롤바 컨트롤의  경우, 그냥 폼에 갖다 놓는다고 해서 작동하지는 않습니다.

직접 실행해 보신분들은 아시겠지만...
마우스로 움직여도 원래 위치로 되돌아가고 맙니다.

그럼 천천히 시작해 보도록 하죠~

1. ScrollBarEx 라는 프로젝트 명으로 MFC 프로젝트 생성
2. 다이얼로그 기반 으로 선택 후, '마침' 선택

컨트롤 ID 설정(기본값 사용했습니다)
IDC_EDIT1
IDC_EDIT2
IDC_SCROLLBAR1
IDC_SCROLLBAR2

IDC_SCROLLBAR1 - 가로, IDC_EDIT1 - 가로 위치
IDC_SCROLLBAR2 - 세로, IDC_EDIT2 - 세로 위치



ScrollBarExDlg.h 파일에 다음과 같이 변수를 선언합니다.
사용자 삽입 이미지









ScrollBarExDlg.cpp 에 다음과 같이 초기값을 지정해 줍니다.
사용자 삽입 이미지





















OnInitDialog 부분은 다이얼로그가 생성되면서 실행되는 부분입니다.
따라서, 여기에 변수나 컨트롤의 초기화를 해 주면 딱 좋은 위치입니다.



폼의 WM_HSCROLL 메시지 부분입니다.
이 부분을 설정함으로써, 드디어 스크롤바가 정상작동을 하게 됩니다.
사용자 삽입 이미지





















SB_LINELEFT, SB_LINERIGHT는 각각 좌,우의 삼각형 모양 (◁,▷)을 클릭했을때 입니다.
SB_PAGELEFT, SB_PAGERIGHT는 각각 현재 위치 기준으로 좌, 우의 빈칸을 클릭했을때 입니다.
SB_THUMBTRACK 은 위치를 고정시키는 부분입니다.
(요거 빼먹으면 위 코드들은 말짱 도루묵 된다는 거~)



세로 스크롤바도 가로 스크롤바와 비슷합니다.
폼의 WM_VSCROLL 메시지 입니다.
사용자 삽입 이미지





















여기까지 입니다.

SB_LINEUP, SB_LINEDOWN, SB_PAGEUP, SB_PAGEDOWN은 위 가로 스크롤바와 기능이 비슷하므로 설명 생략합니다.

한가지 추가로 적자면... 이 부분 소스는 맨 아랫줄 1줄을 제외하고 건들필요 없습니다.
SB_LINEUP, SB_LINEDOWN, SB_PAGEUP, SB_PAGEDOWN는 각각
SB_LINELEFT, SB_LINERIGHT, SB_PAGELEFT, SB_PAGERIGHT로 두어도 정상적으로 동작합니다.

컴파일 후 실행하면 OK~
Posted by 해비
2007. 12. 12. 03:34

작성 툴 : Visual Studio 2005 (SP1)
ODBC : Microsoft Access Driver (*.mdb)

시험 제출용이므로 비공개 입니다.

추후 공개할 예정...;;

Posted by 해비
2007. 12. 1. 19:58

MFC만 써오다가... 문득... 저건 뭘까... 싶은 생각에 그만...
Visual Studio 2005의 C# 으로 윈도우즈 어플리케이션을 작성해 보게 되는데...
사용자 삽입 이미지

















연습 내용 : 텍스트 박스 3개를 이용해서 2개에서 값을 입력받고, 그 값을 더해서 3번째 박스에 출력.

[컨트롤]
textBox1
textBox2
textBox3
button1

음... 처음 책도 없이... 그냥 시험삼아 단 한줄 코딩으로 써본 것이...

button1 클릭 이벤트안에 textBox1.Text = "1234";

그런데 코딩 후, 실제로 실행까지 되더니...
버튼을 누르는데 textBox1 에 "1234"가 출력되는것이 아닌가!!
순간... 이거 비베 명령어도 먹나... 싶었다... ㅎㅎ

그래서 이번에는...
textBox3.Text = textBox1.Text + textBox2.Text;
위 코딩의 결과는... 문자+문자 이다...
textBox1 에 "12"를 넣고, textBox2에 "34"를 넣으면... "1234"가 출력된다...
12+34 의 값이 출력될것이라는 예상을 깨긴 했지만...

자 그럼 이제 본격적으로 코딩을 시작 해보장...
사용자 삽입 이미지











버튼 클릭 이벤트 부분에서, 파란 상자 안에 있는 부분을 직접 코딩하면 끝~!!

컴파일 후 실행하면... 됨...


자, 그러나 한가지 문제가 존재 하는데...
눈치 챘는가?
숫자가 아닌 문자가 들어가면 오류가 난다는것...

그래서 숫자 이외의 문자가 포함되면 값을 0으로 간주하여 계산함으로써, 오류를 없애 보도록 하였다.

그리하여... 개정된 소스...

사용자 삽입 이미지














그리고 함수... IsNumeric() 를 추가해 줘야한다...
사용자 삽입 이미지

















함수는 버튼 이벤트 바깥에 바로 만들어도되고, 그 위에 적어도되고... 편한데로 하면 됨...
(물론 녹색 부분은 주석이므로, 입력할 필요는 없다)


아래... 소스파일 첨부...

Posted by 해비
2007. 11. 18. 16:13


보충 설명 들어갑니다.

1. 컨트롤 변수 선언 방법
(Visual Studio 2005 기준...)

상단의 메뉴에서... 보기 -> 클래스 뷰 를 선택합니다.

사용자 삽입 이미지
또는 위 그림처럼 아래 부분 표시해 둔곳... 클... 부분 에 클릭하셔도 되겠습니다.

다음으로...

사용자 삽입 이미지


C_exam01Dlg 클래스에서 마우스 우클릭 -> 추가 -> 변수 추가 입니다.


사용자 삽입 이미지

위 예시는... IDC_BUTTON1의 ID를 가진 버튼의 컨트롤 변수 Button1 을 정의한 것입니다.

컨트롤 변수 항목에 체크 하고, 그 다음으로 컨트롤 ID를 설정 해야 하는데 옆에 역삼각형 누르면 현재 폼에 배치된 모든 컨트롤 ID가 나옵니다.

변수 형식은 컨트롤 에 따라 미리 정의 된것이 있습니다.
예) CEdit, CStatic, CBtuuon... 등...

변수 이름은 마음에 드는대로 정하면 되겠습니다.




2. 컨트롤 이벤트 처리 방법
이 부분은 딱히 특별한게 없네요...
다이얼로그 폼 디자인 할때, 버튼 배치시킨 다음 더블클릭 하면 자동으로 버튼 클릭 되었을 때 처리할 라인 입력하라고 나옵니다. (커서가 그쪽에 가 있죠...)
(단, VC++ 6.0 에서는 MFC Wizard 에서 설정 하는것으로 알고있습니다.)

하지만, 항상 클릭했을때... 라는 법은 없죠... 다양한 이벤트가 있으므로... 그것 설정 하는 부분을 소개 하겠습니다.

상단 메뉴... 보기 -> 리소스 보기 선택후...

_exam01 -> _exam01.rc -> Dialog -> IDD__EXAM01_DIALOG
(트리 형태 이므로 차례대로 접근하면 되겠습니다...)

그럼 디자인 화면으로 넘어오게 되는데용~

여기서... 컨트를 아무거나 아나 집어 봅니다 -.-;;

사용자 삽입 이미지

속성... 이라는 부분에 번개표시 가 있는데... 저거 누르면 됩니다
클릭 되었을 때...는  OnBnClickedButton 이라고 설정 되어있군요^^

다른 이벤트도 설정 저기서 직접 입력 하던가... 아니면 디폴드 값을 지정할 수 있습니다만...

디폴트 값 지정할려면 커서 갖다 놓게 되면 오른쪽에 역삼각형이 뜹니다.

그거 누르면 <추가> OnBnClickedButton  ... 등으로 나옵니다.

그거 누르면 되겠습니다....


Posted by 해비