고도화 개요
- 베스트셀러 Top3 도서의 제목을 출력하는 기능
- 도서 데이터를 동적할당을 이용하여 저장
프로그램 구현 시 처리 대상 자료 |
- 도서명 - 가격 - 코드 - 저자 - 판매수량 - 베스트셀러 |
기능 정의
- 베스트셀러 Top3 출력
- 동적메모리를 할당하여 저장(필요한 만큼 데이터를 사용)
- 연속 입력 기능, 출력 메뉴 연속 사용 기능
고도화 방법
베스트셀러 출력 | 메모리 공간 활용 | 연속 입·출력 |
- qsort함수를 이용한 판매수량 정렬 | - 동적 메모리 할당을 이용한 요구 메모리축속 | - 무한 반복 루프로 구현 |
자료
typedef struct book
{
char bookTitle[50];
char bookAuthor[20];
int boolPrice;
int bookSale;
char bookCode[8];
} BOOK;
int main()
{
int sel, totalCBnt = 0;
BOOK *myBook;
myBook = (BOOK*)calloc(2, sizeof(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)); // mb의 공간에 대하여 공간확보를 위한 재할당
중략
}
} while(yn == 'y');
*cn = cnt;
return mb;
}
#include <conio.h>
BOOK inBook(BOOK* mb, int* cn)
{
char yn;
do
{
while(1)
{
printf("\n책코드 : ");
중략
printf("\n 계속 입력하시겠습니까?(Y/N) ");
yn = getche(); // 버퍼가 없는 함수이기 때문에 누르자마자 엔터없이 입력이 종료가 됨
cnt++;
} while (yn == 'y');
*cn = cnt;
return mb;
}
}
'프로그래밍 언어 공부 > C' 카테고리의 다른 글
텍스트 파일 입출력(응용) (0) | 2022.01.18 |
---|---|
파일 입출력 라이브러리(Basic Step) (0) | 2022.01.17 |
함수 포인터(Function Pointer) (0) | 2022.01.15 |
동적 메모리 (0) | 2022.01.15 |
수학 관련 라이브러리 (0) | 2022.01.13 |