🙌🙌这个简易系统非常容易实现 🙌🙌
👏👏入门的同学可以拿来练手👏👏
😎😎希望大家早日封神😎😎
目录
项目需求
功能分析
实现类
Book类
BookSystem类
项目需求
查看全部书籍query
添加书本信息add
删除书本信息delete
修改书本信息update
退出系统exit功能分析
1、定义一个书本类
2、定义一个集合表示图书馆用于存储书本信息数据Map<String,List<Book>>
3、展示操作界面
4、完成相应功能先大体说明一下:
每一本图书都有相应的分类,称为栏目。
相同种类的图书称为同一个栏目,每个栏目对应一个橱柜,橱柜中放着相同种类的图书。
比如《言情小说》是一个栏目,这个栏目对应一个橱柜,橱柜里面可能放有《红楼梦》等有言情色彩的图书。
实现类:
Book类
package 管理系统;
public class Book {
private String name;
private double price;
private String author;
public Book() {
}
public Book(String name, double price, String author) {
super();
this.name = name;
this.price = price;
this.author = author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
@Override
public String toString() {
return "Book [name=" + name + ", price=" + price + ", author=" + author + "]";
}
}
BookSystem类
package 管理系统;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class BookSystem {
//定义常量集合和Scanner对象
public static final Map<String,List<Book>> BOOK_STORE = new HashMap<>();
public static final Scanner SYS_SCANNER = new Scanner(System.in);
public static void main(String args[]) {
//展示操作界面:独立功能
showCommand();
}
//界面函数
public static void showCommand() {
System.out.println("欢迎进入系统:");
System.out.println("查看全部书籍:query");
System.out.println("添加书本信息:add");
System.out.println("删除书本信息:delete");
System.out.println("修改书本信息:update");
System.out.println("退出系统:exit");
System.out.println("请输入您的请求:");
String command = SYS_SCANNER.nextLine();
switch(command){
case"query":
queryBooks();
break;
case"add":
addBook();
break;
case"delete":
deleteBook();
break;
case"update":
updateBook();
break;
case"exit":
System.out.println("退出成功。");
System.exit(0);
break;
default:
System.out.println("请求错误!");
}
showCommand();
}
//添加功能
private static void addBook() {
System.out.println("进入到添加书本业务:");
System.out.println("请您输入添加书本的栏目:");
String type = SYS_SCANNER.nextLine();
List<Book> books= null;
//判断是否存在该栏目
if(BOOK_STORE.containsKey(type)) {
//如果存在
//直接得到该栏目存在的橱柜对象
books = BOOK_STORE .get(type);
}//不存在
else {
books = new ArrayList<>();
//把橱柜和栏目
BOOK_STORE.put(type, books);
}
System.out.println("请输入添加书本的名字:");
String name = SYS_SCANNER.nextLine();
System.out.println("请输入添加书本的价格:");
String price = SYS_SCANNER.nextLine();
System.out.println("请输入添加书本的作者:");
String author = SYS_SCANNER.nextLine();
Book book = new Book(name,Double.valueOf(price),author);
books.add(book);
System.out.println("您添加在"+type+"下的书本"+book.getName()+"成功!");
}
private static void queryBooks() {
System.out.println("进入到查询书本业务:");
if(BOOK_STORE.size()==0) {
System.out.println("图书馆没有书。");
}else {
System.out.println("类型\t\t\t\t书名\t\t\t\t价格\t\t\t\t作者");
BOOK_STORE.forEach((type,books)->{
System.out.println(type);
for(Book book:books) {
System.out.println(book.getName()+"\t\t\t"+book.getPrice()+"\t\t\t"+book.getAuthor());
}
});
}
}
//修改图书
public static void updateBook() {
if(BOOK_STORE.size()==0) {
System.out.println("没有任何栏目可以修改");
}else {
queryBooks();
System.out.println("欢迎进入修改书本业务:");
while(true) {
System.out.println("请输入要修改书本的栏目:");
String type = SYS_SCANNER.nextLine();
//判断一下是否存在该栏目
if(BOOK_STORE.containsKey(type)) {
while(true) {
//存在该栏目
System.out.println("请输入要修改书本的名称:");
String name = SYS_SCANNER.nextLine();
Book book = getBookByTypeAndName(type,name);
if(book==null) {
System.out.println("您输入的书名不正确,请重新确认。");
}else {
System.out.println("请输入添加书本的新名字:");
String newName = SYS_SCANNER.nextLine();
System.out.println("请输入添加书本的新价格:");
String newPrice = SYS_SCANNER.nextLine();
System.out.println("请输入添加书本的新作者:");
String newAuthor = SYS_SCANNER.nextLine();
book.setName(newName);
book.setPrice(Double.valueOf(newPrice));
book.setAuthor(newAuthor);
queryBooks();
System.out.println("您修改成功!请查看!");
return;//结束当前方法运行
}
}
}else {
//不存在该栏目
System.out.println("您输入的栏目不存在,请重新确认。");
}
}
}
}
//删除图书
public static void deleteBook() {
queryBooks();
System.out.println("欢迎进入删除书本业务:");
while(true) {
System.out.println("请您输入要删除的书本的栏目:");
String type = SYS_SCANNER.nextLine();
//判断是否有栏目
if(BOOK_STORE.containsKey(type)) {
//存在
while(true) {
System.out.println("请问您要删除的书本名称是:");
String name = SYS_SCANNER.nextLine();
//根据栏目和书名去找书
Book book = getBookByTypeAndName(type,name);
if(book==null) {
System.out.println("该书不存在。");
}else {
//找到书
//取出这个栏目的橱柜集合
List<Book> books = BOOK_STORE.get(type);
books.remove(book);
System.out.println("删除成功!");
queryBooks();
return;
}
}
}else {
System.out.println("您输入的栏目有误,请重新输入。");
}
}
}
//得到图书对象
public static Book getBookByTypeAndName(String type,String name) {
//先提取这个栏目的橱柜,根据栏目提取值
List<Book> books = BOOK_STORE.get(type);
for(Book book:books) {
//如果该书的名称与要找的书一样。
if(book.getName().equals(name)) {
return book;
}
}
return null;
}
}