스마트웹 개발2021/프로그래밍 언어활용

도서관리 시스템고도화(동적메모리)

선물공룡디보 2021. 8. 9. 20:01

프로그램 설계

    고도화 개요
  • 베스트셀러 Top3 도서의 제목을 출력하는 기능
  • 도서 데이터를 동적할당을 이용하여 저장

고도화 방법

  • 베스트셀러 출력
  • 도서 데이터를 동적할당을 이용하여 저장
  • 메모리 공간 활용
  • 연속 입∙출력

자료구조 정의

동적할당

BOOK* inBook(BOOK* mb, int* cn){
  char yn;
  int number;
  int cnt;
  cnt = *cn;
do{
  while(1){
  mb = (BOOK *)realloc(mb,sizeof(BOOK)*(cnt+2));
  중략
}while(yn == 'y');
 *cn = cnt;
 return mb;
}

베스트셀러 출력

int compare(const void *a, const void *b){
   BOOK* ptr_a = (BOOK *)a;
   BOOK* ptr_b = (BOOK *)b;

   if (ptr_a->bookSale < ptr_b->bookSale) return 1;
     else if (ptr_a->bookSale == ptr_b->bookSale) return 0;
     else return -1;
}

 

정리

    프로그램 설계
  1. 프로그램 개발 시 작업 목표에 맞게 사용할 라이브러리 함수와 자료구조를 결정해야 함
  2. 동적할당은 프로그램 실행 시 할당하는 메모리 공간이다.
  3. 함수포인터를 이용하여 정렬함수를 사용할 수 있다.
    코드 분석
  1. strtok는 토큰을 이용하여 문자열을 분리할 수 있는 함수임
  2. strcspn은 특정 문자로 이루어진 문자열인지 검사하는 것이 가능한 함수임
  3. strstr은 키워드 검색에 유용한 함수임