티스토리 뷰

도서관리 시스템

# 프로그램 설계

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;
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함