🙌🙌这个简易系统非常容易实现 🙌🙌
👏👏入门的同学可以拿来练手👏👏
😎😎希望大家早日封神😎😎
🎉🎉里面涉及到一些集合知识,如果不懂可以看👇篇
目录
项目需求
查看全部书籍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; } }