티스토리 뷰

도서관리 시스템
# 프로그램 설계
1. 프로그램 개요

1) 선언부
2) main()함수
3) 입력함수
4) 출력함수
5) 검색함수
도서관리 프로그램이란?
도서명과 저자 등의 정보를 저장하고 저장된 도서 목록 젂체를 출력하거나 찾고자 하는 도서를 제목과 저자 정보로 검색하여 결과를 출력하는 프로그램을 개발
프로그램 구현 시 처리 대상 자료
도서명,가격,저자,판매수량
2. 기능 정의도서명과 저자 등의 정보를 저장하고 저장된 도서 목록 젂체를 출력하거나 찾고자 하는 도서를 제목과 저자 정보로 검색하여 결과를 출력하는 프로그램을 개발
프로그램 구현 시 처리 대상 자료
도서명,가격,저자,판매수량
메뉴 : 도서 입력, 도서 출력, 도서 검색, 종료
기능 : 도서 입력, 출력, 제목 검색, 저자 검색
요구사항
• 메뉴방식으로 작업 선택
• 종료 메뉴 추가
• 책 제목 최대 50글자까지 입력 가능
• 저자명 최대 20글자까지 입력 가능
• 검색 : 제목 검색, 저자 검색
• 최대 100권 관리 기능
3. 자료구조 정의기능 : 도서 입력, 출력, 제목 검색, 저자 검색
요구사항
• 메뉴방식으로 작업 선택
• 종료 메뉴 추가
• 책 제목 최대 50글자까지 입력 가능
• 저자명 최대 20글자까지 입력 가능
• 검색 : 제목 검색, 저자 검색
• 최대 100권 관리 기능

#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);
}
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;
}
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;
}
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);
}
}
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.07 |
---|---|
수학 관련 라이브러리 (0) | 2021.08.07 |
문자처리 라이브러리 (0) | 2021.08.07 |
라이브러리 (0) | 2021.08.07 |
애플리케이션 최적화 (0) | 2021.08.07 |