-
도서관리 시스템
학습내용 학습목표 ▪ 프로그램 설계
▪ 코드 분석▪ 목표로 하는 시스템에서 요구되는 자료구조를 설계할 수 있다.
▪ 사용 가능한 라이브러리 함수를 개발에 적용할 수 있다.프로그램 설계
1. 프로그램 개요
도서관리 프로그램이란?
☞ 도서명과 저자 등의 정보를 저장하고 저장된 도서 목록 젂체를 출력하거나 찾고자 하는 도서를 제목과 저자 정보로 검색하여 결과를 출력하는 프로그램을 개발
프로그램 구현 시 처리 대상 자료
☞ 도서명 / 가격 / 저자 / 판매수량
2. 기능 정의
항 목 내 용 메뉴 도서 입력, 도서 출력, 도서 검색, 종료 기능 도서 입력, 출력, 제목 검색, 저자 검색 요구사항 ▪ 메뉴방식으로 작업 선택
▪ 종료 메뉴 추가
▪ 책 제목 최대 50글자까지 입력 가능
▪ 저자명 최대 20글자까지 입력 가능
▪ 검색 : 제목 검색, 저자 검색
▪ 최대 100권 관리 기능3. 자료구조 정의
코드 분석
1. 선언부
#include <stdio.h> #include <string.h> 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); } }
4. 검색함수
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;
학습정리
1. 프로그램 설계
▪ 프로그램 개발 시 처리할 자료에 대한 자료구조 정의는 매우 중요함
▪ 프로그램의 기능 수행을 위한 요구분석을 주의 깊게 수행 해야 함
2. 코드 분석
▪ 라이브러리 함수 사용 시, 함수의 반환 값 매개변수 등을 정확히 확인 후 사용
▪ 라이브러리 함수는 해당 헤더 파일을 선언 후 사용
▪ strcmp()함수는 문자열을 비교하고 다른 경우는 true를 반환
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 2 - 문자 분류 데이터 변환 관련 라이브러리 (0) 2021.08.09 프로그래밍 언어 활용 part 2 - 수학 관련 라이브러리 (0) 2021.08.09 프로그래밍 언어 활용 part 2 - 문자 처리 라이브러리 (0) 2021.08.08 프로그래밍 언어 활용 part 2 - 라이브러리 (0) 2021.08.08 프로그래밍 언어 활용 part 2 - 애플리케이션 최적화 (0) 2021.08.08 댓글