1. 立项背景和目标:传统图书管理依赖手工登记或简陋的电子表格,存在信息混乱、查找不便、借还状态难跟踪等问题。尤其在小型图书馆、班级图书角或个人书库场景中,急需一款轻量级、易操作的管理工具。本项目旨在开发一套基于控制台的图书管理系统,实现图书信息、借阅人信息及借阅记录的全面数字化管理,提高日常借还操作效率,降低管理成本,并为后续扩展图形界面或数据库打下基础。
2. 核心功能模块:系统划分为三大管理模块。(1)图书管理:支持图书的添加(自动生成编号B1001起)、删除(仅可删除未借出图书)、修改(书名/作者/ISBN)及多条件模糊查询(编号/书名/作者/ISBN),并可展示全部藏书及借阅状态;(2)借阅人管理:支持借阅人的添加(自动生成编号R2001起)、删除(需无未还图书)、修改(姓名/联系方式)及关键词查询,并可展示所有读者;(3)借阅管理:支持借书操作(检查读者和图书有效性、图书是否可借,生成借阅记录并更新图书状态)、还书操作(按记录编号归还,记录归还日期并更新图书状态),以及按读者、按图书查询历史记录,并展示全部借阅流水。
3. 业务流程:典型借书流程为:管理员选择“借书” → 输入读者编号和图书编号 → 系统校验双方存在且图书未被借出 → 生成唯一记录编号(L3001起)并记录当前日期 → 标记图书为“已借出” → 反馈成功。还书流程为:输入借阅记录编号 → 校验记录有效且未归还 → 记录当前日期为归还日期 → 标记图书为“可借” → 完成闭环。所有操作均通过层级菜单引导,确保流程清晰可追溯。
1. 整体架构和设计思路:采用面向对象分层设计,核心业务类LibrarySystem作为门面,聚合三个实体类(Book、Reader、BorrowRecord)的vector容器,并统一管理业务逻辑。各实体类封装自身属性与显示方法,保证数据内聚。辅助函数(getCurrentDate、trim)提供通用服务。技术栈完全基于C++标准库,利用vector实现动态数据存储,string处理文本信息,algorithm辅助查找,iomanip格式化表格输出。系统采用内存存储,适用于小规模场景;代码结构清晰,各功能独立封装,便于后续移植到数据库或GUI框架。
2. “我”的负责模块和结果:本人独立完成本项目的全部需求分析、代码编写、测试与文档整理。具体成果包括:(1) 设计并实现了3个实体类与1个核心管理类,共计约450行C++代码;(2) 实现了完整的增删改查功能,覆盖图书、读者、借阅记录三个维度,功能点总计超过15个;(3) 设计了自动编号生成机制(图书B、读者R、记录L*),确保数据唯一性;(4) 实现了借还业务闭环,包括状态同步校验(如禁止删除已借出图书、禁止重复借出等);(5) 内置初始演示数据(2本图书、2位读者),开箱即用;(6) 所有菜单交互逻辑自洽,输入容错处理完善,经手动测试覆盖主要流程,功能正确率100%。该项目有效锻炼了C++面向对象编程和系统设计能力,可作为小型管理系统的参考模板。