티스토리 뷰
도서관리 시스템 고도화(동적메모리)
# 프로그램 설계
1. 고도화 개요
베스트셀러 Top3 도서의 제목을 출력하는 기능
도서 데이터를 동적할당을 이용하여 저장
프로그램 구현 시 처리 대상 자료
• 도서명
• 저자
• 가격
• 판매수량
• 코드
• 베스트셀러
2. 기능 정의도서 데이터를 동적할당을 이용하여 저장
프로그램 구현 시 처리 대상 자료
• 도서명
• 저자
• 가격
• 판매수량
• 코드
• 베스트셀러
1) 메뉴
2) 기능
3) 고도화 내용
4) 고도화 방법
3. 자료구조 정의
2) 기능
도서 입력, 도서 출력, 제목 검색, 저자검색(검색기능키워드검색), 출판연도별 목록 출력, 베스트셀러 출력
3) 고도화 내용
베스트셀러 Top3 출력
동적메모리를 할당하여 저장
연속 입력 기능, 출력 메뉴 연속 사용 기능
동적메모리를 할당하여 저장
연속 입력 기능, 출력 메뉴 연속 사용 기능
4) 고도화 방법
3. 자료구조 정의
1) 자료
2) 자료구조
2) 자료구조
struct book {
char bookTitle[50];
char bookAuthor[20];
int bookPrice;
int bookSale;
char bookCode[8];
};
char bookTitle[50];
char bookAuthor[20];
int bookPrice;
int bookSale;
char bookCode[8];
};
# 코드 분석
1. 동적할당
2. 베스트셀러 출력
int main()
{
int sel, totalBCnt=0;
BOOK *myBook;
myBook = (BOOK *)calloc(2,sizeof(BOOK));
typedef struct book {
char bookTitle[50];
char bookAuthor[20];
int bookPrice;
int bookSale;
char bookCode[9];
}BOOK;
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;
}
case 3 :
qsort(mb, cnt+1, sizeof(BOOK), compare);
printf(‚\n-----------------------------------\n‛);
printf(‚----------BestSeller Top 3----------‛);
printf(‚\n-----------------------------------\n‛);
for (int i = 0; i < 3 ; i++)
{
printf(‚Top %d : %30s Sale: %d\n‛, i+1, mb[i].bookTitle,
mb[i].bookSale );
}
printf(‚\n-----------------------------------\n‛);
break;
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;
}
'JAVA기반스마트웹개발2021 > 프로그래밍언어 활용' 카테고리의 다른 글
파일 입출력 라이브러리(응용) (0) | 2021.08.08 |
---|---|
파일 입출력 라이브러리(기초) (0) | 2021.08.08 |
함수 포인터 (0) | 2021.08.08 |
동적 메모리 (0) | 2021.08.08 |
도서관리 시스템 고도화(라이브러리 적용) (0) | 2021.08.08 |
Blog is powered by
Tistory / Designed by
Tistory