dallae_log
Home
  • 분류 전체보기 (102)
    • Blog (82)
      • 생활코딩 - 자바스크립트 기본 (19)
      • 노마드코더 - 초보자를 위한 바닐라 자바스크립트 (20)
      • JAVA기반 스마트웹 개발2021 (43)
    • 🦄 (4)
    • Diary (16)
    • 🎁 (0)
Home
  • 분류 전체보기 (102)
    • Blog (82)
      • 생활코딩 - 자바스크립트 기본 (19)
      • 노마드코더 - 초보자를 위한 바닐라 자바스크립트 (20)
      • JAVA기반 스마트웹 개발2021 (43)
    • 🦄 (4)
    • Diary (16)
    • 🎁 (0)
블로그 내 검색
Instagram

dallae_log

안녕 난 달래야🐣

  • Blog/JAVA기반 스마트웹 개발2021

    프로그래밍 언어 활용 part 2 - 도서관리 시스템 고도화(파일 처리)

    2021. 8. 9.

    by. 고구마달랭이

    도서관리 시스템 고도화(파일 처리)

    학습내용 학습목표
    ▪ 프로그램 설계
    ▪ 코드 분석
    ▪ 정렬 관련 라이브러리 함수를 사용하여 프로그램을 구현할 수 있다.
    ▪ 사용 가능한 라이브러리 함수를 개발에 적용할 수 있다.

    프로그램 설계

     

    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

    댓글

    관련글

    • 프로그래밍 언어 활용 part 2 - 주소록 관리 시스템 2021.08.10
    • 프로그래밍 언어 활용 part 2 - 시간 관련 라이브러리 2021.08.10
    • 프로그래밍 언어 활용 part 2 - 파일 입출력 라이브러리(응용) 2021.08.09
    • 프로그래밍 언어 활용 part 2 - 파일 입출력 라이브러리(기초) 2021.08.09
    맨 위로
전체 글 보기
  • Github
  • Portfolio
  • Mail
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
고구마달랭이
내 꿈은 억만장자

티스토리툴바