【案例介绍】
- 案例描述
伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效、低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网所带来的更多便利。网络购书系统正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的图书。
本任务要求,使用所学知识编写一个基于控制台的购书系统,实现购书功能。输出所有图书的信息:包括每本书的编号、书名、单价、库存。
顾客购买书时,根据提示输入图书编号来选购需要的书,并根据提示输入购买书的的数量。
购买完毕后输出顾客的订单信息,包括:订单号、订单明细、订单总额。
- 运行结果
【案例目标】
- 学会分析“基于控制台的购书系统”程序任务实现的逻辑思路。
- 能独立完成“基于控制台的购书系统”程序的源代码编写、编译及运行。
- 理解和掌握面向对象的设计程序。
- 会用类图进行面向对象设计。
- 掌握封装的实现及好处。
- 包和访问控制修饰符的使用。
【案例分析】
(1)通过任务描述可知,该系统中必须包括3个实体类,类名及属性设置如下:
-
-
-
- 图书类(Book):
- 图书编号(id)
- 图书名称(name)
- 图书单价(price)
- 库存数量(storage)
- 订单项类(OrderItem):
- 图书(book)
- 购买数量(num)
- 订单类(Order):
- 订单号(orderID)
- 订单总额(total)
- 订单项列表(items)
- 图书类(Book):
-
-
(2)由于购买图书时,需要选择图书的数量,所以需要在订单项类里定义获取图书对象以及图书数量的方法。
(3)由于需要指定订单项以及获取订单的订单列表、订单号、订单总额等信息,所以需要有订单列表、订单号、订单总额指定订单项等方法。
【案例实现】
定义图书类Book,其代码如下所示。
Book.java
- public class Book {
- private int id; // 编号
- private String name; // 书名