Java集合图书管理系统

---------------------------------------------------------------------------
                        图书管理系统
                         1.登陆
                         2.退出
---------------------------------------------------------------------------
请选择:1
请输入用户名:root
请输入密码:52Java
登陆成功.欢迎光临:root
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:1
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        100.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        100.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        100.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:2
请输入图书编号:1005
请输入图书名称:Java编程
请输入图书作者:Java
请输入图书价格:100
请输入图书数量:10
请输入图书页数:1000
请输入简介:面向对象的编程
保存成功!!!
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        100.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        100.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        100.0    690        《红楼梦》讲述的...
1005    Java        Java编程    10        100.0    1000        面向对象的编程
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:3
请输入要修改的图书编号:1005
请输入图书名称:Java设计
请输入图书作者:Java
请输入图书价格:99
请输入图书数量:18
请输入图书页数:1000
请输入简介:来学
修改成功!!!
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        100.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        100.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        100.0    690        《红楼梦》讲述的...
1005    Java        Java设计    18        99.0    1000        来学
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:4
请输入要删除的图书编号:1005
删除成功!!!
所有图书信息如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1001    罗贯中        三国演义    10        100.0    800        《水浒传》的故事...
1002    施耐庵        水浒传        10        100.0    880        《三国演义》故事...
1003    吴承恩        西游记        10        100.0    900        《西游记》在明代...
1004    曹雪芹        红楼梦        10        100.0    690        《红楼梦》讲述的...
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:5
请输入要查找的图书名称:记
你查找的图书内容如下:
---------------------------------------------------------------------------
编号    作者        书名        数量    价格    页码        描述
---------------------------------------------------------------------------
1003    吴承恩        西游记        10        100.0    900        《西游记》在明代...
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:6

欢迎下次再来使用本系统。

Process finished with exit code -1

 

结构如下

package book.entity;

public class Book {
    /**
     * 图书编号
     */
    private Integer id;
    /**
     * 书名
     */
    private String name;
    /**
     * 书的作者
     */
    private String author;
    /**
     * 书的价格
     */
    private double price;
    /**
     * 书的数量
     */
    private int number;
    /**
     * 书的页数
     */
    private int page;
    /**
     * 书的简介
     */
    private String info;

    public Book() {
    }

    public Book(int id, String name, String author, double price, int number,
                int page, String info) {
        super();
        this.id = id;
        this.name = name;
        this.author = author;
        this.price = price;
        this.number = number;
        this.page = page;
        this.info = info;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    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 int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

}
package book.dao;


import book.entity.Book;

import java.util.List;

public interface BookDao {
    /**
     * 添加
     *
     * @param book
     * @return
     */
    int add(Book book);

    /**
     * 修改
     *
     * @param book
     * @return
     */
    int update(Book book);

    /**
     * 根据id删除
     *
     * @param id
     * @return
     */
    int del(Integer id);

    /**
     * 查单个
     *
     * @param id
     * @return
     */
    Book findOne(Integer id);

    /**
     * 查所有
     *
     * @return
     */
    List<Book> findAll();

    /**
     * 按姓名模糊查询
     *
     * @param name
     * @return
     */
    List<Book> findByName(String name);
}
package book.dao.impl;

import book.dao.BookDao;
import book.entity.Book;

import java.util.ArrayList;
import java.util.List;

public class BookDaoImpl implements BookDao {
    public static ArrayList<Book> books = new ArrayList<Book>();

    static {

        books.add(new Book(1001, "三国演义", "罗贯中", 100, 10, 800,
                "《水浒传》的故事源起于北宋宣和年间,出现了话本《大宋宣和遗事》描述了宋江、吴加亮(吴用)、晁盖等36人起义造反的故事,成为《水浒传》的蓝本。"));
        books.add(new Book(
                1002,
                "水浒传",
                "施耐庵",
                100,
                10,
                880,
                "《三国演义》故事开始黄巾兵起义,结束于司马氏灭吴开晋,以描写战争为主,反映了魏、蜀汉、吴三个政治集团之间的政治和军事斗争,展现了从东汉末年到西晋初年之间近一百年的历史风云,并成功塑造了一批叱咤风云的英雄人物。"));
        books.add(new Book(1003, "西游记", "吴承恩", 100, 10, 900,
                "《西游记》在明代刚出现时曾被列为禁书,因为书中充满了崇佛抑道的思想,与当时的明朝皇帝所信奉的道教思想有冲突。"));
        books.add(new Book(
                1004,
                "红楼梦",
                "曹雪芹",
                100,
                10,
                690,
                "《红楼梦》讲述的是发生在一个虚构朝代的封建大家庭中的人事物,其中以贾宝玉、林黛玉、薛宝钗三个人之间的感情纠葛为主线通过对一些日常事件的描述体现了在贾府的大观园中以金陵十二钗为主体的众女子的爱恨情愁。而在这同时又从贾府由富贵堂皇走向没落衰败的次线反映了一个大家族的没落历程和这个看似华丽的家族的丑陋的内在。"));

    }

    @Override
    public int add(Book book) {
        int i = books.add(book) ? 1 : 0;
        return i;
    }

    @Override
    public int del(Integer id) {
        for (int i = 0; i < books.size(); i++) {
            if (books.get(i).getId().equals(id)) {
                books.remove(i);
                return 1;
            }
        }
        return 0;
    }

    //修改某个人
    @Override
    public int update(Book book) { // 1001 张三 999 xxx xxx
        //找出这个人
        //找学号
        int id = book.getId();
        //得到它在集合中的下标 iter
        for (int i = 0; i < books.size(); i++) {
            if (books.get(i).getId() == id) {
                books.set(i, book);
                return 1;
            }
        }

        return 0;
    }


    //找到某个人
    @Override
    public Book findOne(Integer id) {
        for (int i = 0; i < books.size(); i++) {
            Book book = books.get(i);
            if (book.getId().equals(id)) {
                return books.get(i);
            }
        }
        return null;
    }

    @Override
    public List<Book> findAll() {
        return books;
    }

    @Override
    public List<Book> findByName(String name) {
        List<Book> names = new ArrayList<>();
        for (int i = 0; i < books.size(); i++) {
            if (books.get(i).getName().contains(name)) {
                //满足要求的就装入names
                names.add(books.get(i));
            }
        }
        return names;
    }

}
package book.service;

import book.entity.Book;

import java.util.List;

/**
 * @ClassName BookService
 * @Description: TODO
 * @Author 汤永红
 * @Date 2020/8/10 0010-15:22
 * @Version V1.0
 **/
public interface BookService {
    /**
     * 添加学生
     *
     * @param book
     * @return
     */
    boolean add(Book book);

    /**
     * 修改学生
     *
     * @param book
     * @return
     */
    boolean update(Book book);

    /**
     * 根据id删除
     *
     * @param id
     * @return
     */
    boolean del(Integer id);

    /**
     * 查单个
     *
     * @param id
     * @return
     */
    Book findOne(Integer id);

    /**
     * 查所有
     *
     * @return
     */
    List<Book> findAll();

    /**
     * 按姓氏查询
     *
     * @param name
     * @return
     */
    List<Book> findByName(String name);
}
package book.service.impl;

import book.dao.BookDao;
import book.dao.impl.BookDaoImpl;
import book.entity.Book;
import book.service.BookService;

import java.util.List;

/**
 * @ClassName BookServiceImpl
 * @Description: TODO
 * @Author 汤永红
 * @Date 2020/8/10 0010-15:29
 * @Version V1.0
 **/
public class BookServiceImpl implements BookService {
    BookDao bookDao = new BookDaoImpl();

    @Override
    public boolean add(Book book) {
        return bookDao.add(book) > 0 ? true : false;
    }

    @Override
    public boolean update(Book book) {
        return bookDao.update(book) > 0 ? true : false;
    }

    @Override
    public boolean del(Integer id) {
        return bookDao.del(id) > 0 ? true : false;
    }

    @Override
    public Book findOne(Integer id) {
        return bookDao.findOne(id);
    }

    @Override
    public List<Book> findAll() {
        return bookDao.findAll();
    }

    @Override
    public List<Book> findByName(String name) {
        return bookDao.findByName(name);
    }
}
package book;

import book.entity.Book;
import book.service.BookService;
import book.service.impl.BookServiceImpl;

import java.util.List;
import java.util.Scanner;

public class TestBook {
    Scanner input = new Scanner(System.in);
    BookService bookService = new BookServiceImpl();

    public static void main(String[] args) {
        new TestBook().menu();
    }

    public void menu() {
        // 图书管理系统
        // 1.登陆
        // 2.退出
        System.out.println("---------------------------------------------------------------------------");
        System.out.println("\t\t\t\t\t\t图书管理系统\n\t\t\t\t\t\t 1.登陆\n\t\t\t\t\t\t 2.退出");
        System.out.println("---------------------------------------------------------------------------");
        System.out.print("请选择:");
        int i = input.nextInt();
        switch (i) {
            case 1:
                login();
                break;
            case 2:
                System.exit(-1);
                break;

            default:
                break;
        }
    }

    //
    public void login() {
        System.out.print("请输入用户名:");
        String name = input.next();
        System.out.print("请输入密码:");
        String pwd = input.next();
        if ("root".equals(name) && "52Java".equals(pwd)) {
            System.out.println("登陆成功.欢迎光临:" + name);
            menu2();
        } else {
            System.out.println("用户名或密码错误,退出程序");
            System.exit(-1);
        }
    }

    private void menu2() {
        System.out.println("---------------------------------------------------------------------------");
        System.out.println("图书管理系统 > 主界面");
        System.out.println("1.查询所有图书信息");
        System.out.println("2.添加一本图书信息");
        System.out.println("3.修改一本图书信息");
        System.out.println("4.删除一本图书信息");
        System.out.println("5.按图书名称查信息");
        System.out.println("6.退出系统");
        System.out.print("---------------------------------------------------------------------------");
        System.out.print("\n请选择相应的操作:");

        int i = input.nextInt();
        switch (i) {
            case 1:
                findAll();
                break;
            case 2:
                add();
                break;
            case 3:
                update();
                break;
            case 4:
                del();
                break;
            case 5:
                find();
                break;
            case 6:
                System.out.println("欢迎下次再来使用本系统。");
                System.exit(-1);
                break;
            default:
                break;
        }
        System.out.print("按n返回上一级菜单: ");
        String a = input.next();
        if ("n".equals(a)) {
            menu2();
        }
    }

    private void findAll() {
        System.out.println("所有图书信息如下:");
        System.out.println("---------------------------------------------------------------------------");
        System.out.println("编号\t作者\t\t书名\t\t数量\t价格\t页码\t\t描述");
        System.out.println("---------------------------------------------------------------------------");
        List<Book> list = bookService.findAll();
        for (Book book : list) {
            System.out.println(book.getId() + "\t" + book.getAuthor() + "\t\t"
                    + book.getName() + (book.getName().length() > 3 ? "\t" : "\t\t") + book.getNumber() + "\t\t"
                    + book.getPrice() + "\t" + book.getPage() + "\t\t" + (book.getInfo().length() > 8 ? book.getInfo().substring(0, 8) + "..." : book.getInfo()));

        }
        System.out.println("---------------------------------------------------------------------------");

    }

    private void add() {
        Book book = new Book();
        System.out.print("请输入图书编号:");
        int id = input.nextInt();
        book.setId(id);
        System.out.print("请输入图书名称:");
        String name = input.next();
        book.setName(name);
        System.out.print("请输入图书作者:");
        String author = input.next();
        book.setAuthor(author);
        System.out.print("请输入图书价格:");
        double price = input.nextDouble();
        book.setPrice(price);
        System.out.print("请输入图书数量:");
        int number = input.nextInt();
        book.setNumber(number);
        System.out.print("请输入图书页数:");
        int page = input.nextInt();
        book.setPage(page);
        System.out.print("请输入简介:");
        String info = input.next();
        book.setInfo(info);

        if (bookService.add(book)) {
            System.out.println("保存成功!!!");
            findAll();
        } else {
            System.out.println("保存失败!!!");
        }
    }

    private void update() {
        System.out.print("请输入要修改的图书编号:");
        int id = input.nextInt();
        Book book = bookService.findOne(id); //先查找出这一本书
        //修改
        System.out.print("请输入图书名称:");
        String name = input.next();
        book.setName(name);
        System.out.print("请输入图书作者:");
        String author = input.next();
        book.setAuthor(author);
        System.out.print("请输入图书价格:");
        double price = input.nextDouble();
        book.setPrice(price);
        System.out.print("请输入图书数量:");
        int number = input.nextInt();
        book.setNumber(number);
        System.out.print("请输入图书页数:");
        int page = input.nextInt();
        book.setPage(page);
        System.out.print("请输入简介:");
        String info = input.next();
        book.setInfo(info);

        if (bookService.update(book)) {
            System.out.println("修改成功!!!");
            findAll(); //显示所有
        } else {
            System.out.println("修改失败!!!");
        }
    }

    private void del() {
        System.out.print("请输入要删除的图书编号:");
        int id = input.nextInt();
        if (bookService.del(id)) {
            System.out.println("删除成功!!!");
            findAll(); //显示所有
        } else {
            System.out.println("删除失败!!!");
        }
    }

    private void find() {
        System.out.print("请输入要查找的图书名称:");
        String name = input.next();
        List<Book> list = bookService.findByName(name);
        System.out.println("你查找的图书内容如下:");
        System.out.println("---------------------------------------------------------------------------");
        System.out.println("编号\t作者\t\t书名\t\t数量\t价格\t页码\t\t描述");
        System.out.println("---------------------------------------------------------------------------");

        for (Book book : list) {
            System.out.println(book.getId() + "\t" + book.getAuthor() + "\t\t"
                    + book.getName() + (book.getName().length() > 3 ? "\t" : "\t\t") + book.getNumber() + "\t\t"
                    + book.getPrice() + "\t" + book.getPage() + "\t\t" + (book.getInfo().length() > 8 ? book.getInfo().substring(0, 8) + "..." : book.getInfo()));

        }
        System.out.println("---------------------------------------------------------------------------");

    }
}

 

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤永红

一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值