📔这里是一个喜欢编程的小程序员,KSaMar
📕如果此文章对您有些许帮助,您可以选择赞助本作作者,让作者有更强的更新文章动力!
📒如果您喜欢此文章,您可以 点赞👍 收藏⭐ 一下,这将对我书写有很大的帮助!
📘如果您通过阅读此文章发现了BUG,请及时私信联系我,非常感谢!
📗原创不易,允许搬运,请标注源地址
📙爱发电链接 点此访问
文章目录
前言
这是一个 Java 图书管理系统 CMD 版
说明:Java 面向对象编程设计,适合初学Java的同学开始模仿制作,阅读的第一个程序项目,功能可能并不是那么完美,感兴趣的同学可以参考
开发环境
Windows 10
Java IDE: IDEA 2021.3
技术栈
Java JDK 1.8
开始时间:2023-3-15
结束时间:2023-3-23
项目结构
Library
└── src
└── com.ksamar.library ---------- 项目包
├── controllers ---------- 控制器包
│ ├── book ---------- 图书控制器包
│ │ ├── BookController.java ---------- 图书控制器
│ │ └── BorrowController.java ---------- 借阅控制器
│ ├── login ---------- 登录控制器包
│ │ └── LoginController.java ---------- 登录控制器
│ ├── operate ---------- 日志控制器包
│ │ └── OperateController.java ---------- 日志控制器
│ └── user ---------- 用户控制器包
│ └── UserController.java ---------- 用户控制器
├── entity ---------- 实体包
│ ├── Book.java ---------- 图书信息实体
│ ├── Borrow.java ---------- 借阅信息实体
│ ├── Operation.java ---------- 日志信息实体
│ └── User.java ---------- 用户信息实体
├── tools ---------- 工具包
│ ├── HorizontaRule.java ---------- 水平线工具
│ ├── Initialization.java ---------- 数据初始化
│ ├── SqlList.java ---------- 数据库
│ └── TimeConversion.java ---------- 时间转换器
├── views ---------- 视图包
│ ├── admin ---------- 管理员视图包
│ │ ├── AdminView.java ---------- 管理员视图
│ │ ├── BookManageView.java ---------- 图书管理视图
│ │ ├── BorrowView.java ---------- 借阅图书视图
│ │ └── UserManageView.java ---------- 用户管理视图
│ ├── login ---------- 登录视图包
│ │ └── LoginView.java ---------- 登录视图
│ ├── share ---------- 共享包
│ │ └── SearchBookView.java ---------- 搜索图书包
│ ├── user ---------- 用户视图包
│ │ └── UserView.java ---------- 用户视图
│ └── View.java ---------- 默认视图
└── Main.java ---------- 主方法
什么是 MVC 模式?
引用runoob对MVC的介绍 源地址
✒️一、项目图片
1.管理员界面
2.图书管理界面
3.用户管理界面
4.图书借阅界面
5.用户界面
6.图书搜索界面
✒️二、项目部分代码
1.图书管理
/**
* 操作面板
*/
@Override
public void options() {
while (visible) {
System.out.println("==================================================");
System.out.println("请选择执行操作");
System.out.println("1.查询图书");
System.out.println("2.增加图书");
System.out.println("3.删除图书");
System.out.println("4.编辑图书");
System.out.println("5.借阅图书");
System.out.println("6.归还图书");
System.out.println("7.查询借阅图书");
System.out.println("8.超时未归还图书查询");
System.out.println("0.返回");
System.out.println("==================================================");
operation = scanner.nextInt();
switch (operation) {
case 1:
new SearchBookView().searchBook(); break;
case 2:
addBook(); break;
case 3:
deleteBook(); break;
case 4:
editBook(); break;
case 5:
new BorrowView().borrowBook(); break;
case 6:
new BorrowView().returnBook(); break;
case 7:
new BorrowView().searchBorrowBook(); break;
case 8:
new BorrowView().searchOverTimeBook(); break;
case 0:
visible = false; break;
default:
break;
}
}
}
2.搜索图书
/**
* 搜索图书
*/
public void searchBook() {
System.out.println("==================================================");
System.out.println("1.查询所有");
System.out.println("2.指定查询");
System.out.println("0.返回");
System.out.println("==================================================");
operation = scanner.nextInt();
switch (operation) {
case 1:
searchAll(); break;
case 2:
bookType();
String[] searchType = {"id", "groups", "name", "author", "press", "isbn"};
System.out.print("请选择搜索类型:");
int type = scanner.nextInt();
System.out.print("请输入信息:");
String text = scanner.next();
search(searchType[type - 1], text);
break;
default:
break;
}
}
3.借阅图书
/**
* 借阅图书
*/
public void borrowBook() {
boolean borrowState = true;
while (borrowState) {
System.out.println("==================================================");
System.out.println("借阅图书");
System.out.println("==================================================");
System.out.print("请输入要借阅的图书ISBN号码:");
String isbn = scanner.next();
Book book = bookController.searchIsbn(isbn);
if (book != null) {
System.out.println("==================================================");
System.out.println(book);
System.out.println("==================================================");
System.out.println("1.确定借阅");
System.out.println("0.重新输入");
System.out.println("==================================================");
operation = scanner.nextInt();
if (operation == 1) {
System.out.print("请输入要借阅的用户身份卡号:");
String idCard = scanner.next();
User user = userController.searchIdCard(idCard);
if (user != null) {
ArrayList<Object> borrowArrayList = borrowController.borrowBook(book, user);
if (borrowArrayList.get(0).equals(true)) {
System.out.println("借阅成功");
}
else if (borrowArrayList.get(1).equals(-1)) {
System.out.println("此账户已被冻结,无法借阅");
}
else if (borrowArrayList.get(1).equals(1)) {
System.out.println("此书数量为 0 无法借阅");
}
else if (borrowArrayList.get(1).equals(2)) {
System.out.println("当前账户已超过借阅上限");
}
else {
System.out.println("借阅失败");
}
borrowState = false;
}
else {
System.out.println("此用户不存在,请重新输入");
}
}
}
else {
System.out.println("此书不存在,请重新输入");
}
}
}
3.归还图书
/**
* 归还图书
*/
public void returnBook() {
boolean returnState = true;
while (returnState) {
System.out.println("==================================================");
System.out.println("归还图书");
System.out.println("==================================================");
System.out.print("请输入要归还图书的身份卡号码:");
String idCard = scanner.next();
User user = userController.searchIdCard(idCard);
if (user != null) {
ArrayList<Borrow> borrowArrayList = borrowController.searchBorrowBook(user.getUsername());
int index = 1;
System.out.println("==================================================");
for (Borrow borrow : borrowArrayList) {
System.out.println(index++ + ". " + borrow);
}
System.out.println("==================================================");
System.out.print("请输入要归还的图书编号:");
operation = scanner.nextInt();
ArrayList<Object> returnArrayList = borrowController.returnBook(borrowArrayList.get(operation - 1), user);
if (returnArrayList.get(0).equals(true)) {
System.out.println("归还成功");
returnState = false;
}
else {
System.out.println("归还失败");
}
}
else {
System.out.println("此用户不存在,请重新输入");
}
}
}
4.添加图书
/**
* 添加图书
*/
public void addBook() {
System.out.println("==================================================");
System.out.print("请输入组别:");
String groups = scanner.next();
System.out.print("请输入书名:");
String name = scanner.next();
System.out.print("请输入作者:");
String author = scanner.next();
System.out.print("请输入出版社:");
String press = scanner.next();
System.out.print("请输入价格:");
double price = scanner.nextDouble();
System.out.print("请输入数量:");
int quantity = scanner.nextInt();
System.out.print("请输入ISBN号码:");
String isbn = scanner.next();
System.out.println("==================================================");
ArrayList<Object> objectArrayList = bookController.addBook(groups, name, author, press, price, quantity, isbn);
if (objectArrayList.get(0).equals(true)) {
System.out.println("添加成功");
}
else {
System.out.println("ISBN重复,添加失败");
}
}
5.编辑图书
/**
* 编辑图书
*/
public void editBook() {
System.out.println("==================================================");
System.out.print("请输入要编辑的图书ID:");
int id = scanner.nextInt();
System.out.println("==================================================");
Book book = bookController.searchId(String.valueOf(id));
if (book != null) {
boolean editState = true;
while (editState) {
System.out.println("==================================================");
System.out.println(book);
System.out.println("==================================================");
System.out.println("1.编辑组别");
System.out.println("2.编辑书名");
System.out.println("3.编辑作者");
System.out.println("4.编辑出版社");
System.out.println("5.编辑价格");
System.out.println("6.编辑数量");
System.out.println("7.编辑ISBN");
System.out.println("0.退出编辑");
System.out.println("==================================================");
System.out.print("请输入操作选项:");
int options = scanner.nextInt();
if (options > 0 && options < 8) {
String[] editType = {"groups", "name", "author", "press", "price", "quantity", "isbn"};
System.out.print("请输入编辑信息:");
String text = scanner.next();
ArrayList<Object> objectArrayList = bookController.editBook(book, editType[options - 1], text);
if (objectArrayList.get(0).equals(false)) {
System.out.println("编辑失败,ISBN已存在");
}
}
else if (options == 0) {
editState = false;
}
}
}
else {
System.out.println("此书不存在,无法编辑");
}
}
6.删除图书
/**
* 删除图书
*/
public void deleteBook() {
System.out.println("==================================================");
System.out.print("请输入要删除的图书ID:");
int id = scanner.nextInt();
System.out.println("==================================================");
int delete = bookController.deleteBook(id);
if (delete == 1) {
System.out.println("删除成功");
}
else {
System.out.println("删除失败");
}
}
✒️项目源码
↓↓↓
微信公众号搜索:筱原空的编程小屋 点击资源获取,获取此项目源码文件
微信公众号搜索:筱原空的编程小屋 点击资源获取,获取此项目源码文件
微信公众号搜索:筱原空的编程小屋 点击资源获取,获取此项目源码文件
↑↑↑
内附项目文档
✒️项目操作展示地址
Bilibili bilibili