【Java项目】小练习——图书管理系统
作者:✿✿ xxxflower. ✿✿
博客主页:xxxflower的博客
专栏:【Java项目】篇
语录:⭐每一个不曾起舞的日子,都是对生命的辜负。⭐
今天我们来练习一个小项目:图书管理系统
我们先来看一下这个项目的运行效果:
使用者分为管理员和普通用户。
我们先来看一下普通用户的操作:
我们再来看一下管理员的操作:
接下来我们一起来看一下这个程序的代码:
文章目录
- 图书管理系统
- book
- Book
- BookList
- operations
- AddOPeration
- BorrowOperation
- DelOperation
- DisplayOperation
- ExitOperation
- FindOperation
- IOPeration
- ReturnOperation
- user
- AdminerUser
- NormalUser
- User
- Main
图书管理系统
book
Book
package book;public class Book {private String name;private String author;private int price;private String type;private boolean isBorrowed;public Book(String name, String author, int price, String type) {this.name = name;this.author = author;this.price = price;this.type = type;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getType() {return type;}public void setType(String type) {this.type = type;}public boolean isBorrowed() {return isBorrowed;}public void setBorrowed(boolean borrowed) {isBorrowed = borrowed;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +", type='" + type + '\'' +((isBorrowed() == true)? "该书已经借出":"该书未借出")+'}';}
}
BookList
package book;public class BookList {private Book[] books = new Book[10];private int usedSize;//储存当前书的个数public BookList(){books[0] = new Book("三体地球往事","刘慈欣",33,"小说");books[1] = new Book("三体黑暗森林","刘慈欣",34,"小说");books[2] = new Book("三体死神永生","刘慈欣",35,"小说");this.usedSize = 3;}public int getUsedSize() {return usedSize;}public void setUsedSize(int usedSize) {this.usedSize = usedSize;}public Book getPos(int pos){return books[pos];}public void setBooks(Book book,int pos){books[pos] = book;}
}
operations
AddOPeration
package operations;import book.Book;
import book.BookList;import java.util.Scanner;public class AddOperation implements IOPeration{public void work(BookList bookList){System.out.println("新增图书!");System.out.println("请输入你要新增的图书的名字:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();System.out.println("请输入你要新增图书的作者:");String author = scanner.nextLine();System.out.println("请输入你要新增图书的价格:");int price = scanner.nextInt();scanner.nextLine();//读入回车System.out.println("请输入你要新增图书的类型:");String type = scanner.nextLine();Book book = new Book(name,author,price,type);//1.获取当前可以存放的书籍int currentSize = bookList.getUsedSize();//2.把书放在指定位置bookList.setBooks(book,currentSize);//书的有效个数bookList.setUsedSize(currentSize+1);}}
BorrowOperation
package operations;import book.Book;
import book.BookList;import java.util.Scanner;public class BorrowOperation implements IOPeration{public void work(BookList bookList){System.out.println("借阅图书!");System.out.println("请输入你要借阅书籍的名字:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getPos(i);if (name.equals(book.getName())) {if (book.isBorrowed()) {System.out.println("该书已经被借出!");} else {book.setBorrowed(true);System.out.println("借阅图书成功!");}return;}}System.out.println("没有你要借阅的书!");}
}
DelOperation
package operations;import book.Book;
import book.BookList;import java.util.Scanner;public class DelOperation implements IOPeration{public void work(BookList bookList){System.out.println("删除图书!");System.out.println("请输入要删除的图书:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();//1.遍历数组当中 是否有你要删除的书,有记录下标int index = -1;int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getPos(i);if(name.equals(book.getName())){index = i;break;}}if(index == -1){System.out.println("没有你要删除的书!");return;}for (int i = index; i < currentSize-1; i++) {Book book = bookList.getPos(i+1);bookList.setBooks(book,i);}bookList.setBooks(null,currentSize-1);bookList.setUsedSize(currentSize-1);System.out.println("删除成功!");}
}
DisplayOperation
package operations;import book.Book;
import book.BookList;public class DisplayOperation implements IOPeration{public void work(BookList bookList){System.out.println("显示所有图书!");int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getPos(i);System.out.println(book);}}
}
ExitOperation
package operations;import book.BookList;public class ExitOperation implements IOPeration{@Overridepublic void work(BookList bookList) {System.out.println("退出系统!");System.exit(0);}
}
FindOperation
package operations;import book.Book;
import book.BookList;import java.util.Scanner;public class FindOperation implements IOPeration{@Overridepublic void work(BookList bookList) {System.out.println("查找图书!");System.out.println("请输入你要查找图书的名字:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getPos(i);if(name.equals(book.getName())){System.out.println("找到了这本书!");System.out.println(book);return;}}System.out.println("没有这本书!");}
}
IOPeration
package operations;import book.BookList;public interface IOPeration {void work(BookList bookList);
}
ReturnOperation
package operations;import book.Book;
import book.BookList;import java.util.Scanner;public class ReturnOperation implements IOPeration{@Overridepublic void work(BookList bookList) {System.out.println("归还图书!");System.out.println("请输入你要归还图书的名字:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();int currentSize = bookList.getUsedSize();for (int i = 0; i < currentSize; i++) {Book book = bookList.getPos(i);if(name.equals(book.getName())){book.setBorrowed(false);System.out.println("归还图书成功!");return;}}System.out.println("没有你要归还的图书!");}
}
user
AdminerUser
package user;import operations.*;import java.util.Scanner;public class AdminerUser extends User{public AdminerUser(String name){super(name);this.ioPerations = new IOPeration[]{new ExitOperation(),new FindOperation(),new AddOperation(),new DelOperation(),new DisplayOperation()};}public int menu(){System.out.println("**************************************");System.out.println("hello "+name+ "欢迎来到图书管理系统!");System.out.println("1.查找图书");System.out.println("2.新增图书");System.out.println("3.删除图书");System.out.println("4.显示图书");System.out.println("0.退出系统");System.out.println("**************************************");System.out.println("请输入你的操作:");Scanner scanner = new Scanner(System.in);int choic = scanner.nextInt();return choic;}}
NormalUser
package user;import operations.*;import java.util.Scanner;public class NormalUser extends User{public NormalUser(String name){super(name);this.ioPerations =new IOPeration[]{new ExitOperation(),new FindOperation(),new BorrowOperation(),new ReturnOperation()};}public int menu(){System.out.println("**************************************");System.out.println("hello "+name+ "欢迎来到图书管理系统!");System.out.println("1.查找图书");System.out.println("2.借阅图书");System.out.println("3.归还图书");System.out.println("0.退出系统");System.out.println("**************************************");System.out.println("请输入你的操作:");Scanner scanner = new Scanner(System.in);int choic = scanner.nextInt();return choic;}}
User
package user;import book.BookList;
import operations.IOPeration;public abstract class User {protected String name;protected IOPeration[] ioPerations;public User(String name){this.name = name;}public abstract int menu();public void doOperation(int choic, BookList bookList){ioPerations[choic].work(bookList);}}
Main
import book.BookList;
import user.AdminerUser;
import user.NormalUser;
import user.User;import java.util.Scanner;public class Main {public static User login(){System.out.println("请输入你的姓名:");Scanner scanner = new Scanner(System.in);String userName = scanner.nextLine();System.out.println("请输入你的身份:1-》管理员 0-》普通用户");int choic = scanner.nextInt();//根据用户输入的数字判断身份 发生向上转型if(choic == 1){return new AdminerUser(userName);}else{return new NormalUser(userName);}}public static void main(String[] args) {//0.准备数据BookList bookList = new BookList();//1.登录User user = login();while (true){int choic = user.menu();user.doOperation(choic,bookList);}}
}
【Java项目】小练习——图书管理系统相关推荐
- 程序逸的Java项目之旅-图书管理系统之数据库设计(1)
程序逸的Java项目之旅-图书管理系统之环境的搭建 1.前言 上篇博客我们介绍了一下环境的搭建,我相信很多小伙伴这点应该问题不大,可能就是idea破解和mysql数据库和redis数据库的安装吧,我其 ...
- 程序逸的Java项目之旅-图书管理系统之数据库设计(2-完)
紧接上篇博客>>>>>>程序逸的Java项目之旅-图书管理系统之数据库设计(1) 4.数据库表的创建 对于数据库表,我们可以通过cmd窗口进行创建,但那种方法有点麻 ...
- 程序逸的Java项目之旅-图书管理系统之验证码和用户数据的后台获取(1)
通过上篇博客>>>>>程序逸的Java项目之旅-图书管理系统之后端接口的快速实现,我们就可以快速搭建出基础的项目代码了,今天我们就先来实现一个验证码和后台获取管理员的账号 ...
- Java程序员的福音:Java项目教学之图书管理系统(含源代码)
1 图书管理系统项目演示 图书管理系统分析: 定义Book类 完成主界面和选择 完成查询所有图书 完成添加图书 完成删除图书 完成修改图书 使用Debug追踪调试 2 图书管理系统之标准Book类 我 ...
- Java项目:SpringBoot图书管理系统
作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 本系统分为管理员与普通用户两种角色: 管理员角色包含以下功能: 借书管理,图书信息管理 ...
- Java项目:(小程序)物业管理系统(spring+spring mvc+mybatis+layui+微信小程)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 微信小程序物业管理系统,微信朝胞括以下几个模 块: 社区公告.报修.信息采集.生活缴费.二手置换 微信小程序 ...
- 程序逸的Java项目之旅-图书管理系统之环境的搭建
其实自己一直没有真正的梳理过一个项目,无论这个项目是简单还是困难,所以我希望通过这个项目帮助我学习以及分享自己的心得给大家,谢谢. 1.前言 这个项目我也是从零开始写,并且更新的速度要看我写的速度,期 ...
- 程序逸的Java项目之旅-图书管理系统之项目搭建
前两篇博客将数据库表简单设计了一下,接下来我们就可以先搭建项目基础的骨架了.很多高校依旧使用eclipse/myeclipse来作为编译器,不是说这个编译器不好,其实Ieda的功能它都有,但用起来就是 ...
- 程序逸的Java项目之旅-图书管理系统之后端接口的快速实现
我们可以借助Mybatis-plus来快速生成我们的DAO,Mapper,和service层,因为通过这些插件可以生成最基础的增删改查语句,但如果是更复杂的语句,我们可以自己再去xml中手写也是可以的 ...
- java计算机毕业设计vue图书管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计vue图书管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue图书管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B ...
最新文章
- 获取Windwos的版本和名称 -- GetVersion|GetVersionEx
- enter your credential for http://dev.azure.....Fatal:Authentication failed for ;;
- ios13文件连接服务器教程,iOS 13/iPad OS迈向生产力的一大步,SMB文件共享视频图文教程...
- 嵌入式linux完整top命令,linux的top命令详解
- JQUERY的appendappendTo
- C/C++二维数组名和二级指针的联系与区别
- 常量数组 python_python数据科学系列:numpy入门详解教程
- nullnullc++ 精简版 fps限制
- 克罗谈投资策略03_你所期望的赌博方式
- nginx对listen端口的优化 -- 第一篇
- 解决Intellij中的一些bug
- WEB前端是干什么的?
- 百度,高德地图经纬度转换
- 设置clickhouse默认密码
- AcWing 4071. 国际象棋
- react 实战案例(webpack构建)
- 职场中的你有危机感吗?在职提升来社科院与杜兰大学金融管理硕士项目
- 基于Python实现的合同管理系统设计
- 小米手机任意版本MIUI安装Google Play服务
- 判断用户使用的浏览器是不是IE8