要求:编写一个基于控制台的购书系统,实现购书功能。程序输出所有图书的信息,包括每本书的编号、书名、单价、库存。

顾客购书时,根据提示输入图书编号选购需要的书,并根据提示输入需要购买的书的数量。购买完毕输出顾客的订单信息,包括订单号、订单明细、订单总额。

由题可知,我们需要先创建3个类:分别是书类、订单类,以及订单中的订单信息(购买的书名、购买的数量、书的单价)——订单项类。

1、书类:

属性:书的编号、书名、书的单价、库存。

2、订单类:

属性:订单号、订单总额、订单项数组。

3、订单项类:

购买的数量、购买的书名、所购买书的单价。

另外,我们在系统中还需要将订单项里的内容添加到订单中,还需要在订单中获取所购买的书的各项信息,因此我们需要在订单类里构造以上这些方法。

具体代码如下:


Book类:

package demo1;public class Book {private int ID;private String name;private double price;private int num;public Book(int iD, String name, double price, int num) {ID = iD;this.name = name;this.price = price;this.num = num;}public int getID() {return ID;}public String getName() {return name;}public double getPrice() {return price;}public int getNum() {return num;}}

OrderItem类:

package demo1;public class OrderItem {private String name;private double price;private int number;public OrderItem(String name, double price, int number) {this.name = name;this.price = price;this.number = number;}public String getName() {return name;}public double getPrice() {return price;}public int getNumber() {return number;}}

Order类:

package demo1;public class Order {private String OrderId;OrderItem[] items = new OrderItem[3];//对象数组,默认值nullprivate double total;public Order(String orderId) {OrderId = orderId;}//添加订单项的方法public void addItemToItems(OrderItem item) {//找数组中空闲的位置插入for(int i=0;i<items.length;i++) {if (items[i]==null) {items[i]=item;return;}}}//打印订单的方法public void printOrder() {System.out.println("订单号:"+OrderId);System.out.println("书名\t\t单价\t数量");System.out.println("--------------------------");//遍历数组//增强forfor(OrderItem item:items) {if (item!=null) {System.out.println(item.getName()+"\t\t"+item.getPrice()+"\t"+item.getNumber());//计算总价total=total+item.getNumber()*item.getPrice();}}System.out.println("--------------------------");System.out.println("总价为:"+total);}}

Bookesystem:

package demo1;import java.util.Scanner;public class Booksystem {public static void main(String[] args) {String line = null;Book[] books = new Book[3];//创建对象数组,默认值null//对象数组的初始化books[0] = new Book(1, "组成原理", 24.5, 12);books[1] = new Book(2, "操作系统", 36.0, 8);books[2] = new Book(3, "程序设计", 56.5, 32);Order order = new Order("001");//订单号初始化Scanner sc = new Scanner(System.in);while(true) {System.out.println("编号\t书名\t\t单价\t库存\t");for(int i=0;i<books.length;i++) {line = books[i].getID()+"\t"+books[i].getName()+"\t"+"\t"+books[i].getPrice()+"\t"+books[i].getNum();System.out.println(line);}System.out.println("请输入你想购买的图书编号:");int inputID = sc.nextInt();System.out.println("请输入购买数量:");int inputNum = sc.nextInt();switch (inputID) {case 1:if(inputNum>books[0].getNum()) {System.out.println("库存不足,请重新输入!");System.out.println("当前库存为:"+books[0].getNum());break;}else {order.addItemToItems(new OrderItem(books[0].getName(),books[0].getPrice(),inputNum));break;}case 2:if(inputNum>books[1].getNum()) {System.out.println("库存不足,请重新输入!");System.out.println("当前库存为:"+books[1].getNum());break;}else {order.addItemToItems(new OrderItem(books[1].getName(),books[1].getPrice(),inputNum));break;}case 3:if(inputNum>books[2].getNum()) {System.out.println("库存不足,请重新输入!");System.out.println("当前库存为:"+books[2].getNum());break;}else {order.addItemToItems(new OrderItem(books[2].getName(),books[2].getPrice(),inputNum));break;}}System.out.println("是否继续购书?请选择yes/no");String next = sc.next();if (next.equals("no")) {break;}}//打印订单信息order.printOrder();}}

运行结果如下:

Java案例3-1 基于控制台的购书系统相关推荐

  1. java案例3:基于控制台的购书系统

    基于控制台的购书系统 顾客购买时,根据提示输入图书编号来选购需要的书及购买数的数量 购买完毕后,输出顾客的订单信息,包括订单号.订单明细.订单总额1.图书类(Book) 图书编号 id 图书名称 na ...

  2. Java基础案例3-1:基于控制台的购书系统

    [案例3-1]基于控制台的购书系统 [案例介绍] 伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效.低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的 ...

  3. [案例3-1]基于控制台的购书系统

    案例描述: 伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效.低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网 ...

  4. 【案例3-1】(基于控制台的购书系统)

    本任务要求:使用所学知识编写一个基于控制台的购书系统,实现购书功能,输出所有图书的信息,包括每本书的编号,书名,单价,库存. 顾客购买书时,根据提示输入图书编号来选需要的书,并根据提示输入购买书的数量 ...

  5. 任务一:基于控制台的购书系统 java实验报告

    目录 一.实验目的及要求 二.实验环境 三.实验内容 四.实验步骤 五.调试过程及实验结果 六.总结 七.源程序清单 任务一:基于控制台的购书系统 任务目的 理解和掌握面向对象的设计程序 会用类图进行 ...

  6. java程序当当网购书系统怎么运行_Java实现基于控制台的购书系统基本操作

    Java开发基于控制台的购书系统 题目 开发基于控制台的购书系统.具体要求如下: (1)输出所有图书的信息:包括每本图书的图书编号.图书名称.图书单价和库存数量. (2)顾客购买图书:根据提示输入图书 ...

  7. 基于控制台的购书系统

    基于控制台的购书系统 基于控制台的购书系统 基于控制台的购书系统 一.案例介绍 案例描述 二.案例目标 三.案例分析 四.总结 五.附录(运行截图) ` 一.案例介绍 案例描述 伴随互联网的蓬勃发展, ...

  8. 购买流程图java_Java实现基于控制台的购书系统基本操作

    Java开发基于控制台的购书系统 题目 开发基于控制台的购书系统.具体要求如下: (1)输出所有图书的信息:包括每本图书的图书编号.图书名称.图书单价和库存数量. (2)顾客购买图书:根据提示输入图书 ...

  9. 任务3-1 基于控制台的购书系统

    目录 题目 伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效.低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网 ...

  10. java实验报告:实验一 基于控制台的购书系统

    注:博主为初学java,此实验报告代码仅供参考,如有错误,还望指正. 水平有限,仅供参考 实验目的及要求 1.理解和掌握面向对象的设计程序 2.会用类图进行面向对象设计 3.掌握封装的实现及好处 4. ...

最新文章

  1. 锁屏界面提示某些设置已隐藏_iOS 13隐藏手电筒和相机快捷图标
  2. Little Sub and Enigma
  3. ios 表情符号 键盘_ios – 将键盘布局更改为表情符号
  4. Python绘制带标记和箭头的树结构
  5. 怎么修复服务器未知主机,无法连接到ejabberd服务器:未知主机异常
  6. 【Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏...
  7. 【SpringBoot_ANNOTATIONS】 生命周期 02 实现InitializingBean, DisposableBean接口
  8. cisco路由器IOS灾难恢复
  9. 最强社工必备查询网址汇总
  10. 游戏挂机时计算机设置在哪里,蜂窝助手怎么挂机 游戏蜂窝电脑版挂机设置教程...
  11. android app 尺寸,Android APP标注尺寸入门教程和app标注工具
  12. 圆排列公式推导_【圆面积公式计算】圆形面积计算公式
  13. 2015年数模B题学习报告
  14. 修复手机通讯服务器软件,手机通讯录误删怎么恢复?恢复原来如此简单,后悔太晚知道...
  15. 初识二维码 第二讲 二维码的结构
  16. 【前端必备项目】品优购商城前端
  17. ceph的数据存储之路(4) ----- rbd client 端的数据请求处理
  18. CNAME记录与MX记录冲突的解决方法
  19. c语言线程按顺序,C语言实现多线程排序
  20. 开源应用架构之​Selenium WebDriver(上)

热门文章

  1. 作为公共组软件工程师如何工作
  2. netty权威指南 微云_《Netty权威指南》(二)NIO 入门
  3. DJ Mix Pads 2 - Remix Version for Mac(独特DJ混音创作软件)
  4. 如何创建SQL Server Management Studio 18(SSMS)扩展
  5. SRIO传输协议学习
  6. si4463跳频功能简介
  7. linux记账软件下载,速手记账app安卓版下载-速手记账软件官方版v1.1.7-Linux公社
  8. spark 机器学习一 聚类算法案例小结
  9. 在html中使用rect函数,HTML canvas rect()用法及代码示例
  10. MapGIS矢量数据的误差校正