复习简单的图书管理系统小项目

请实现一个简单的图书管理系统,要求如下:

1、 定义图书类Book,具有属性账号id,书名name、作者author 和 价格price,在创建图书对象时要求通过构造器进行创建,一次性将四个属性全部赋值,要求账户属性是int型,名称是String型,作者是String型,价格是double,在录入用户时账户属性值不可以重复。在创建好用户后,书名不能进行更改,只可以进行访问。其他请合理进行封装。

2、 在Book类,添加toString方法,要求返回 图书信息字符串,使用\t隔开各信息

3、 定义管理类Manager,定义添加图书的方法add,按书名修改价格的方法 update,按照账户删除图书的方法delete,按账号查询图书的方法query,要求返回Book类型。按作者查询的图书的方法 query,要求返回Book类型。查询所有图书的方法 showAll,按价格降序排序方法 sort

在这里插入图片描述

依次做如下操作:

Ø 将五个图书信息录入到Manager;

Ø 调用修改方法, 好好的奇妙冒险 的价格改为170

Ø 查询李奎 写的图书信息

Ø 删除 好好的奇妙冒险 对应的图书;

Ø 查询书号为1001的图书。

Ø 按价格排序

Ø 打印所有图书信息

首先来完成我们的图书类Book:

public class Book {
    
    
    private int id;            //书号
    private String name;       //书名
    private String author;     //作者
    private double price;      //价格
    
    //有参构造
    public Book(int id, String name, String author, double price) {
    
    
        this.id = id;
        this.name = name;
        this.author = author;
        this.price = price;
    }

    //getXXX和setXXX
    public int getId() {
    
    
        return id;
    }
    public void setId(int id) {
    
    
        this.id = id;
    }
    public String getName() {
    
    
        return 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;
    }

    /*
        重写toString 
    */
    @Override
    public String toString() {
    
    
        return "Book{" + "书号:" + this.id +
                "\t书名=《" +this.name+
                "》\t作者='" + this.author+
                "'\t单价=$" + this.price +
                '}';
    }
}

定义管理类Manager1 来定义我们的方法:

public class Manager1 {
    
    
    //首先我们需要一个集合
    List<Book> list=new ArrayList<Book>();
    /*
    * 增加方法
    * Book
    * */
    public Boolean add(Book book){
    
    
        return this.list.add(book);
    }

    /*
    * 按书名修改价格的方法 update
    * @书名  name
    * @价格  price
    * */
    public Book update(String name,double price){
    
    
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
    
    
            // 找到相同的书名
            Book book = list.get(i);
            if (name.equals(book.getName())){
    
    
                //如果 找到了就赋给价格新值
                  book.setPrice(price);
                  //返回 book
                  return book;
            }
        }
        //否则空
        return null;
    }
    /*
    * 按照账户删除图书的方法delete
    * @ id
    * */
    public void delete(int id){
    
    
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
    
    
            //找到ID
            Book book = list.get(i);
            if (id== book.getId()){
    
    
                //删除图书
                 list.remove(i);
                 return;
            }
        }
    }
    /*
     * 按照图书删除图书的方法delete
     * @ name
     * */
    public void delete(String  name) {
    
    
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
    
    
            //找到
            Book book = list.get(i);
            if (name.equals(book.getName())) {
    
    
                //删除图书
                list.remove(i);
            }
        }
    }
    /*
    * 按账号查询图书的方法query
    * @ id
    * */
    public Book query(int id){
    
    
        for (int i = 0; i < list.size(); i++) {
    
    
            Book book = list.get(i);
            if (id==book.getId()){
    
    
                return book;
            }
        }
        return null;
    }
    
    /*
    * 按作者查询的图书的方法 query
    * @ 作者 author
    * */
    public ArrayList<Book> query(String author){
    
    
      ArrayList<Book> books=new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
    
    
            Book book = list.get(i);
            if (author.equals(book.getAuthor())){
    
    
                books.add(book);
                return books;
            }
        }
        return null;
    }
    
    /*
    * 查找所有图书信息
    * */
    public void showAll(){
    
    
        for (int i = 0; i < list.size(); i++) {
    
    
            System.out.println(list.get(i));
        }
    }
    /*
    * 按价格降序排序方法 sort
    * Collections
    * */
    public void sort(){
    
    
        Collections.sort(this.list, new Comparator<Book>() {
    
    
            @Override
            public int compare(Book o1, Book o2) {
    
    
                  //转型
                //(int) (o1.getPrice()-o2.getPrice()) 为升序
                return -(int) (o1.getPrice()-o2.getPrice());
            }
        });
    }
}

最后的测试类:

import java.util.ArrayList;

public class BookTest {
    
    
    public static void main(String[] args) {
    
    
        //new Manager
        Manager1 manager1 = new Manager1();
        Book book1= new Book(1001,"红楼梦","曹雪芹",270);
        Book book2= new Book(1002,"金瓶梅","兰陵笑笑生",240);
        Book book3= new Book(1003,"好好的奇妙冒险","李奎",200);
        Book book4= new Book(1004,"张三的奇妙冒险","罗老师",220);
        //将五个图书信息录入到Manager
        manager1.add(book1);
        manager1.add(book2);
        manager1.add(book3);
        manager1.add(book4);
        //调用修改方法, <<好好的奇妙冒险>> 的价格改为170
        Book book = manager1.update("好好的奇妙冒险", 170);
        System.out.println(book);
        //查询李奎 写的图书信息
        System.out.println("查询李奎 写的图书信息 :");
        ArrayList<Book> author = manager1.query("李奎");
        System.out.println(author);
        //删除 好好的奇妙冒险 对应的图书;
        manager1.delete("好好的奇妙冒险");
        System.out.println("删除后: ");
        manager1.showAll();
        //查询书号为1001的图书
        System.out.println("查询书号为1001的图书: ");
        Book query = manager1.query(1001);
        System.out.println(query);
        //按价格排序
        System.out.println("按价格排序");
        manager1.sort();
        manager1.showAll();
    }
}

控制台:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/agood_man/article/details/108226130
今日推荐