티스토리 뷰

728x90

도서관리 시스템

# 프로그램 설계

1. 프로그램 개요

도서관리 프로그램이란?
도서명과 저자 등의 정보를 저장하고 저장된 도서 목록 젂체를 출력하거나 찾고자 하는 도서를 제목과 저자 정보로 검색하여 결과를 출력하는 프로그램을 개발

프로그램 구현 시 처리 대상 자료
도서명,가격,저자,판매수량

2. 기능 정의

메뉴 : 도서 입력, 도서 출력, 도서 검색, 종료
기능 : 도서 입력, 출력, 제목 검색, 저자 검색
요구사항
• 메뉴방식으로 작업 선택
• 종료 메뉴 추가
• 책 제목 최대 50글자까지 입력 가능
• 저자명 최대 20글자까지 입력 가능
• 검색 : 제목 검색, 저자 검색
• 최대 100권 관리 기능

3. 자료구조 정의

1) 선언부

 

 

#include

#include

typedef struct book{

    char bookTitle[50];

    char bookAuthor[20];

    int bookPrice; int bookSale;

    }BOOK;

   

    int inBook(BOOK* , int);

    void outBook(BOOK* , int);

    void searchBook(BOOK* , int);

}

 

 

2) main()함수

 

   int main(){

   int sel, totalBCnt=0;

   BOOK myBook[100];

   while(1){ puts("\n원하는 메뉴를 선택하세요");

       puts("1. 도서 입력");

       puts("2. 도서 출력");

       puts("3. 도서 검색");

       puts("0. 종료 ");

       scanf("%d", &sel);

       fflush(stdin);

 

       switch(sel){

            case 1 : totalBCnt = inBook(myBook, totalBCnt); break;

            case 2 : outBook(myBook,totalBCnt); break;

            case 3 : searchBook(myBook,totalBCnt); break;

            case 0 : return 0;

            default : puts("0~3 사이의 메뉴번호를 선택하세요");

        }

    }  return 0;

}

 

 

3) 입력함수

 

int inBook(BOOK* mb, int cnt)

{ printf("\n책제목 : ");

gets(mb[cnt].bookTitle);

printf("저자 : ");

gets(mb[cnt].bookAuthor);

printf("가격 : ");

scanf("%d",&mb[cnt].bookPrice);

printf("재고수량 : ");

scanf("%d",&mb[cnt].bookSale);

return ++cnt;

}

 

 

4) 출력함수

 

 

void outBook(BOOK* mb, int cnt){

    int i;

    for(i=0; i < cnt;i++){

        printf("\n-----------------------------------");

        printf("\n제목 : %s \n",mb[i].bookTitle);

        printf("저자 : %s \n",mb[i].bookAuthor); printf("가격 : %d \n",mb[i].bookPrice);

        printf("수량 : %d \n",mb[i].bookSale);

    }

}

 

 

5) 검색함수

 

void searchBook(BOOK* mb, int cnt)

{

     char sTitle[50];

     int i, search;

     puts("\n원하는 메뉴를 선택하세요");

     puts("1. 제목 검색 ");

     puts("2. 저자 검색 ");

     scanf("%d", &search);

     fflush(stdin);

     switch(search){ case 1 : printf("\n검색할 제목을 입력하세요: ");

     gets(sTitle);

 

for(i=0;i < cnt;i++)

{

  if (!strcmp(mb[i].bookTitle,sTitle)) break;

  if(i < cnt){

         printf("\n-----------------------------------");

         printf("\n제목 : %s \n",mb[i].bookTitle);

         printf("저자 : %s \n",mb[i].bookAuthor);

         printf("가격 : %d \n",mb[i].bookPrice);

         printf("수량 : %d \n",mb[i].bookSale);

  }else {

         printf("\n-----------------------------------");

         printf("\n일치하는 책이 없습니다. \n");

         }

         break;

    }

}

댓글