-
도서관리 시스템 고도화(파일 처리)
학습내용 학습목표 ▪ 프로그램 설계
▪ 코드 분석▪ 정렬 관련 라이브러리 함수를 사용하여 프로그램을 구현할 수 있다.
▪ 사용 가능한 라이브러리 함수를 개발에 적용할 수 있다.프로그램 설계
1. 고도화 내용
☞ 도서 데이터를 텍스트 파일로 저장하여 관리
☞ 유효성 검사기능 추가
☞ 프로그램 구현 시 처리 대상 자료
• 도서명 • 저자 • 가격 • 판매수량 • 코드 • 베스트셀러
2. 기능 정의
[1] 메뉴
[2] 기능
☞ 도서 입력
☞ 도서 출력
☞ 제목 검색
☞ 저자검색(검색기능키워드검색)
☞ 출판연도별 목록 출력
☞ 베스트셀러 출력
[3] 고도화 내용
☞ 텍스트 파일에 데이터 저장
☞ 유효성 검사 추가
[4] 고도화 방법
3. 자료구조 정의
코드 분석
1. 파일에 저장void saveBooks(BOOK* mb, intcnt) { FILE * fp; inti; fp= fopen(“myBooks.txt” , “w+”); if (fp== NULL) perror(“Error opening file”); else { fprintf(fp, “%d\n”, cnt); for(i=0;i<cnt;i++){ fprintf(fp,“%s %s %s %d %d\n”,mb[i].bookCode, mb[i].bookTitle, mb[i].bookAuthor, mb[i].bookPrice, mb[i].bookSale); } fclose(fp); } }
2. 파일에서 읽기
BOOK* readBooks(BOOK* mb, int* cn) { FILE * fp; int i,cnt; fp = fopen (“myBooks.txt” , “r+”); if (fp == NULL) perror (“Error opening file”); else { fscanf(fp, “%d”,&cnt); mb = (BOOK*)realloc(mb,sizeof(BOOK)*(cnt+1)); for(i=0;i<cnt;i++){ fscanf(fp, “%s %s %s %d %d”,mb[i].bookCode, mb[i].bookTitle, mb[i].bookAuthor, &mb[i].bookPrice , &mb[i].bookSale); } fclose (fp); } *cn = cnt; return mb; }
3. 선언 및 main 함수
4. 유효성 검사
학습정리
1. 프로그램 설계
▪ 프로그램 개발 시 작업 목표에 맞게 사용할 라이브러리 함수와 자료구조를 결정해야 함
▪ 유효성 검사를 위해서 다양한 함수를 적용하게 처리할 수 있다.
▪ 문자열의 길이는 strlen 함수를 이용하여 빈 입력값을 검사할 수 있다.
2. 코드 분석
▪ 파일 입출력을 위해서는 먼저 입출력을 위한 스트림을 생성해야한다.
▪ 파일 스트림 생성 시 fopen 함수를 이용하고 모드를 함수의 인수로 젂달해야한다.
▪ 형식화된 파일 입출력은 fscanf 와 fprintf 를 이용하여 처리할 수 있다.
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 2 - 주소록 관리 시스템 (0) 2021.08.10 프로그래밍 언어 활용 part 2 - 시간 관련 라이브러리 (0) 2021.08.10 프로그래밍 언어 활용 part 2 - 파일 입출력 라이브러리(응용) (0) 2021.08.09 프로그래밍 언어 활용 part 2 - 파일 입출력 라이브러리(기초) (0) 2021.08.09 프로그래밍 언어 활용 part 2 - 도서관리 시스템 고도화(동적메모리) (0) 2021.08.09 댓글