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