Java案例3-1 基于控制台的购书系统
要求:编写一个基于控制台的购书系统,实现购书功能。程序输出所有图书的信息,包括每本书的编号、书名、单价、库存。
顾客购书时,根据提示输入图书编号选购需要的书,并根据提示输入需要购买的书的数量。购买完毕输出顾客的订单信息,包括订单号、订单明细、订单总额。
由题可知,我们需要先创建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 基于控制台的购书系统相关推荐
- java案例3:基于控制台的购书系统
基于控制台的购书系统 顾客购买时,根据提示输入图书编号来选购需要的书及购买数的数量 购买完毕后,输出顾客的订单信息,包括订单号.订单明细.订单总额1.图书类(Book) 图书编号 id 图书名称 na ...
- Java基础案例3-1:基于控制台的购书系统
[案例3-1]基于控制台的购书系统 [案例介绍] 伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效.低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的 ...
- [案例3-1]基于控制台的购书系统
案例描述: 伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效.低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网 ...
- 【案例3-1】(基于控制台的购书系统)
本任务要求:使用所学知识编写一个基于控制台的购书系统,实现购书功能,输出所有图书的信息,包括每本书的编号,书名,单价,库存. 顾客购买书时,根据提示输入图书编号来选需要的书,并根据提示输入购买书的数量 ...
- 任务一:基于控制台的购书系统 java实验报告
目录 一.实验目的及要求 二.实验环境 三.实验内容 四.实验步骤 五.调试过程及实验结果 六.总结 七.源程序清单 任务一:基于控制台的购书系统 任务目的 理解和掌握面向对象的设计程序 会用类图进行 ...
- java程序当当网购书系统怎么运行_Java实现基于控制台的购书系统基本操作
Java开发基于控制台的购书系统 题目 开发基于控制台的购书系统.具体要求如下: (1)输出所有图书的信息:包括每本图书的图书编号.图书名称.图书单价和库存数量. (2)顾客购买图书:根据提示输入图书 ...
- 基于控制台的购书系统
基于控制台的购书系统 基于控制台的购书系统 基于控制台的购书系统 一.案例介绍 案例描述 二.案例目标 三.案例分析 四.总结 五.附录(运行截图) ` 一.案例介绍 案例描述 伴随互联网的蓬勃发展, ...
- 购买流程图java_Java实现基于控制台的购书系统基本操作
Java开发基于控制台的购书系统 题目 开发基于控制台的购书系统.具体要求如下: (1)输出所有图书的信息:包括每本图书的图书编号.图书名称.图书单价和库存数量. (2)顾客购买图书:根据提示输入图书 ...
- 任务3-1 基于控制台的购书系统
目录 题目 伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效.低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网 ...
- java实验报告:实验一 基于控制台的购书系统
注:博主为初学java,此实验报告代码仅供参考,如有错误,还望指正. 水平有限,仅供参考 实验目的及要求 1.理解和掌握面向对象的设计程序 2.会用类图进行面向对象设计 3.掌握封装的实现及好处 4. ...
最新文章
- 锁屏界面提示某些设置已隐藏_iOS 13隐藏手电筒和相机快捷图标
- Little Sub and Enigma
- ios 表情符号 键盘_ios – 将键盘布局更改为表情符号
- Python绘制带标记和箭头的树结构
- 怎么修复服务器未知主机,无法连接到ejabberd服务器:未知主机异常
- 【Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏...
- 【SpringBoot_ANNOTATIONS】 生命周期 02 实现InitializingBean, DisposableBean接口
- cisco路由器IOS灾难恢复
- 最强社工必备查询网址汇总
- 游戏挂机时计算机设置在哪里,蜂窝助手怎么挂机 游戏蜂窝电脑版挂机设置教程...
- android app 尺寸,Android APP标注尺寸入门教程和app标注工具
- 圆排列公式推导_【圆面积公式计算】圆形面积计算公式
- 2015年数模B题学习报告
- 修复手机通讯服务器软件,手机通讯录误删怎么恢复?恢复原来如此简单,后悔太晚知道...
- 初识二维码 第二讲 二维码的结构
- 【前端必备项目】品优购商城前端
- ceph的数据存储之路(4) ----- rbd client 端的数据请求处理
- CNAME记录与MX记录冲突的解决方法
- c语言线程按顺序,C语言实现多线程排序
- 开源应用架构之​Selenium WebDriver(上)
热门文章
- 作为公共组软件工程师如何工作
- netty权威指南 微云_《Netty权威指南》(二)NIO 入门
- DJ Mix Pads 2 - Remix Version for Mac(独特DJ混音创作软件)
- 如何创建SQL Server Management Studio 18(SSMS)扩展
- SRIO传输协议学习
- si4463跳频功能简介
- linux记账软件下载,速手记账app安卓版下载-速手记账软件官方版v1.1.7-Linux公社
- spark 机器学习一 聚类算法案例小结
- 在html中使用rect函数,HTML canvas rect()用法及代码示例
- MapGIS矢量数据的误差校正