图书借阅管理系统
这是一个使用C语言实现的图书借阅管理系统,提供了完整的图书管理功能。
功能特性
1. 图书信息录入
- 录入图书书名、ISBN和库存量
- 支持重复ISBN的库存更新
- 自动记录图书总数量
2. 借书操作
- 通过ISBN查找图书
- 检查库存可用性
- 记录借阅人信息和借阅日期
- 自动设置30天归还期限
- 实时更新库存状态
3. 还书操作
- 通过ISBN和借阅人姓名查找借阅记录
- 自动检查是否逾期
- 更新库存状态
- 标记借阅记录为已归还
4. 逾期记录管理
- 显示所有逾期未还的图书
- 计算逾期天数
- 提供详细的逾期信息
5. 数据持久化
- 自动保存图书和借阅数据到文件
- 程序启动时自动加载历史数据
- 数据文件:
books.dat和records.dat
编译和运行
编译程序
gcc library_system.c -o library_system
运行程序
./library_system
系统菜单
程序启动后会显示以下菜单:
=== 图书借阅管理系统 ===
1. 图书信息录入
2. 借书操作
3. 还书操作
4. 显示逾期未还记录
5. 显示所有图书
6. 显示所有借阅记录
0. 退出系统
======================
使用说明
添加图书
- 选择菜单选项
1 - 输入图书书名
- 输入ISBN(国际标准书号)
- 输入库存数量
- 如果ISBN已存在,可选择更新库存
借书
- 选择菜单选项
2 - 输入要借阅的图书ISBN
- 输入借阅人姓名
- 系统会自动检查库存并创建借阅记录
还书
- 选择菜单选项
3 - 输入要归还的图书ISBN
- 输入借阅人姓名
- 系统会更新库存并检查是否逾期
查看逾期记录
- 选择菜单选项
4 - 系统会显示所有逾期未还的图书信息
- 包括借阅人、ISBN、借阅日期、应还日期和逾期天数
数据结构
图书结构体 (Book)
typedef struct {
char title[MAX_TITLE_LENGTH]; // 书名
char isbn[MAX_ISBN_LENGTH]; // ISBN
int stock; // 当前库存
int total_copies; // 总数量
} Book;
借阅记录结构体 (BorrowRecord)
typedef struct {
char borrower_name[MAX_NAME_LENGTH]; // 借阅人姓名
char book_isbn[MAX_ISBN_LENGTH]; // 图书ISBN
time_t borrow_date; // 借阅日期
time_t due_date; // 应还日期
int is_returned; // 是否已归还
} BorrowRecord;
系统限制
- 最大支持1000种图书
- 最大支持500条借阅记录
- 书名最大长度100字符
- ISBN最大长度20字符
- 借阅人姓名最大长度50字符
- 借阅期限固定为30天
注意事项
- 程序会自动保存数据,退出时选择选项
0 - 数据文件会在程序首次运行时自动创建
- 请确保有足够的磁盘空间存储数据文件
- 建议定期备份数据文件
技术特点
- 使用C语言标准库
- 支持中文输入输出
- 二进制文件存储,数据安全
- 内存高效的数组实现
- 完整的错误处理机制