티스토리 뷰
도서관리 시스템
# 프로그램 설계
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;
}
}
'JAVA기반 스마트 개발2021 > 프로그래밍 언어활용' 카테고리의 다른 글
문자 분류 데이터 변환 관련 라이브러리 (0) | 2021.08.16 |
---|---|
수학 관련 라이브러리 (0) | 2021.08.16 |
문자처리 라이브러리 (0) | 2021.08.15 |
라이브러리 (0) | 2021.08.08 |
애플리케이션 최적화 (0) | 2021.08.08 |