图书借阅管理系统
一、项目概述
1.1 项目简介
本项目是一款基于 Android 平台的图书借阅管理应用,采用 Kotlin 语言开发,使用 SQLite 本地数据库存储,无需后端服务器即可独立运行。应用面向大学生群体,提供图书查询、借阅管理、个人中心、通知系统等完整功能。
1.2 开发环境
- 开发语言: Kotlin
- 开发工具: Android Studio
- 最低SDK版本: API 24 (Android 7.0)
- 目标SDK版本: API 36 (Android 16)
- 编译SDK版本: API 36
- 数据库: SQLite
- UI框架: XML布局 + Material Design 3组件
1.3 技术架构
项目采用基础 MVC 架构,代码结构清晰,适合课程作业和学习参考:
- Model(模型层): 定义数据实体类(Book、Student、BorrowRecord等)
- View(视图层): XML布局文件和Activity界面
- Controller(控制层): Activity处理业务逻辑,DAO处理数据访问
二、页面预览










三、功能模块详解
3.1 用户认证模块
- 登录功能: 支持学号/账号和密码登录,验证通过后保存登录状态
- 注册功能: 学生可填写学号、姓名、密码、院系等信息进行注册
- 测试账号 :
- 管理员:
admin/123456 - 学生:
2021001/123456
- 管理员:
3.2 图书查询模块
- 首页展示: 展示热门推荐(横向滚动)和新书上架(纵向列表)
- 分类浏览: 按图书分类(计算机、文学、历史、科幻等)筛选查看
- 搜索功能: 支持按书名、作者、ISBN进行模糊搜索
- 图书详情: 展示图书基本信息、库存状态、馆藏位置、评分评论等
3.3 借阅功能模块
- 在线借阅: 选择图书后一键借阅,自动计算应还日期
- 借阅记录: 查看当前借阅和历史借阅记录
- 续借功能: 在借阅期内可申请续借,延长归还时间
- 归还功能: 支持正常归还和逾期归还(自动计算罚金)
- 逾期提醒: 自动检测逾期图书,计算罚金金额
3.4 个人中心模块
- 个人信息: 展示姓名、学号、院系、专业等基本信息
- 借阅证管理: 显示借阅证状态、有效期、借阅额度
- 我的收藏: 管理收藏的图书列表
- 阅读笔记: 记录阅读心得,支持添加和删除
- 阅读计划: 制定阅读目标和进度追踪
- 借阅统计: 统计累计借阅、当前借阅、逾期次数等数据
3.5 通知系统模块
- 借书通知: 借阅成功后的系统通知
- 到期提醒: 图书即将到期或已逾期的提醒通知
- 预约通知: 预约图书到馆通知
- 系统消息: 其他系统公告和消息
- 消息管理: 支持标记已读、清空通知
3.6 管理功能模块(管理员专属)
- 数据统计: 展示图书总数、用户总数、借阅总数、当前借阅数
- 图书管理: 查看和管理所有图书信息
- 用户管理: 查看和管理注册用户
- 借阅管理: 查看和管理所有借阅记录
- 规则设置: 配置借阅天数、续借次数、罚金金额等参数
四、数据库设计
4.1 数据库表结构
| 表名 | 说明 | 主要字段 |
|---|---|---|
| books | 图书表 | id, title, author, isbn, category, publisher, quantity, rating |
| students | 学生/用户表 | id, student_id, name, password, department, card_status |
| borrow_records | 借阅记录表 | id, book_id, student_id, borrow_date, due_date, status |
| book_reviews | 图书评论表 | id, book_id, student_id, rating, content |
| favorites | 收藏表 | id, book_id, student_id |
| reading_notes | 阅读笔记表 | id, book_id, student_id, title, content, page_number |
| notifications | 通知表 | id, student_id, title, content, type, is_read |
| borrow_rules | 借阅规则表 | id, max_borrow_days, max_renew_times, fine_per_day |
| reading_plans | 阅读计划表 | id, student_id, plan_title, target_pages, current_pages |
4.2 初始数据
数据库创建时会自动插入以下演示数据:
- 管理员账号: admin / 123456
- 学生账号: 2021001 / 123456
- 示例图书: 10本涵盖计算机、文学、历史、科幻等分类的图书
- 默认规则: 最大借阅30天,可续借2次,每次15天,罚金0.5元/天
五、核心代码解释
5.1 数据库帮助类 (DatabaseHelper)
kotlin
// 采用单例模式,确保全局只有一个数据库实例
companion object {
@Volatile
private var instance: DatabaseHelper? = null
fun getInstance(context: Context): DatabaseHelper {
return instance ?: synchronized(this) {
instance ?: DatabaseHelper(context.applicationContext).also { instance = it }
}
}
}
5.2 数据访问对象 (DAO) 模式
每个实体对应一个DAO类,封装所有数据库操作:
kotlin
class BookDao(context: Context) {
private val dbHelper: DatabaseHelper = DatabaseHelper.getInstance(context)
fun insertBook(book: Book): Long { ... }
fun getBookById(bookId: Long): Book? { ... }
fun searchBooks(keyword: String): List<Book> { ... }
}
5.3 登录状态管理 (SharedPrefsUtil)
使用SharedPreferences保存用户登录状态,避免重复登录:
kotlin
fun saveLoginState(userId: Long, studentId: String, userName: String, isAdmin: Boolean) {
prefs.edit().apply {
putBoolean(KEY_IS_LOGGED_IN, true)
putLong(KEY_CURRENT_USER_ID, userId)
// ...
apply()
}
}
5.4 借阅业务逻辑
kotlin
// 1. 检查借阅证状态和借阅上限
// 2. 检查图书库存
// 3. 创建借阅记录
// 4. 更新图书库存(减1)
// 5. 更新用户借阅数量(加1)
// 6. 发送借阅成功通知
六、运行说明
6.1 导入项目
- 打开 Android Studio
- 选择 "Open an existing Android Studio project"
- 选择项目根目录
code文件夹 - 等待 Gradle 同步完成
6.2 运行应用
- 连接 Android 设备或启动模拟器(API 24+)
- 点击工具栏的 "Run" 按钮(绿色三角形)
- 等待应用安装并启动
6.3 首次使用
- 在登录页面输入测试账号:
- 管理员:
admin/123456 - 学生:
2021001/123456
- 管理员:
- 或点击 "注册账号" 创建新用户
- 登录后进入主页面,即可使用全部功能
注意事项
- 纯本地运行: 本应用使用 SQLite 本地数据库,所有数据存储在设备本地,卸载应用后数据会丢失
- 初始数据: 首次安装会自动插入演示数据,方便测试体验
- 权限要求: 无需特殊权限,基础功能即可正常使用
- 兼容性: 支持 Android 7.0 (API 24) 及以上版本