Ⅰ. 레코드관리기 알고리즘 개요
1. 블록상의 slot을 위한 클래스 정의
각 블록에는 레코드의 시작 주소 및 키 값을 저장하고 있는 slot이 후미에서부터 동적으로 생성된다. 이를 위하여 클래스 상에는 레코드의 시작 주소를 저장할 Raddr 및 키 값을 저장 할 Rkey 배열을 선언하고, 해당 레코드에 대하여 slot상에 상기 두 배열의 인덱스를 저장하여 관리한다. 이에대한 클래스 정의는 아래와 같다.
.
.
2. 레코더 생성 시 버퍼로 활용할 클래스 정의
Ⅱ. 레코드관리기에 사용되는 함수의 설명
1. 레코드를 생성하는 함수 - void createRecord(char *name);
2. 레코드 저장을 위한 slot 설정 - void allocSlot(int key, int len, int address);
3. 레코드를 블록에 저장 - void allocSpace(RecordBlock *buf, char *name);
4. 레코드를 저장 할 블록의 주소를 탐색 - int SearchBlk(int *addr, int key, int n);
5. 블록에 레코드를 저장 - void SaveRecord(RecordBlock *buf, int address);
6. 블록을 분할하여 저장 - void splitBlock(RecordBlock *buf, int address, char *name);
7. 블록상의 첫 레코드를 반환 - RecordBlock* getFirstRd(int address);
8. 레코드를 저장할 다음 블록할당 - int getNextBlk(int address, char *name);
9. 데이터를 뒤로 미는 함수 - void pushData(int address, int len, int start, int finish, int rloc);
10. 데이터를 앞으로 미는 함수 - void pullData(int address, int len, int start, int finish, DataBlock *temp);
11. 레코드 삭제 - void deleteRecord(int key, FileDirectory *filename);
12. 레코드 수정 및 생성 - void writeRecord(FileDirectory *filename);
13. 레코드 읽기 - void readRecord(int key, FileDirectory *filename);
14. 레코드 탐색 - int searchRecord(int key, FileDirectory *filename);
Ⅲ. 데모 프로그램 결과화면
1. 디스크 생성 및 파일 생성
2. 레코드의 탐색 및 읽기/쓰기
3. 레코드의 생성 및 삭제
· 해피레포트는 다운로드 받은 파일에 문제가 있을 경우(손상된 파일/설명과 다른자료/중복자료 등) 1주일이내 환불요청 시 환불(재충전) 해드립니다.
(단, 단순 변심 및 실수로 인한 환불은 되지 않습니다.)
· 파일이 열리지 않거나 브라우저 오류로 인해 다운이 되지 않으면 고객센터로 문의바랍니다.
· 다운로드 받은 파일은 참고자료로 이용하셔야 하며,자료의 활용에 대한 모든 책임은 다운로드 받은 회원님에게 있습니다.
저작권안내
보고서 내용중의 의견 및 입장은 당사와 무관하며, 그 내용의 진위여부도 당사는 보증하지 않습니다.
보고서의 저작권 및 모든 법적 책임은 등록인에게 있으며, 무단전재 및 재배포를 금합니다.
저작권 문제 발생시 원저작권자의 입장에서 해결해드리고 있습니다. 저작권침해신고 바로가기