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 |
依次做如下操作:
- 将五个图书信息录入到Manager;
- 调用修改方法, 西游记 的价格改为170
- 查询书号为3003的图书。
- 查询李四 写的图书信息
- 按价格排序
- 打印所有图书信息
- 案例完成思路要求:
- 完成Book类的编写,进行合理封装。重写toString方法(30分)
- 在Manaer类中定义一个集合对象,可以通过ArrayList进行实例化,此集合是用来存放储户Book对象的,私有此对象,提供setter、getter方法,在定义集合对象时请使用泛型。(20分)
- 完成add\update \query方法
- 编写测试类得到Manager类中的用户集合,通过迭代器进行遍历,在遍历时可以调用showAll方法进行控制台信息打印。(20分)
- 其他
- 要求代码每个方法都有注释。(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集合案例图书管理系统相关推荐
- 基于Java基础的图书管理系统
文章目录 前言 一.前期准备 二.需求分析 三.核心代码开发 1. model 层 1.1. Book 类 1.2. User 类 1.3. NormalUser 类 1.4. Admin 类 2. ...
- 图书管理系统jsp代码_【程序源代码】使用Java开发的图书管理系统
关键字:java 管理系统 正文 | 内容 01 - [概述] 使用Java开发的图书管理系统,读者可以注册登录,登录时会判断账号类型再分别跳到各自对应的页面,读者可以查找,借阅,还书,查看历史借阅 ...
- 基于Java+Swing+mysql图书管理系统
基于Java+Swing+mysql图书管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.图书管理 3.图书添加 4.图书类别管理 5.图书类别添加 三.数据库 四.其它 1.其他系统实现 五. ...
- java用spring图书管理系统_基于Java + SpringMVC的图书管理系统
需求分析 基于Java+SpringMVC的图书管理系统, 实现读者和管理员登陆,图书的增删改查,读者的增删改查,借还图书,密码修改,卡号挂失,超期提醒等功能 本站提供了其他类型的 图书管理系统源代码 ...
- java计算机毕业设计图书管理系统源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计图书管理系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计图书管理系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 开 ...
- 简单用java做一个图书管理系统
简单用java做一个图书管理系统 首先,我们创建一个View类当做它的视图页 package view;import service.BookService; import service.UserS ...
- 基于java的图书租赁系统_基于java web的图书管理系统
基于java web的图书管理系统 追逐梦想 2019-06-11 20:20 浏览 3413 下载 36 如需远程调试,部署,等技术支持(非源码问题有偿),定制源码,请联系在线客服 基于jsp+se ...
- javaweb 图书管理系统完整代码_基于Java web的图书管理系统
源码编号:B-E00029点击查看(分类规则) 项目类型:Java EE项目(非开源) 项目名称:基于Java web的图书管理系统(library_system) 当前版本:V2.0.2版本 难度等 ...
- java简单图书管理系统的代码,java编写的图书管理系统源代码
<java编写的图书管理系统源代码>由会员分享,可在线阅读,更多相关<java编写的图书管理系统源代码(6页珍藏版)>请在人人文库网上搜索. 1.用户登陆数据库代码:impor ...
最新文章
- 改变进程的优先级,nice,getpriority,setpriority
- java 反射 静态域_java 内存 堆 栈
- linux共享库及/etc/ld.so.conf文件的应用
- pandas指南:做更高效的数据科学家
- oracle创建时分秒列,oracle 11g 分区表创建(年月日周时分秒)
- (转)JavaScript导出Word后对Word分页的处理
- 统计学——单(双)因素方差分析
- 基于LineMod与ORK的三维物体识别与姿态估计
- SqlServer 备份数据库语句
- 服务器安装虚拟声卡,虚拟声卡安装使用 虚拟声卡注意事项
- Unity3D世界坐标和局部坐标的关系,之间转换浅谈
- 淘宝API 添加上传商品图片
- 合肥工业大学计算机保研,合肥工大(合肥工业大学保研去向)
- 企业最大的危机是来自于内部
- canu三代组装软件安装
- 百度云盘核心功能需求分析
- 驱动你做一件事的动力来源是什么?
- 分享 6 个 Vue3 开发必备的 VSCode 插件
- 费舍尔精确检验在关联分析中的应用
- 树莓派Ubuntu 16.04 MATA系统 修改用户文件夹名后,提示configure it with blueman-service...