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

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

依次做如下操作:

    • 将五个图书信息录入到Manager;
    • 调用修改方法, 西游记 的价格改为170
    • 查询书号为3003的图书。
    • 查询李四 写的图书信息
    • 按价格排序
    • 打印所有图书信息
  1. 案例完成思路要求:
  1. 完成Book类的编写,进行合理封装。重写toString方法(30分)
  2. 在Manaer类中定义一个集合对象,可以通过ArrayList进行实例化,此集合是用来存放储户Book对象的,私有此对象,提供setter、getter方法,在定义集合对象时请使用泛型。(20分)
  3. 完成add\update \query方法
  4. 编写测试类得到Manager类中的用户集合,通过迭代器进行遍历,在遍历时可以调用showAll方法进行控制台信息打印。(20分)
  1. 其他
  2. 要求代码每个方法都有注释。(10分)
package 图书管理系统;public class Book implements Comparable<Book>{private int id;private String name;private String author;private double price;//get setpublic 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 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 Book(int id, String name, String author, double price) {super();this.id = id;this.name = name;this.author = author;this.price = price;}@Overridepublic String toString() {return "Book [账号:" + id + "\t书名:" + name + "\t作者:" + author + "\t价格:" + price + "]";}@Overridepublic int compareTo(Book o) {if(this.price > o.price) {return 1;}else if(this.price < o.price) {return -1;}else {return 0;}}}package 图书管理系统;import java.util.ArrayList;
import java.util.List;public class Manager {//创建一个ArrayList集合存储图书信息private List<Book> books = new ArrayList<Book>();//定义添加图书的方法addBookspublic void addBook(Book b) {this.books.add(b);System.out.println("图书"+b.getName()+"添加成功");}//按书名修改价格的方法 updatepublic void update(String name, double newPrice) {for(Book b : books) {if(name.equals(b.getName())) {b.setPrice(newPrice);System.out.println("价格修改成功!");}}}//按账号查询图书的方法querypublic Book queryId(int id) {Book bo = null;for(Book b : books) {if(id == b.getId()) {bo = b;}}return bo;}//按作者查询的图书的方法 querypublic List<Book> queryAuthor(String authorName) {List<Book> list = new ArrayList<Book>();for(Book b : this.books) {if(authorName.equals(b.getAuthor())) {list.add(b);}}return list;}//查询所有图书的方法 showAllpublic List<Book> showAll() {return this.books;}
}package 图书管理系统;import java.util.Collections;
import java.util.List;public class Test {public static void main(String[] args) {//实例化一个Manager对象Manager m = new Manager();//将五个图书信息录入到Managerm.addBook(new Book(1001, "红楼梦", "张三", 200));m.addBook(new Book(2002, "西游记", "李四", 140.50));m.addBook(new Book(3003, "三国演义", "王五", 130));m.addBook(new Book(4004, "水浒传", "赵六", 83));m.addBook(new Book(5005, "三个和尚", "李四", 50));//调用修改方法, 西游记 的价格改为170m.update("西游记", 170);//查询书号为3003的图书System.out.println("查询3003图书的结果为:"+m.queryId(3003));//查询李四 写的图书信息List<Book> q = m.queryAuthor("李四");for(Book b : q) {System.out.println("查询作者李四的书结果为:"+b);}//按价格排序System.out.println("********排序前********");List<Book> books = m.showAll();for(Book b : books) {System.out.println(b);}System.out.println("********排序后********");Collections.sort(books);for(Book b : books) {System.out.println(b);}}}

运行结果:

Java集合案例图书管理系统相关推荐

  1. 基于Java基础的图书管理系统

    文章目录 前言 一.前期准备 二.需求分析 三.核心代码开发 1. model 层 1.1. Book 类 1.2. User 类 1.3. NormalUser 类 1.4. Admin 类 2. ...

  2. 图书管理系统jsp代码_【程序源代码】使用Java开发的图书管理系统

    关键字:java 管理系统  正文 | 内容 01 - [概述] 使用Java开发的图书管理系统,读者可以注册登录,登录时会判断账号类型再分别跳到各自对应的页面,读者可以查找,借阅,还书,查看历史借阅 ...

  3. 基于Java+Swing+mysql图书管理系统

    基于Java+Swing+mysql图书管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.图书管理 3.图书添加 4.图书类别管理 5.图书类别添加 三.数据库 四.其它 1.其他系统实现 五. ...

  4. java用spring图书管理系统_基于Java + SpringMVC的图书管理系统

    需求分析 基于Java+SpringMVC的图书管理系统, 实现读者和管理员登陆,图书的增删改查,读者的增删改查,借还图书,密码修改,卡号挂失,超期提醒等功能 本站提供了其他类型的 图书管理系统源代码 ...

  5. java计算机毕业设计图书管理系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计图书管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计图书管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 开 ...

  6. 简单用java做一个图书管理系统

    简单用java做一个图书管理系统 首先,我们创建一个View类当做它的视图页 package view;import service.BookService; import service.UserS ...

  7. 基于java的图书租赁系统_基于java web的图书管理系统

    基于java web的图书管理系统 追逐梦想 2019-06-11 20:20 浏览 3413 下载 36 如需远程调试,部署,等技术支持(非源码问题有偿),定制源码,请联系在线客服 基于jsp+se ...

  8. javaweb 图书管理系统完整代码_基于Java web的图书管理系统

    源码编号:B-E00029点击查看(分类规则) 项目类型:Java EE项目(非开源) 项目名称:基于Java web的图书管理系统(library_system) 当前版本:V2.0.2版本 难度等 ...

  9. java简单图书管理系统的代码,java编写的图书管理系统源代码

    <java编写的图书管理系统源代码>由会员分享,可在线阅读,更多相关<java编写的图书管理系统源代码(6页珍藏版)>请在人人文库网上搜索. 1.用户登陆数据库代码:impor ...

最新文章

  1. 改变进程的优先级,nice,getpriority,setpriority
  2. java 反射 静态域_java 内存 堆 栈
  3. linux共享库及/etc/ld.so.conf文件的应用
  4. pandas指南:做更高效的数据科学家
  5. oracle创建时分秒列,oracle 11g 分区表创建(年月日周时分秒)
  6. (转)JavaScript导出Word后对Word分页的处理
  7. 统计学——单(双)因素方差分析
  8. 基于LineMod与ORK的三维物体识别与姿态估计
  9. SqlServer 备份数据库语句
  10. 服务器安装虚拟声卡,虚拟声卡安装使用 虚拟声卡注意事项
  11. Unity3D世界坐标和局部坐标的关系,之间转换浅谈
  12. 淘宝API 添加上传商品图片
  13. 合肥工业大学计算机保研,合肥工大(合肥工业大学保研去向)
  14. 企业最大的危机是来自于内部
  15. canu三代组装软件安装
  16. 百度云盘核心功能需求分析
  17. 驱动你做一件事的动力来源是什么?
  18. 分享 6 个 Vue3 开发必备的 VSCode 插件
  19. 费舍尔精确检验在关联分析中的应用
  20. 树莓派Ubuntu 16.04 MATA系统 修改用户文件夹名后,提示configure it with blueman-service...

热门文章

  1. AutoJs学习-关于各种头条阅读自动赚金币的思路-实践中
  2. 扩展欧几里得的几个定理以及证明
  3. STL容器基础 - 0
  4. 2022年广东省安全员A证第三批(主要负责人)考试练习题及在线模拟考试
  5. 2022年起重机司机(限门式起重机)考试题库及在线模拟考试
  6. 2022杭电多校八 1011-Stormwind(贪心)
  7. MATLAB画图中图形对象、文字标注、希腊字母显示等
  8. MySQL锁表解决方法(转)
  9. 干货来袭:抖音定位的重要性及抖音四步曲丨国仁网络资讯
  10. FAThdc.inc