정보컴퓨터공학 - Hotel Reservation System Design
본 자료는 8페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
해당 자료는 8페이지 까지만 미리보기를 제공합니다.
8페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. Project Overview

2. 팀원 역할 분담

3. Class Design

4. Buffer Design

5. AVL List Design

6. Single Index Design

7. B-Tree Design

8. Hotel Reservation System

9. 이번 프로젝트를 수행하면서

본문내용

력 그리고 B-tree 출력이 있다. Record 출력은 데이터를 inorder 에 따라 정렬된 순서에 따라 Record가 출력된다. Index 출력은 B-tree 를 생성할 때 의 순서대로 index 를 출력하며 B-tree 출력은 데이터의 키 값을 B-tree 형으로 변환하여 출력한다. 이렇게 출력한 것을 택했다면 다음은 저장하기와 마찬가지로 주체의 타입과 버퍼의 타입을 결정을 요구한다.
이 프로그램에서는 기본적으로 280개의 데이터가
입력되도록 되어 있다. 그리고 데이터의 킷값들은
정렬되어 있지 않기 때문에 B-tree 에 따라서 정렬
되었다면 이 키 값이 순차대로 출력되는 결과를 볼
수 있을 것이다.
다음은 Manager , LengthField 를 택한 경우의 예
이다.
첫 번째 그림은 Record 에 따른 출력이다.
ManagerNum 이 키 값인데 inorder 에 따라 출력했
기 때문에 위와 같이 순서대로 정렬된 것을 알 수
있다.
두 번째 그림은 Index 출력이다. tree 의 height 와
레벨에 따라서 출력됨을 알 수 있다.
마지막 그림은 B-tree 출력이다. 이 역시 key 값이
정렬되어 tree로 만들어 졌음을 확인할 수 있다.
삭제하기
기본적으로 주체의 타입과 버퍼의 타입을 입력한다. 그리고 삭제하고자하는 Record 의 키 값을 입력한다. 다음은 Manager , LengthField 의 키 값 300을 가진 Record 를 삭제해 보자.
첫 번째 그림은 300을 삭제하기 전의 B-tree 파일이다. 파란색으로 된 부분이 300이 위치해 있던 곳이다. 12C 를 10진법으로 고치면 300인 걸 알 수 있다.
두 번째 그림은 300을 삭제한 후의 B-tree 파일이다. 파란색으로 된 부분은 삭제하기 전의 300이 있던 곳인데 지금은 300을 삭제했기 때문에 다른 값인 12B, 즉 키값 299가 위치해 있음을 알 수 있다.
300의 키를 가진 데이터를 삭제 했기 때문에 B-tree 가 변경되어서 위와 같은 결과가 나오는 것이다. 다음의 B-tree 출력 결과를 통해 확실히 확인해 볼 수 있다.
검색하기
기본적으로 주체의 타입과 버퍼의 타입을 입력한다. 그리고 검색하고자하는 Record 의 키 값을 입력한다. 다음은 Manager, LengthField 의 키 값 31을 가진 Record 를 검색해 보자.
위와 같이 31번의 ManagerNum(키 값)을 가진 데이터가 제대로 출력됨을 알 수 있다.
추가하기
기본적으로 주체의 타입과 버퍼의 타입을 입력한다. 그리고 원래는 새로운 데이터를 입력해야 하지만 여기서는 20개의 데이터를 자동으로 입력하도록 되어 있다. 그렇기에 추가하기를 누르면 원래의 280개의 데이터에 20개의 데이터가 추가되도록 설계되어 있다. 불러오기를 통하여 확인해보면 총 300개의 데이터가 있음을 알 수 있다.
나가기
프로그램을 종료한다.
설명
이 프로그램은 호텔 예약 시스템을 각각 매니저, 손님, 방(호텔) 파트로 나누어서 구현하였다. 각 클래스는 서로 방의 번호(공통키)를 공유함으로써 참조가 가능하다 그리고 각 클래스마다 고유의 키를 가져서 각자의 명령을 수행한다.
이러한 클래스 디자인을 데이터로 저장하기 위해 버퍼 클래스를 사용하였다. 버퍼는 가변길이와 고정길이의 분류를 통해 설계하였다. 가변길이일 때도 lengthfield 와 delimfield 의 경우로 분류하였다. 버퍼 클래스는 최상위 클래스 IO buffer 클래스를 상속하여서 read 및 write 그리고 pack, unpack 함수가 다이나믹 바인딩 되도록 하였다.
그리고 데이터를 추가 또는 삭제, 업데이트 하기 위하여 AVL을 사용하였는데 read operation이 두 번 수행되는 등 오버헤드가 발생하기에 index 클래스를 설계하였다. index 클래스는 각 클래스의 키 값을 인덱스로 하였는데 단일 인덱스로 설계하였다. 하지만 이 index 클래스는 데이터가 많이 입력되었을 경우에 찾는데 어려움과 수정 또는 추가할시 문제점이 생겼다.
이에 설계한 것이 B-tree 클래스이다. B-tree를 사용하여서 데이터를 추가, 삭제 하는데 생기는 인덱스의 문제점을 해결하였다.
Driver Program
프로그램은 기본적으로 GenerateObject 클래스를 통해 수행한다. GenerateObject 클래스는 기본적인 화면 구성을 출력해준다. 여기서 사용자의 선택에 따라 프로그램의 명령을 호출 할 수 있다.
전체적인 수행을 총괄하는 곳은 TestBuffer 클래스이다. 이 클래스는 두 개의 템플릿 인자를 가짐으로써 각 주체와 버퍼에 따라서 다이나믹하게 작동하도록 조절한다.
기본적인 프로그램 호출은 다음과 같다.
GenerateObject test;
test.generateRoom();
test.genereteManager();
test.genereteClient();
2)~3)은 각각의 데이터를 생성한다.
test.simulate();
프로그램을 구동한다.
void GenerateObject::selectObject(int type)
Object를 선택한다. (Manager, Room, Client)
void Manager::seleteData(Manager *manager,int type)
Buffer Type을 선택한다. (DelimField, LengthField, FixedField)
TestBuffer 클래스의 함수를 호출한다.
이번 프로젝트를 수행하면서
파일구조 2008 Term Project 의 모든 과제를 끝마쳤다. 기본적으로 상호 참조하는 클래스를 디자인하는데 여러 가지 의견이 있었지만 호텔 예약 시스템을 설계하였다. 이를 추상화하여 설계하는데 세부적으로 모든 걸 다하기에는 어려움이 있어 간략하게 기본적인 구성만 설계하였다. 그리고 버퍼클래스를 설계하면서 C++ 의 virtual 이라는 키워드에 대해서 보다 확실하게 알 수 있었다. virtual 과 상속이라는 개념을 활용하여 각 버퍼 클래스를 설계하였고 AVL, Index 를 거치면서 파일의 IO의 수행과정에 대해 보다 잘 알 수 있는 계기가 되었다.
  • 가격3,000
  • 페이지수23페이지
  • 등록일2011.04.18
  • 저작시기2011.4
  • 파일형식한글(hwp)
  • 자료번호#668317
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니