Java 集合例题:实现一个简单的图书管理系统

  • 案例题目描述:

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

1)定义图书类Book,具有属性账号id,书名name、作者author 和价格price,在创建图书对象时要求通过构造器进行创建,一次性将四个属性全部赋值,要求账户属性是int型,名称是String型,作者是String型,价格是double,请合理进行封装。

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

3)定义管理类Manager,定义添加图书的方法add,按书名修改价格的方法 update,按账号查询图书的方法query,要求返回Book类型。按作者查询的图书的方法 query,要求返回Book类型。查询所有图书的方法 showAll

4)按价格降序排序方法 sort

5)编写Test测试类,图书信息如下:

书号

书名

作者

价格

1001

红楼梦

张三

200

2002

西游记

李四

140.50

3003

三国演义

王五

130

4004

水浒传

赵六

83

5005

三个和尚

李四

50

依次做如下操作:

  1. 将五个图书信息录入到Manager;
  2. 调用修改方法, 西游记 的价格改为170
  3. 查询书号为3003的图书。
  4. 查询李四 写的图书信息
  5. 按价格排序
  6. 打印所有图书信息

案例完成思路要求:

  1. 完成Book类的编写,进行合理封装。重写toString方法(30分)
  2. 在Manaer类中定义一个集合对象,可以通过ArrayList进行实例化,此集合是用来存放储户Book对象的,私有此对象,提供setter、getter方法,在定义集合对象时请使用泛型。(20分)
  3. 完成add\update \query方法
  4. 编写测试类得到Manager类中的用户集合,通过迭代器进行遍历,在遍历时可以调用showAll方法进行控制台信息打印。(20分)

其他 

      5.要求代码每个方法都有注释。(10分)

package BooksManagementSystem;


//图书类
public class Book implements Comparable{
//属性账号id,书名name、作者author 和价格price
	private int id;
	private String name;
	private String iauthor;
	private double price;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getIauthor() {
		return iauthor;
	}
	public void setIauthor(String iauthor) {
		this.iauthor = iauthor;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public Book(int id, String name, String iauthor, double price) {
		super();
		this.id = id;
		this.name = name;
		this.iauthor = iauthor;
		this.price = price;
	}
	public Book() {
		super();
	}
	@Override
	public String toString() {
		return "Book [id=" + id + ", name=" + name + ", iauthor=" + iauthor + ", price=" + price + "]";
	}
	@Override
	public int compareTo(Book arg0) {
		if(this.price>arg0.getPrice()){
			return -1;
		}else if(this.price books;
	public ArrayList getBooks() {
		return books;
	}
	public void setBooks(ArrayList books) {
		this.books = books;
	}
	public Manager() {
		super();
	}
	public Manager(ArrayList books) {
		super();
		this.books = books;
	}
	public void add(Book b){//添加图书的方法
		books.add(b);
	}
	public void update(String name,double price){//按书名修改价格的方法
		boolean isSel=false;//查询到了吗
		for (int i = 0; i < books.size(); i++) {
			if(name.equals(books.get(i).getName())){
				books.get(i).setPrice(price);
				isSel=true;
			}
		}
		if(isSel==true){
			System.out.println("价格修改成功");
		}else{
			System.out.println("您输入的书名没有查询到!");
		}
	}
	public Book queryId(int id){//按账号查询图书的方法
		Book b=new Book();//查询到的图书
		for (int i = 0; i < books.size(); i++) {
			if(books.get(i).getId()==id){
				b=books.get(i);
			}
		}
		return b;
	}
	public Book queryIauthor(String iauthor){//按作者查询的图书的方法 
		Book b=new Book();
		for (int i = 0; i < books.size(); i++) {
			if(iauthor.equals(books.get(i).getIauthor())){
				b=books.get(i);
			}
		}
		return b;
	}
	public void showAll(){//查询所有图书的方法
		for (Book b:books) {
			System.out.println(b.toString());
		}
	}
	public void sort(){//按价格降序排序方法
		Collections.sort(books);
	}
}

package BooksManagementSystem;

import java.util.ArrayList;

//测试类
public class Test {
	public static void main(String[] args) {
		//初始化
		Manager man=init();
		//最初所有图书信息
		System.out.println("最初所有图书信息");
		man.showAll();
		//调用修改方法, 西游记的价格改为170
		man.update("西游记",170);
		//查询书号为3003的图书。
		Book b=man.queryId(3003);
		System.out.println("3003号书是:"+b.toString());
		//查询李四 写的图书信息
		Book b2=man.queryIauthor("李四");
		System.out.println("李四写的书是:"+b2.toString());
		//按价格降序排序
		man.sort();
		//打印所有图书信息
		System.out.println("最终的图书信息:");
		man.showAll();
	}
	public static Manager init(){
		//实例化管理类
		Manager man=new Manager();
		//给管理类里集合赋值
		ArrayList books=new ArrayList();
		books.add(new Book(1001,"红楼梦","张三",200));
		books.add(new Book(2002,"西游记","李四",140.50));
		books.add(new Book(3003,"三国演义","王五",130));
		books.add(new Book(4004,"水浒传","赵六",83));
		books.add(new Book(5005,"三个和尚","李四",50));
		man.setBooks(books);
		return man;
	}
}

运行结果:

Java 集合例题:实现一个简单的图书管理系统_第1张图片

你可能感兴趣的:(JavaSE练习题,eclipse,java)