用java在控制台简单实现图书管理系统的增删改查操作,无数据库链接
本代码只是我个人(代码能力相当差)在复习java编程基础内容List集合、Map集合时温习练手写的,用的idea2020版本,jdk1.8版本,仅供参考,不喜勿喷!!!!!附带有完整代码
1整体架构
Dao层存放Book类,即图书的基本信息 Service层存放对图书的增删改查操作。
2 创建Dao层
创建Book类,图书包含书名、作者、价格、数量信息。定义完基本字段后,生成无参、有参构造器,生成对应字段的get、set方法(可自动生成)。
package BookManagement.Dao;
import java.util.Objects;
public class Book {
private String name;
private String author;
private Double price;
private Integer number;
public Book() {
}
public Book(String name, String author, Double price, Integer number) {
this.name = name;
this.author = author;
this.price = price;
this.number = number;
}
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 Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
return Objects.equals(name, book.name) &&
Objects.equals(author, book.author) &&
Objects.equals(price, book.price) &&
Objects.equals(number, book.number);
}
@Override
public int hashCode() {
return Objects.hash(name, author, price, number);
}
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
", number=" + number +
'}';
}
}
2 创建Service层
先定义booksevice接口,将抽象方法定义出来,再去定义类实现方法 BookService接口
package BookManagement.Service;
import BookManagement.Dao.Book;
import java.util.List;
import java.util.Map;
public interface BookService {
public void add(Map<String, List<Book>> map,List<Book> books);
public void delete(Map<String, List<Book>> map,List<Book> books);
public void query(Map<String, List<Book>> map,List<Book> books);
public void update(Map<String, List<Book>> map,List<Book> books);
}
BookServiceImpl实现类
package BookManagement.Service;
import BookManagement.Dao.Book;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class BookServiceImpl implements BookService{
@Override
public void add(Map<String, List<Book>> map,List<Book> books) {
System.out.println("请输入添加书籍的栏目:");
Scanner sc = new Scanner(System.in);
String item = sc.next();
if(!map.containsKey(item)){
//如果该栏目不存在,则创建该栏目,并添加到map中
books = new ArrayList<>();
map.put(item,books);
}else{
//如果该栏目存在,则获取到该栏目
books = map.get(item);
}
System.out.println("请输入书籍的名称:");
String name = sc.next();
System.out.println("请输入书籍的作者:");
String author = sc.next();
System.out.println("请输入书籍的价格:");
String price = sc.next();
System.out.println("请输入书籍的数量:");
String number = sc.next();
//创建该书籍
Book book = new Book(name,author,Double.valueOf(price),Integer.valueOf(number));
//添加到书籍所在栏目中
books.add(book);
System.out.println("您在"+item+"下添加的"+name+"书籍成功!!!!!!!");
}
@Override
public void delete(Map<String, List<Book>> map,List<Book> books) {
if (map.size() == 0) {
System.out.println("当前图书馆无书籍!!!!!!!");
return;
} else {
query(map, books);
System.out.println("==================删除书籍========================");
System.out.println("请输入想要删除书籍所在栏目:");
Scanner sc = new Scanner(System.in);
String item = sc.next();
if(!map.containsKey(item)){
System.out.println("栏目不存在");
} else{
//获取到目标书所在栏目
books = map.get(item);
System.out.println("您想选择删除哪本书籍,请输入:");
String name = sc.next();
Book book = getBookByName(books, name);
if(book!=null){
books.remove(book);
query(map,books);
System.out.println("删除成功!!!!!!!!!!!");
if(map.get(item).size()==0){
map.remove(item);
System.out.println("当前栏目已空,自动删除!!!!");
}
}else{
System.out.println("目标书籍不存在!!!!!!!!!");
}
}
}
}
@Override
public void query(Map<String, List<Book>> map,List<Book> books) {
if(!map.isEmpty()){
System.out.println("====================查询结果=======================");
System.out.println("类型\t\t\t\t书名\t\t\t\t作者\t\t\t\t价格\t\t\t\t数量");
map.forEach((type,book)->{
System.out.println(type);
for (Book book1 : book) {
System.out.println("\t\t\t\t\t"+book1.getName()+"\t\t\t\t"+book1.getAuthor()+"\t\t\t\t"+book1.getPrice()+"\t\t\t\t"+book1.getNumber());
}
});
}else {
System.err.println("当前图书馆暂无存书!!!!!");
}
}
@Override
public void update(Map<String, List<Book>> map,List<Book> books) {
query(map, books);
if (map.size() == 0) {
return ;
} else {
System.out.println("==================更新书籍========================");
System.out.println("请输入想要修改书籍所在栏目:");
Scanner sc = new Scanner(System.in);
String item = sc.next();
if (!map.containsKey(item)) {
//该栏目不存在
System.out.println("对不起,您所选的栏目不存在!!!!!");
} else {
//如果该栏目存在,则获取到该栏目
books = map.get(item);
System.out.println("您想选择修改哪本书籍,请输入:");
String name = sc.next();
Book book = getBookByName(books, name);
if (book != null) {
System.out.println("您想修改该书籍的哪部分内容(name,author,price,number),请输入:");
String change = sc.next();
switch (change) {
case "name":
System.out.println("您想修改为:");
String newName = sc.next();
book.setName(newName);
query(map, books);
System.out.println("修改信息成功,如上查看");
break;
case "author":
System.out.println("您想修改为:");
String newAuthor = sc.next();
book.setAuthor(newAuthor);
query(map, books);
System.out.println("修改信息成功,如上查看");
break;
case "price":
System.out.println("您想修改为:");
String newPrice = sc.next();
book.setPrice(Double.valueOf(newPrice));
query(map, books);
System.out.println("修改信息成功,如上查看");
break;
case "number":
System.out.println("您想修改为:");
String newNumber = sc.next();
book.setNumber(Integer.valueOf(newNumber));
query(map, books);
System.out.println("修改信息成功,如上查看");
break;
default:
System.out.println("输入内容错误!!!!!");
}
} else {
System.err.println("该书不存在!!!!!!!!!!!");
}
}
}
}
private static Book getBookByName(List<Book> books,String name){
for (Book book : books) {
if(book.getName().equals(name)){
return book;
}
}
return null;
}
}
3 创建主类
bookSystem类,包含于main方法
package BookManagement;
import BookManagement.Dao.Book;
import BookManagement.Service.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class bookSystem {
//定义图书馆
public static final Map<String, List<Book>> map = new HashMap<>();
//定义书籍栏目,用于存储书的栏目
public static final List<Book> books = null;
//定义系统扫描器
public static final Scanner sc = new Scanner(System.in);
//定义方法类
public static BookServiceImpl bookService = new BookServiceImpl();
public static void main(String[] args) {
showcommand();
start();
}
private static void showcommand() {
System.out.println("=================图书馆==============");
System.out.println("指令如下:");
System.out.println("1 增加图书:add");
System.out.println("2 删除图书:delete");
System.out.println("3 查询图书:query");
System.out.println("4 更新图书:update");
System.out.println("5 退出系统:exit");
}
private static void start() {
System.out.println("请输入指令:");
String command = sc.next();
switch (command){
case "add":
//添加图书
bookService.add(map,books);
break;
case "delete":
//删除图书
bookService.delete(map,books);
break;
case "query":
//查询图书
bookService.query(map,books);
break;
case "update":
//更新图书
bookService.update(map,books);
break;
case "exit":
//退出系统
System.out.println("退出系统成功!!!");
System.exit(0);
break;
default:
System.err.println("请输入正确指令!!!!!");
System.err.println("===============================");
}
start();
}
}
4 实现效果部分图
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2632.html