티스토리 뷰

도서관리 시스템 고도화(라이브러리 적용)

# 프로그램 설계

1. 고도화 개요
도서를 키워드로 검색하여 결과를 출력하는 프로그램을 개발
코드 데이터에서 출판연도별 책 목록 출력 기능
2. 기능 정의
1) memcmp

3. 자료구조 정의

# 코드 분석

1. 선언부

#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);
2. 코드입력 검증

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;
} 
3. 연도별 출력

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”);
}
4. 키워드 검색

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”);
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함