안녕하세요. 인터레스트입니다.

이번 포스팅은 자바에 관한 내용입니다. 자바 프로그램을 처음 접하는 경우 걔념잡기도 힘들고 코딩을 한다는것도 꽤나 어렵게 느껴지기 때문에 간단한 프로그램 같은 경우 이미 짜여져 있는 코드를 보고 어떤 방식으로 코딩을 하는지 이해하는것도 좋은 방법이라고 생각됩니다.

 

그래서 인터넷에서 서핑을 하다가 있는 소스코드를 이클립스 프로젝트로 만들고, 이 소스에 주석을 약간 추가해서 포스팅을 하려고 합니다.

주석이란것도 별게 없는거긴 한데, 그냥 이해하는데 약~~간의 도움이라도 됐으면 하는 마음에서 추가해봤습니다. ^^

 

이번에 소개해드릴 자바 소스는 보통 대학교 과정에 많이들 있는 숫자를 입력받아서 디지털시계 형태로 출력하는 예제입니다.

만약 5를 입력받는다면  이런 형태로 5를 찍어주는 거죠 ^^;;

 

 

 

그러면 간단하게 로직을 설명하겠습니다. 이 로직은 소스에도 주석형태로 그대로 있기 때문에 참고하

시면 됩니다.

먼저 첨부 파일을 받으셔서 이클립스에서 연다음에 하시는게 나을듯합니다.

 

digitClock.zip

 


 

 

public static void main( String[] args ){
 //선언한 led 2차원 배열의 값을 빈칸으로 초기화 합니다.
 // 사용자로 부터 숫자를 입력받아 숫자에 맞게 2차원 배열에 MARK를 채우는 작업을 합니다.(getNumber, fillLEDByNum)
 //2차원 배열 led값을 출력함으로써 원하는 디지털 형태의 숫자를 출력합니다.

 

 

public class digitClock {
  /***
  *  디지털 시계 모양을 기준으로 맨 윗줄을 TOP, 윗부분 네모중 왼쪽선을 LEFT_TOP, 오른쪽선을 RIGHT_TOP, 중간 가로선을 MIDDLE,
  *  왼쪽 아랫부분 세로선을 LEFT_BOTTOM, 오른쪽선을 RIGHT_BOTTOM, 맨 아래 가로선을 BOTTOM 이라고 정의합니다.
  ***/

 

 

 static int getNumber(){

 /***
  * 사용자로 부터 원하는 숫자를 입력 받는 부분입니다.
  * 현재는 한자리 숫자를 입력받아서 출력하기 때문에 두자리 숫자가 들어오는 경우나 숫자가 아닌 문자가 들어오는 경우등에 대한 오류 처리는 추가하시면 됩니다. 
*/

 

 

static char[][] fillLED( char[][] led, int position )

 /*****
  * MARK 캐릭터로 2차원 배열을 채우는 부분입니다.
  * CASE문 별로 각각 한줄씩 채우게 되는데 TOP 같은 경우는 가로로 채우기 때문에 [0,0], [0,1],[0,2],[0,3]... 좌표에 MARK를 채우게 됩니다.
  * LEFT_TOP 같은 경우는 [0,0], [1,0], [2,0], [3,0].. 의 형태로 MARK를 채우게 됩니다. 
  */

 

 

static char[][] fillLEDByNum( char[][] led, int num ){ 
 /***
  * 각 숫자에 맞는 위치에 선을 채우는 작업을 합니다.
  * 예를 들어 1 같은 경우는 RIGHT_TOP, RIGHT_BOTTOM을 호출하여 그 위치에 맞게 led라는 2차원 배열에 MARK값을 입력합니다.
 */
 

 


그렇게 복잡한 부분이 아니기 때문에 주석을 조금 읽어보면 금방 이해가 될거라고 생각합니다. ^^

이 프로그램의 포인트는 디지털숫자판을 2차원 배열로 만드는것이고, 이 2차원 배열을 디지털 숫자에 맞게 잘 채우면 되는것입니다.

 

즉, 실제 LED 숫자판을 생각하시면 됩니다. 실제 LED 숫자판에 있는 LED 하나하나를 2차원 배열하나에 매핑을 하면 어디에 불을 켜야지 숫자가 되는지 금방 감이 오니깐요.

이것만 생각하시면 코딩하는것은 어떻게 하는 크게 상관이 없습니다. 처음에는 대부분 그렇게 대충 하니깐요

나중에 경험이 쌓이면 잘 하시게 될거라고 생각합니다.^^

 

 

 

 

 


Posted by 인터레스트
,