## 프로젝트 개요
도서관에서 책을 효율적으로 관리하기 위한 함수형 프로그래밍 기반 시스템. 책 추가, 검색, 대출 상태 확인 등의 기능을 제공합니다.
## 주요 기능
- 도서 정보 입력 및 저장
- 제목/저자 기반 검색
- 대출 가능 여부 확인
- 파일 기반 데이터 저장
- 사용자 입력 오류 처리
## 사용 방법
1. F# 환경에서 파일 실행
2. 명령어로 책 추가(ADD), 검색(SEARCH), 상태 확인(CHECK) 수행
3. 도서관 데이터가 'books.json' 파일에 저장됨
## 확장 가능성
- 사용자 인증 기능 추가
- DB 연동을 통한 실시간 데이터 처리
- 대출 기간 관리 기능 구현
🔵 도서관 도서 관리 시스템
F# 예제
중급
난이도
예제
타입
10/22
등록일
도서관 도서 관리 시스템
중급태그
코드 예제
// 책 정보 타입 정의
type Book = {
Title: string
Author: string
Available: bool
}
// 파일에서 도서 목록 로드
let loadBooks () =
try
let json = System.IO.File.ReadAllText "books.json"
Newtonsoft.Json.JsonConvert.DeserializeObject<Book list> json
with
| _ -> [] // 파일 없을 시 빈 리스트 반환
// 도서 저장
let saveBooks books =
try
let json = Newtonsoft.Json.JsonConvert.SerializeObject books
System.IO.File.WriteAllText("books.json", json)
with
| ex -> printfn "저장 중 오류: %s" ex.Message
// 책 추가 함수
let addBook title author =
let newBook = { Title=title; Author=author; Available=true }
let books = loadBooks() @ [newBook]
saveBooks books
printfn "도서 '%s'가 성공적으로 등록되었습니다." title
// 책 검색 함수
let searchBooks query =
let books = loadBooks()
books |> List.filter (fun book ->
book.Title.Contains(query) || book.Author.Contains(query))
|> List.map (fun book ->
sprintf "[%s] %s - 대출 가능: %b" book.Title book.Author book.Available)
|> List.iter printfn
// 메인 함수
[<EntryPoint>]
let main _ =
printfn "=== 도서관 관리 시스템 ==="
printf "추가할 책 제목: ";
let title = System.Console.ReadLine() |> Option.ofObj
printf "저자 이름: ";
let author = System.Console.ReadLine() |> Option.ofObj
match (title, author) with
| Some t, Some a -> addBook t a
| _ -> printfn "잘못된 입력입니다."
// 검색 기능 테스트
searchBooks "파이썬"
System.Console.ReadLine() |> ignore
0
등록일: 2025년 10월 22일 02:38
언어 정보
언어
F#
카테고리
Functional
인기도
#27
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요