« Previous : 1 : 2 : 3 : 4 : Next »

[2008.12.29] Java 간단한 클래스 제작

import java.io.*;

public class Exam_02{
 public static void main(String[] arg) throws NumberFormatException, IOException{
  int num=0;
  String str=null;
  BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
 
  System.out.println("관리할 컴퓨터의 개수를 입력하여주세요 : ");
 
  num=Integer.parseInt(in.readLine());
   
  ComputerManager cm = new ComputerManager(num);
 
  while(true){
   System.out.print("0.프로그램종료\n1.컴퓨터정보입력\n2.컴퓨터정보보기(선택)\n3.모든컴퓨터정보보기\n입력 : ");
   num=Integer.parseInt(in.readLine());
   
   switch(num){
   case 0:
    System.out.print("프로그램을 종료하겠습니다");
    return;
   case 1:
    System.out.print("컴퓨터 번호를 입력하세요 : ");
    num=Integer.parseInt(in.readLine());
    System.out.print("컴퓨터 이름을 입력하세요 : ");
    str=in.readLine();    
    cm.ComputerInputData(num,str);
    break;    
   case 2:
    System.out.print("조회하실 컴퓨터 번호를 입력해주세요 :");
    num=Integer.parseInt(in.readLine());
    cm.ComputerView(num);
    break;
   case 3:
    cm.ComputerView();
    break;
   default: System.out.println("해당하는 메뉴는 없습니다");
   
   }
  } 
 }
}
class ComputerManager{
 private int maxNum,numCnt;
 private Computer com[];
 
 public ComputerManager(int num) {
  // TODO Auto-generated constructor stub
  this.numCnt=0;
  this.maxNum=num;
 
  com=new Computer[num];
 
  for(int i=0;i<num;i++)
   com[i]= new Computer();
 
 }
 
 
 public void ComputerInputData(int num, String str) {
  com[numCnt].setIdName(str);
  com[numCnt].setIdNum(num);  
 }

 public void ComputerView(){
  for(int i=0;i<maxNum;i++)
   System.out.format("컴퓨터 번호 : %d\n컴퓨터 이름 : %s\n",com[i].getIdNum(),com[i].getIdName());
 }
 public void ComputerView(int idNum){
  for(int i=0;i<maxNum;i++)
   if(idNum==com[i].getIdNum()){
    System.out.format("컴퓨터 번호 : %d\n컴퓨터 이름 : %s\n",com[i].getIdNum(),com[i].getIdName());
    return;
   }
  System.out.println("해당하는 컴퓨터 번호를 찾을수 없습니다 ");
 
 }
 
 
}
class Computer{
 private int idNum;
 private String idName;
 
 public Computer(){
  idNum=0;
  idName="Noname";
 }
 public String getIdName() {
  return idName;
 }
 public int getIdNum() {
  return idNum;
 }
 public void setIdName(String idName) {
  this.idName = idName;
 }
 public void setIdNum(int idNum) {
  this.idNum = idNum;
 }
}

Posted by rCan

2008/12/28 19:50 2008/12/28 19:50
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/587

[Java]

import java.io.*;

public class Exam_01 {
 public static void main(String[] args) throws IOException {
  Gugudan gu = new Gugudan(); // 구구단의 인스턴스 생성(객채생성)
  BufferedReader in =
   new BufferedReader(new InputStreamReader(System.in)); // 버퍼리더를 사용하여 키보드로 입력을 받아들임.
 
  System.out.print("숫자를 입력하시면 해당하는 구구단을 보여드립니다\n0을 입력하면 프로그래밍 종료됩니다\n");
 
  while(true){
   System.out.print("입력 : ");
   if(gu.setNum(Integer.parseInt(in.readLine()))){
    // in.readLine()버퍼에서의 내용을 받아들임
    // 받아들인것을 Integer 변환
    // gu.setNum 맴버메소드 실행 하는데 위에서 Integer 변환한값을 넘김
    // 리턴 타입은 boolean으로 사용했기에 바로 if문에다가 사용해줌..
    if(gu.getNum()!=0)
     // 구구단객체에 있는 getNum메소드 실행 return 값이 0이 아닐경우 구구단을 보여준다.
     gu.showRun();
   
    else
     // 그렇지 않을 경우 break while()문을 빠져 나감.
     break;
   }
   else
    // gu.setNum()에서 False를 받아올경우 즉 0, 2~9의 숫자이외의 값이 들어갔을경우 출력할 내용
    System.out.print("숫자를 잘못 입력하셧습니다.\n2~9까지의 숫자를 입력해주십시오.\n");
  }
 
  System.out.print("종료합니다!!"); // 그냥 프로그램 종료를 나타내려고 찍은 프린트.
 }
 
}
class Gugudan{
 // 구구단 클래스
 private int runNum;
 // runNum이라는 인티저형 변수를 private로 선언함. get과 set으로만 runNum에 접근가능하게 하기 위해서

 boolean setNum(int setNum){
  // setNum메소드 int setNum 받아와서 처리
  if((setNum>1&&setNum<10)||setNum==0)
   // setNum이 2~9 그리고 0일경우에만 setNum멤버변수에 값을 넣어준다.
   this.runNum=setNum;
  else
   // 그렇지 않을경우 false를 return 함
   return false;
 
  // if문에서 참일경우 true를 리턴해도 되겠지만
  // else 문에서 false를 리턴시키면서 끝나기때문에 그냥 함수의 끝에 부분에 true를 리턴시키게 해둠.  
  return true;
 
 }
 int getNum(){
  // 단순히 숫자를 가져올때 사용함 이유는 위에 설명
  return runNum;
 }
 
 void showRun(){
  // 구구단을 보여주기 위해서 돌아갈 부분
  for(int i=1;i<10;i++){
   System.out.format("%d x %d = %d\n",runNum,i,runNum*i);
  }
 }
}

책보고 내꺼 소스 보면서 참고해서 프로그램 월요일까지 짜와 내용은.

0번 프로그램 종료
1번 컴퓨터 정보입력
2번 선택한 번호의 컴퓨터보기
3번 입력된 컴퓨터들 전부 보기

클래스 사용해서
0번은 프로그램 그냥 종료시키고
1번은 컴퓨터이름만 받아두고 ID라던지 연번이 있으면 관리하기 편하겟지..
2번은 연번같은거 입력해서 해당하는 컴퓨터들 볼수 있게
3번은 모든 컴퓨터들 정보 프린트하기

Posted by rCan

2008/12/28 12:42 2008/12/28 12:42
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/586

[ATMEGA128] 레포트


#include<avr/io.h>
#include<avr/interrupt.h>
#include<avr/signal.h>

volatile unsigned int TIC_TIME;

void init_port(void){
        DDRF=0xFF;
        PORTF=0x00;
}
void init_timer1(void){
        TCNT1H=0;
        TCNT1L=0;
        TCCR1A=0x00;
        TCCR1B=0x0C;
        TCCR1C=0x00;

        OCR1AH=0xF4;
        OCR1AL=0x24;
        TIMSK=TIMSK|(1<<OCIE1A);
}

void init_timer(void){
        TIFR=0x00;
        init_timer1();
}
void init(void){
        init_port();
        init_timer();
}

SIGNAL(SIG_OUTPUT_COMPARE1A){
        TIC_TIME++;
}
int main(void){
        init();
        sei();
        while(1){
                if(TIC_TIME>99){
                        TIC_TIME=0;
                        PORTF=0x00;
                }
                else
                        PORTF=(TIC_TIME/10)<<4||TIC_TIME%10;
        }

        return 0;
}


Posted by rCan

2008/12/09 17:25 2008/12/09 17:25
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/585

[ATMEGA128] 시험관련


/*
시계 FND 0부터 59초
60초가 되면 LED1개 켜지기
OVERFLOW0 사용
08.12.10 수정
*/
#include<avr/io.h>
#include<avr/interrupt.h>
#include<avr/signal.h>


volatile unsigned int TIC_TIME;
volatile unsigned int TIME;
volatile unsigned int min;
volatile unsigned int sec;

void init_port(void){
        DDRC=0xFF;
        DDRD=0xFF;

        PORTC=0xFF;
        PORTD=0x00;
}
void init_timer0(void){
        TCCR0=0x04;
        TCNT0=6;
        TIMSK=TIMSK|(1<<TOIE0);
}
void init_timer(void){
        TIFR=0x00;
        init_timer0();
}
void init(void){
        init_port();
        init_timer();
}

SIGNAL(SIG_OVERFLOW0){
        TCNT0=6;
        TIC_TIME++;
}

int main(void){

        init();
        sei();
        while(1){
                if(TIC_TIME>1000){
                        TIC_TIME=0;
                        TIME++;
                        if(TIME==540){
                                PORTC=0xFF;
                                TIME=0;
                        }
                }
                min=TIME/60;
                sec=TIME%60;


                PORTC=0xFF<<min;
                PORTD=(sec/10)<<4||(sec%10);
        }

        return 0;
}

Posted by rCan

2008/12/09 16:39 2008/12/09 16:39
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/584

[게임제작] 기말고사

1. chapter 24
- WIPI IO 패키지에 포함된 파일클래스의 종류
- 파일 클래스의 3가지 접근 권한
- 파일클래스의 4가지 모드
- 스트림 클래스

2. chapter 22
- 적캐릭터와의 충돌체크 부분 소스 분석

3.모바일 게임에서의 "컨버팅(Converting)"의 의미?

4. Edit Plus의 환경설정 방법 (jar 파일 만드는 방법)

5. 통신 3사의 게임 상용화 절차를 간략하게 요약정리

Posted by rCan

2008/12/09 15:21 2008/12/09 15:21
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/583

끄응.. 13.....

끄응..

!!요거 클릭!!

Posted by rCan

2008/11/10 09:39 2008/11/10 09:39
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/582

 

 

 

 

 

 

 

 

 

Posted by rCan

2008/10/23 22:46 2008/10/23 22:46
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/581

[ATMEGA128] 키스캔 + fun

/*
0번핀 500ms 토글
1번 200ms 토글
2번핀입력일경우 나머지 6개 LED 로테이트 200ms
3번 모두 오프
4번 모두 온
5번 3개 온 3개 오프
6번 2개씩 led  프래쉬
7번 징검다리 온오프 온오프
*/
#include<stdio.h>
#include<avr/interrupt.h>
#include<avr/signal.h>

#define CPU_CLOCK 16000000
#define TICKS_PER_SEC 1000
#define Prescaler 64
#define OVERFLOW 256

volatile unsigned int cnt;
volatile unsigned int tic_time;
volatile unsigned int tic_time2;
volatile unsigned int oc1cnt;
volatile unsigned int oc3cnt;
volatile unsigned int FUN_MODE;

volatile unsigned char KEY_STATE;
volatile unsigned char CURRENT_KEY_STATE;
volatile unsigned char LAST_KEY_STATE;

void init_port(void);
void init_timer(void);
void init_timer0(void);
void init_timer1(void);
void init_timer3(void);
void fun_run(void);

int main(void){
        CURRENT_KEY_STATE=0xFF;
        LAST_KEY_STATE=0xFF;

        init_port();
        init_timer();
        init_timer0();
        init_timer1();
        init_timer3();
        sei();

        while(1){
                if(FUN_MODE!=0)
                        if(tic_time2>=200){ tic_time2=0; fun_run(); }

                CURRENT_KEY_STATE=PINF; // SW에 값을 CURRENT_KEY_STATE에 넣어줌
                if(CURRENT_KEY_STATE!=0xFF){
                // CURRENT_KEY_STATE가 0xFF가 아닌 경우(어느 키라도 눌렸을경우)
                        if(CURRENT_KEY_STATE!=LAST_KEY_STATE){
                        // 지금 누른키와 눌린키가 아닐 경우 (키가 변경된 경우)
                                tic_time=0;
                                KEY_STATE=0;
                        }
                        if(tic_time>=50){
                                // 키를 누르고 50ms가 지났으면 (계속 눌려잇는 경우)
                                if(KEY_STATE==0){
                                        KEY_STATE=1;
                                        if(CURRENT_KEY_STATE==0xFE) sbi(DDRB,5); // oc1a를 출력으로 설정
                                        if(CURRENT_KEY_STATE==0xFD) sbi(DDRE,3); // oc3a를 출력으로 설정
                                        if(CURRENT_KEY_STATE==0xFB) FUN_MODE=1;
                                        if(CURRENT_KEY_STATE==0xF7) FUN_MODE=2;
                                        if(CURRENT_KEY_STATE==0xEF) FUN_MODE=3;
                                        if(CURRENT_KEY_STATE==0xDF) FUN_MODE=4;
                                        if(CURRENT_KEY_STATE==0xBF) FUN_MODE=5;
                                        if(CURRENT_KEY_STATE==0x7F) FUN_MODE=6;
                                }
                        }
                }
                else KEY_STATE=0; // PINA가 0xFF인경우는 KEY_STATE를 0으로 초기화 시켜준다.
                LAST_KEY_STATE=CURRENT_KEY_STATE; // 현재 눌린키를 눌려진 키로 넣어줌
                if(tic_time>=1000){

                // 키를 누르지 않을 경우에 생기는 문제점을 해결하기 위해서
                // tic_time은 int형 변수이기에 넘어가게 되면 오버 플로우가 발생될가능성도 있다.
                // 그것뿐만 아니라 예를 들어 키보드 방향키 위를 생각해보면
                // 위를 한번 꾸우우우욱 누른경우랑
                // 위를 한번  꾹 누른 경우랑 같게 된다는것이다.
                        tic_time=0;
                        LAST_KEY_STATE=0xFF;
                }

        }
        return 0;
}

void init_port(void){
        DDRF=0x00;
        DDRC=0xFF;
        PORTC=0xFF;
}
void init_timer(void){
        // 타이머에 관한 전반적인 공통사항을 기술
        TIFR=0x00;
}
void init_timer0(void){
        // 타이머0에 대한 설정
        TCCR0=0x04;
        TCNT0=OVERFLOW - (CPU_CLOCK / TICKS_PER_SEC / Prescaler);
        TIMSK=0x01;
}
void init_timer1(void){
        // 타이머1에 대한 설정
        TCNT1H=0x00;
        TCNT1L=0x00;

        TCCR1A=0x40;
        TCCR1B=0x0C;
        TCCR1C=0x00;

        OCR1AH=0x7A;
        OCR1AL=0x12;
        TIMSK=TIMSK|(1<OCIE1A);
}
void init_timer3(void){
        // 타이머3에 대한 설정
        TCNT3H=0x00;
        TCNT3L=0x00;

        TCCR3A=0x40;
        TCCR3B=0x0C;
        TCCR3C=0x00;

        OCR3AH=0x18;
        OCR3AL=0x6A;
        TIMSK=ETIMSK|(1<OCIE3A);
}
SIGNAL(SIG_OVERFLOW0){
        // 오버 플로우 인터럽트 발생시 (timer0에서 발생되는..)
        tic_time++;
        tic_time2++;
        TCNT0 = OVERFLOW - (CPU_CLOCK / TICKS_PER_SEC / Prescaler);
}
SIGNAL(SIG_OUTPUT_COMPARE1A){

}
SIGNAL(SIG_OUTPUT_COMPARE3A){

}

void fun_run(void){
        switch(FUN_MODE){
                case 1:
                break; // 6개 로테이트
                case 2: PORTC=0x3F; break; // 6개 OFF 해결
                case 3: PORTC=0x00; break; // 6개 on 해결
                case 4: PORTC=0x38; break; // 6개 3on 3off 해결
                case 5: PORTC=0xFF<<cnt);
                break; // 2개씩 반복
                case 6: PORTC=0xAA; break; // onoffonoff 해결
        }
}

Posted by rCan

2008/10/15 16:55 2008/10/15 16:55
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/580

[ATMEGA128] 시험

/*
INT0
timer0 500ms
평상시
LED_OFF 0xFF - PORTF

INT0 입력이 들어오면 500ms후에 불이 켜지게
하나씩 증가시켜서 불이 켜지도록 8개까지 켜지고 종료
*/

#include<avr/io.h>
#include<avr/interrupt.h>
#include<avr/signal.h>

#define CPU_CLOCK 16000000
#define TICKS_PER_SEC 1000
#define Prescaler 64
#define OVERFLOW 256

volatile unsigned int tic_time;
volatile unsigned STATE_FLAG;

void init_port(void);
void init_timer0(void);

int main(void){

        init_port();
        init_timer0();

        sei();
        while(1){
                if(tic_time>=500&&STATE_FLAG==1){
                        tic_time=0;
                        PORTF=(PORTF<<1);
                }
        }
        return 0;
}

void init_port(void){
        DDRF=0xFF;
        PORTF=0xFF;
        cbi(DDRD,INT0);

        EIFR=0x00;
        EICRA=0x03;
        EIMSK=0x01;
}
void init_timer0(void){
        TIFR=0x00;
        TCNT0=0x00;
        TCCR0=0x0C;
        OCR0=CPU_CLOCK/TICKS_PER_SEC/Prescaler;
        TIMSK=0x02;
}
SIGNAL(SIG_INTERRUPT0){
        tic_time=0;
        STATE_FLAG=1;
}

SIGNAL(SIG_OUTPUT_COMPARE0){
        tic_time++;
}

Posted by rCan

2008/10/14 18:04 2008/10/14 18:04
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/579

Eagles - Hotel California



너무나 아름다운곡 T_T
출처 : http://video.naver.com/2008082715252064679

Posted by rCan

2008/10/12 15:13 2008/10/12 15:13
Response
No Trackback , No Comment
RSS :
http://rcan.net/rss/response/578

« Previous : 1 : 2 : 3 : 4 : Next »

블로그 이미지

- rCan

Calendar

«   2008/01   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Notices

  1. About Me

Site Stats

Total hits:
113493
Today:
13
Yesterday:
37