用java在控制台简单实现图书管理系统的增删改查操作,无数据库链接

本代码只是我个人(代码能力相当差)在复习java编程基础内容List集合、Map集合时温习练手写的,用的idea2020版本,jdk1.8版本,仅供参考,不喜勿喷!!!!!附带有完整代码

1整体架构

java在图片上编辑信书怎么写 java修改图书信息_System


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 实现效果部分图

java在图片上编辑信书怎么写 java修改图书信息_List_02


java在图片上编辑信书怎么写 java修改图书信息_java在图片上编辑信书怎么写_03