π Course Project: Computer Programming (Dec 2023) π Date: December 2023
A robust, console-based Library Management System developed in C++. This application handles book inventory, reader management, and borrowing records using file-based persistence.
This project was developed as a group assignment for the Computer Programming course.
My Key Contributions:
- Search Engine (
FindModule): Designed and implemented the core search logic, allowing users to find books by Title, Author, Publisher, or ISBN with fuzzy matching support. - Admin Management (
AdminModule): Developed the full CRUD (Create, Read, Update, Delete) functionality for the book inventory, enabling administrators to manage the library database efficiently.
- Smart Search: Find books by Title, Author, Publisher, or ISBN (supports spaces in keywords).
- Inventory Control: Real-time updates of book stock when books are borrowed or returned.
- Role Management: Distinct functionalities for Admins (Book Management) and Readers (Borrowing/Returning).
- Data Persistence: Uses text files (
.txt) to permanently store data, ensuring records are saved between sessions.
- Language: C++ (Standard 11/14/17)
- Build System: CMake
- IDE: CLion
- Data Handling: File I/O with Tab-Separated Values (TSV) to handle complex string inputs.
- Clone the repository:
git clone [https://github.com/YOUR_USERNAME/LibrarySystem.git](https://github.com/YOUR_USERNAME/LibrarySystem.git)
- Open in CLion (or compile via CMake).
- Build & Run.
- Note: Ensure the
data/folder is in the working directory so the program can load the databases.
- Note: Ensure the
- For Admins: Log in to access the Book Management Menu. You can add new books, update existing stock/info, or delete obsolete records.
- For Readers: Use the Search function to find books and proceed to Borrow or Return using the Book ID.
The project follows a modular C++ structure separating logic, headers, and data.
βββ data/
β βββ books.txt # Main book database
β βββ borrowing_history.txt # Logs of all transactions
β βββ content.txt # Detailed descriptions of books
β βββ readers.txt # Registered reader accounts
βββ include/ # Header files (.h)
β βββ Admin.h
β βββ Book.h
β βββ BorrowReturn.h
β βββ Find.h
β βββ Ranking.h
β βββ Reader.h
β βββ User.h
βββ src/ # Source files (.cpp)
β βββ Admin.cpp # Admin logic (Add/Delete/Update books)
β βββ Book.cpp
β βββ BorrowReturn.cpp
β βββ Find.cpp # Search implementation
β βββ Ranking.cpp
β βββ Reader.cpp
βββ CMakeLists.txt
βββ main.cpp # Entry point