[16주차] ppt발표자료

# 오늘은 방과후 학교 도서관에서 이번주에 있을 프로젝트 발표자료를 만들었다.
발표자료 ppt만 만들면 이번학기 프로젝트도 끝이다ㅎㅎㅎㅎㅎㅎ
프로젝트 때문에 졸업 못할까봐 은근히 스트레스를 받았었는데...ㅠㅠ
발표내용은 프로그램 개요, 프로그램 구성, 결과를 넣었다.
저번학기때 교수님께서 강조하셨던 '도식화'를 위해 만들다보니 자료가 많이 간단해졌다.-0-0-0-;;
이번주에 있을 프로젝트 발표까지도 무사히 마쳤으면 좋겠다^-^ㅋㅋㅋ


* 프로젝트발표자료 → aaa.ppt

by 이현미 | 2008/12/02 23:29 | Java 프로젝트 | 트랙백 | 덧글(0)

[16주차] 프로젝트 결과보고서

결과보고서 → project_report.hwp

(1) 프로젝트 제목

자바를 이용한 패스트푸드 주문 프로그램

(2) 구현 기능
1. 회원 : 로그인 → 주문(메뉴선택), 포인트 적립 5%
2. 비회원 : 주문(메뉴선택)
3. 관리자 : 회원관리(회원조회, 삭제)
4. 회원가입 : ID, 비밀번호, 이름 입력

(4) 동작 과정 및 설명

(3) 프로그램 개요
1. 클래스

Login

메인화면에 관한 인터페이스, 이벤트 구현

Admin

회원 조회, 삭제 인터페이스 구현

MemberResi

회원가입에 관한 인터페이스 구현

Menu1

주문메뉴 창에 대한 인터페이스 구현

DataBase

mysql과 연동

2. Listener

AdminHandler

회원 조회, 삭제에 대한 이벤트 구현

MemberHandler

회원가입에 대한 이벤트 구현

MenuActionListener

메뉴의 수량에 대한 이벤트 처리

MenuItemListener

메뉴의 선택에 대한 이벤트 처리


(5) 결과
1. 업무 분담 결과

계 획

결 과

강동성

seller, Menu 클래스 및 하위 클래스 구현

데이터베이스에 대한 전반적 내용 및 Database클래스

이현미

프로그램 틀 구상 및 디자인, Member, NoMember 클래스 구현

인터페이스, Menu클래스


→ 처음에 계획 했던 것과 반대로 업무를 분담하여 클래스를 구성하였다.
→ 서로 각자 맡은 부분을 충실히 수행하였다.


2. 구현 기능 결과

잘 이루어진 부분

잘 안 이루어진 부분

a. 데이터베이스의 연동 및 작동

b. 회원 관리(수정, 삭제용이)

a. 관리자 모드의 주문 내역 확인 부분을 구현하지 못함

b. 회원가입 형태가 단순화 되었다.

c. 관리자 로그인 부분


# 오늘은 조원인 동성오빠와 함께 프로젝트 결과보고서를 썼다. 계획했던 것에 비해 결과는 많이 부족하여 부끄럽기도 했지만, 나름 열심히 했다고 생각한다. 능력에 비해 프로젝트는 너무 어렵다.ㅠㅠ 하지만 다행히도 2인 1조라서 1학기 때에 비해 업무를 분담하여 수월하기도 하였다.

by 이현미 | 2008/11/30 23:13 | Java 프로젝트 | 트랙백 | 덧글(1)

[15주차] 13장 복습

# 면접본다고 수업 한 주 빠지고.. 오늘 또 면접보러 가면서;; 그동안 면접 준비하느라고 공부 할 시간이 부족하였다.ㅠㅠ13장을 저저번주에 배운 내용이라 기억이 잘 안나서 다시한번 보면서 주석을 달아가며 훑어보았다.

<thread>

- 멀티쓰레드 프로그램 : 동시에 두 가지 일을 진행시키는 프로그램

1. Thread 클래스를 상속하는 방법 MultiCounter.java

public class MultiCounter{
 public static void main(String args[]){
  Thread thread1 = new CountThread1();
  thread1.start();    //start메소드를 이용하여 실행한다
  Thread thread2 = new CountThread2();
  thread2.start();
 }
}

class CountThread1 extends Thread{    //java.lang.Thread를 상속하여 쓰레드 클래스 만들기
 public void run(){    //run 메소드를 오버라이딩하여 정의해야 함, 쓰레드가 시작될 때 자동 실행됨
  for(int i = 100; i<110;i++){
   System.out.println("지금은" +i+"입니다.");
   try{
    Thread.sleep(1000);
   }catch(InterruptedException e){System.out.println(e.getMessage());}    //예외처리
  }
 }
}

class CountThread2 extends Thread{
 public void run(){
  for(int i = 0; i<10; i++){
   System.out.println("지금은"+i+"입니다.");
   try{
    Thread.sleep(1000);
   }catch(InterruptedException e){System.out.println(e.getMessage());}
  }
 }
}

2. Runnable 인터페이스를 구현하는 방법 MultiCounter2.java
public class MultiCounter2{
 public static void main(String args[]){
  CountRunnable1 cr1 = new CountRunnable1();    //Runnable 클래스의 객체를 생성
  Thread thread1 = new Thread(cr1);    //cr1을 생성자의 인수로하여 Thread객체 생성
  thread1.start();
  CountRunnable2 cr2 = new CountRunnable2();
  Thread thread2 = new Thread(cr2);
  thread2.start();
 }
}
class CountRunnable1 implements Runnable{    //Runnable 인터페이스를 구현하는 클래스를 만든다.
 public void run(){
  for(int i = 100; i<110; i++){
   System.out.println("지금은" +i+"입니다.");
   
  }

 }
}
class CountRunnable2 implements Runnable{
 public void run(){
  for(int i = 0; i<10; i++){
   System.out.println("지금은"+i+"입니다.");
   
  }
 }
}


<네트워크 프로그래밍>
- InetAddress 클래스 : 32비트 주소체계인 ip주소 엑세스
InetAddressExam.java

# 교수님께서 가르쳐주신 부분과 수정해야 될 부분을 고쳤다.
import java.net.*;    //네트워크클래스 import

public class InetAddressExam{
 InetAddress address=null;
 public static void main(String args[]){ 
  InetAddressExam ex = new InetAddressExam();
  ex.getLocalHost();
  ex.getAddressInfo(args[0]);    // 프롬프트창에서 입력받은 주소의 정보를 받는다.
 }
 public void getLocalHost(){    //로컬호스트에 대한 InetAddress 클래스 인스턴스 반환
  System.out.println("Local Host : ");
  try{
   address = InetAddress.getLocalHost();
   System.out.println(" \t"+address.getHostName());    //호스트네임 출력
   System.out.println(" \t"+address.getHostAddress());    //ip주소 출력
  }catch(UnknownHostException uhe){    //주소를 가져올 때 예외가 발생
   System.out.println("알 수 없는 호스트 이름 입니다.");}  
 }
 
 public void getAddressInfo(String host){    //입력한 주소를 인수로 받는다.
  System.out.println(" \n"+host+" : ");
  try{
   address = InetAddress.getByName(host);
   System.out.println(" \t"+address.getHostName());
   System.out.println(" \t"+address.getHostAddress());
  }catch(UnknownHostException uhw){
   System.out.println("알 수 없는 호스트 이름 입니다.");}
 }
}

by 이현미 | 2008/11/25 20:48 | Java 프로젝트 | 트랙백 | 덧글(1)

[15주차] 프로젝트이야기 5

- 선택한 메뉴를 분별하기 위한 소스
class MenuItemListener implements ItemListener{
  public void itemStateChanged(ItemEvent ie){
   Object s = ie.getSource();
   int i = ie.getStateChange();
    if (s ==juice1){
     if(i==1){ drink +="콜라 ";}
     else{drink = " ";}        // 선택을 해제 했을 때 내용 삭제를 위해
    }else if (s ==juice2){
     if(i==1){ drink +="사이다 ";}
     else{drink = " ";}
    }else if(s==juice3){
     if(i==1){ drink += "환타 ";}
     else{drink = " ";}
    }else if(s==juice4){
     if(i==1){ drink += "블루베리 에이드 ";}
     else{drink = " ";}
    }............생략

- 텍스트 필드에 적힌 수량을 변수에 저장하기 위한 소스
class MenuActionListener implements ActionListener{
  public void actionPerformed(ActionEvent ae){
   drinkCount1= Integer.parseInt(juiceF1.getText());    // 텍스트필드의 내용을 가져와 int형 변환 뒤 변수에 저장
   drinkCount2= Integer.parseInt(juiceF2.getText());
   drinkCount3= Integer.parseInt(juiceF3.getText());
   drinkCount4= Integer.parseInt(juiceF4.getText()); ........... 생략

- 총 주문금액을 계산하기 위한 소스
sum = (drinkCount1*1300+ drinkCount2*1300+ drinkCount3*1300+ drinkCount4*2300+
     burgerCount1*3000+burgerCount2*3400+burgerCount3*3500+burgerCount4*3000+dessertCount1*1500+dessertCount2*1000+dessertCount3*1500+
     dessertCount4*1500+chickenCount1*2000+chickenCount2*2000);
  
   order.setText("총 주문금액 : " +sum);
# 선택한 메뉴와 갯수에 따른 주문금액을 계산하기 위해 프로그래밍을 하던 도중 많은 에러가 발생하였다;; 그 문제는 각각의 텍스트필드에 '0'이라는 값을 셋팅해주므로서 해결이 되었고, 총 주문금액을 따로 출력하기 위한 TextArea를 하나 더 추가해서 출력해야겠다.

- 관리자 로그인시 회원관리 및 요금조회를 위한 인터페이스 작성

by 이현미 | 2008/11/23 21:46 | Java 프로젝트 | 트랙백 | 덧글(1)

[11주차] 프로젝트이야기4

<주문 화면>
class MenuItemListener implements ItemListener{
  public void itemStateChanged(ItemEvent ie){
   Object s = ie.getSource();    //변수명을 가져와 저장
   int i = ie.getStateChange();    //getStateChange(); 이 메소드는 컴포넌트의 변화가 생길 때 int형을 반환한다.
                                             //선택시 1과 해제시 2를 반환
    if (s ==juice1 && i==1){
     drink ="콜라";
    }else if (s ==juice2 && i==1){
     drink = "사이다 ";
    }else if(s==juice3 && i==1){
     drink = "환타 ";
    }else if(s==juice4 && i==1){
     drink = "블루베리 에이드 ";
    }
    /*if (s ==burger1){
     burger += "불고기버거 ";
    }else if (s ==burger2){
     burger += "치즈버거 ";
    }else if(s==burger3){
     burger += "치킨버거 ";
    }else if(s==burger4){
     burger += "쉬림프버거 ";
    }
    order.setText(burger+"\n");
    order.setText(drink+"\n");
    */
    order.setText("음료수 : "+drink);
  }
 }

# 인터페이스 구현의 '노가다'와 위의 부분을 짜느라고 API를 뒤져가며 하느라 많은 시간을 소모하였다.. 문제는 체크박스가 선택된 것을 어떻게 변수에 저장할 것인가 하는 점이다. 하나를 선택했을 시에는 간단하지만. 2, 3가지를 선택할 수 있으므로.. ㅠㅠ위의 코딩에서 여러가지 단점이 발견되었다. (문제1)선택된 메뉴의 모든 내용을 출력하는 것이 아니라 컴포넌트가 선택되었을 당시의 한가지 메뉴만 출력한다는 점 (문제2)메뉴를 여러개 선택하였을 때 어떻게 처리해야 하는가.... (문제3)TextArea에 출력되는 내용들이 개행되지않고 한줄로 줄줄이 출력된다는 점// 이 문제점들은 조원과 함께 상의해야 될 듯하다-_ㅠ

by 이현미 | 2008/11/18 22:31 | Java 프로젝트 | 트랙백 | 덧글(1)

◀ 이전 페이지          다음 페이지 ▶