티스토리 뷰
도서관리 시스템 고도화(라이브러리 적용)
# 프로그램 설계
1. 고도화 개요
도서를 키워드로 검색하여 결과를 출력하는 프로그램을 개발
코드 데이터에서 출판연도별 책 목록 출력 기능
2. 기능 정의코드 데이터에서 출판연도별 책 목록 출력 기능
1) memcmp
3. 자료구조 정의# 코드 분석
1. 선언부
2. 코드입력 검증
3. 연도별 출력
4. 키워드 검색
#include
#include
typedef struct book{
char bookTitle[50];
char bookAuthor[20];
int bookPrice;
int bookSale;
char bookCode[9]; // xxxxxxx 북코드
}BOOK;
int inBook(BOOK* , int);
void outBook(BOOK* , int);
void searchBook(BOOK* , int);
int inBook(BOOK* mb, int cnt)
{
int number;
while(1){
printf("\n책코드 : ");
gets(mb[cnt].bookCode);
if (strlen(mb[cnt].bookCode) == 8)
{
number = strcspn(mb[cnt].bookCode, "0123456789-");
if (number==8 && number != 0) break;
}
printf(“\n검색할 출판연도를 입력하세요: ”);
gets(sKey);
printf(“\n-----------------------------------”);
printf(“\n%10s %30s\n”, “코 드”, “제 목”);
for(i=0;i < cnt;i++) {
year = strtok(mb[i].bookCode,“-”);
if (!strcmp(year,sKey)) {
printf(“\n%10s %30s”,mb[i].bookCode, mb[i].bookTitle);
check++;
}
}
if(check == 0) {
printf(“\n일치하는 책이 없습니다. \n”);
}
printf(“\n검색할 제목을 입력하세요: ”);
gets(sTitle);
for(i=0;i < cnt;i++) {
if (strstr(mb[i].bookTitle,sTitle)!=NULL) {
printf(“\n\n-----------------------------------”);
printf(“\n코 드 : %s \n”,mb[i].bookCode);
printf(“제 목 : %s \n”,mb[i].bookTitle);
printf(“저 자 : %s \n”,mb[i].bookAuthor);
printf(“가 격 : %d \n”,mb[i].bookPrice);
printf(“판매수량 : %d \n”,mb[i].bookSale);
check++;
}
}
if(check) {
printf(“\n-----------------------------------”);
printf(“\검색 건수 : %d \n”, check);
}
else {
printf(“\n-----------------------------------”);
printf(“\n일치하는 책이 없습니다. \n”);
}
'JAVA기반스마트웹개발2021 > 프로그래밍언어 활용' 카테고리의 다른 글
함수 포인터 (0) | 2021.08.08 |
---|---|
동적 메모리 (0) | 2021.08.08 |
문자열 비교 검색 라이브러리 (0) | 2021.08.08 |
문자 분류 데이터 변환 관련 라이브러리 (0) | 2021.08.07 |
수학 관련 라이브러리 (0) | 2021.08.07 |