一个极其简单的图书管理系统(JavaSE入门级别)

 🙌🙌这个简易系统非常容易实现 🙌🙌

👏👏入门的同学可以拿来练手👏👏

😎😎希望大家早日封神😎😎

🎉🎉里面涉及到一些集合知识,如果不懂可以看👇篇

💕💕各种集合详解(map set list)💕💕

目录

项目需求

功能分析

实现类 

        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;
		
	}

}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值