1、题目

编写一个Java程序,模拟顾客去书店选书、结算和买书的过程。

界面效果

输出效果

...
欢迎来到汉唐书城....
图书列表
图书编号            图书名称            图书价格            库存数量
------------------------------------------------------------
1               Java教程          30.6            30
2               JSP指南           42.1            40
3               SSM架构           47.3            15
------------------------------------------------------------
请输入图书编号选择图书:
1
书店管理员已经找到了《Java教程》的书。
书店管理员已经找到了《30.6》的书价格。
请输入购买图书的数量:
1
请继续购买图书...
请输入图书编号选择图书:
2
书店管理员已经找到了《JSP指南》的书。
书店管理员已经找到了《42.1》的书价格。
请输入购买图书的数量:
2
请继续购买图书...
请输入图书编号选择图书:
3
书店管理员已经找到了《SSM架构》的书。
书店管理员已经找到了《47.3》的书价格。
请输入购买图书的数量:
3
请继续购买图书...
您已经买了3种书
图书订单
图书订单编号:0001
图书名称    购买数量    图书单价
------------------------------------------------------------
Java教程      1       30.6
JSP指南       2       42.1
SSM架构       3       47.3
------------------------------------------------------------
订单总额:256.7Process finished with exit code 0

2、代码示例

图书:


public class Book {private String bookId;private String bookName;private Double price;private int storage;public Book(){}public String getBookId() {return bookId;}public void setBookId(String bookId) {this.bookId = bookId;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}public int getStorage() {return storage;}public void setStorage(int storage) {this.storage = storage;}@Overridepublic String toString() {return "Book{" +"bookId='" + bookId + '\'' +", bookName='" + bookName + '\'' +", price=" + price +", storage=" + storage +'}';}
}

订单:


import java.util.Date;//订单
public class Order {private String orderId;private Double total;private Date date;private OrderItem[] items;public Order(){//限制只能买三本书this.items = new OrderItem[3];this.total = 0.0;}//显示订单明细public void  showDetail(){System.out.println("图书订单");System.out.println("图书订单编号:"  +  this.orderId);System.out.println("图书名称\t购买数量\t图书单价");System.out.println("------------------------------------------------------------");for (OrderItem orderItem : items) {System.out.println(orderItem.getBookName()  + "\t\t" +    orderItem.getNum() + "\t\t" + orderItem.getPrice());}System.out.println("------------------------------------------------------------");}//计算总价格public void calcTotal(){for (OrderItem orderItem : items) {//System.out.println( orderItem  );this.total  +=  orderItem.getNum()  * orderItem.getPrice();}System.out.println("订单总额:"  +  this.total);}public String getOrderId() {return orderId;}public void setOrderId(String orderId) {this.orderId = orderId;}public Double getTotal() {return total;}public void setTotal(Double total) {this.total = total;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public OrderItem[] getItems() {return items;}public void setItems(OrderItem[] items) {this.items = items;}
}

订单条目:


//订单项目
public class OrderItem {private String bookName;private double price;private int num;public OrderItem(){}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}@Overridepublic String toString() {return "OrderItem{" +"bookName='" + bookName + '\'' +", price=" + price +", num=" + num +'}';}
}

书店:


//书店
public class Shop {//书架private Book[]  books;public Shop(){Book book1 = new Book();book1.setBookId("1");book1.setBookName("Java教程");book1.setPrice(30.6);book1.setStorage(30);Book book2 = new Book();book2.setBookId("2");book2.setBookName("JSP指南");book2.setPrice(42.1);book2.setStorage(40);Book book3 = new Book();book3.setBookId("3");book3.setBookName("SSM架构");book3.setPrice(47.3);book3.setStorage(15);this.books = new Book[3];books[0]  = book1;books[1]  = book2;books[2]  = book3;}//显示书店的书public void show(){System.out.println("欢迎来到西安汉唐书城....");System.out.println("图书列表");System.out.println("图书编号\t\t\t图书名称\t\t\t图书价格\t\t\t库存数量");System.out.println("------------------------------------------------------------");for (Book book : books) {System.out.println(  book.getBookId()  +  "\t\t\t\t" +   book.getBookName() +  "\t\t\t" +  book.getPrice() +  "\t\t\t" +  book.getStorage()  );}System.out.println("------------------------------------------------------------");}//根据图书编号查询书名public String findBookName(String bookId){String bookName = "";for (Book book : books) {if (book.getBookId().equals(bookId)){bookName = book.getBookName();break;}}System.out.println("书店管理员已经找到了《"  +  bookName +  "》的书。");return bookName;}//根据图书编号查询书名public Double findBookPrice(String bookId){Double price = 0.0;for (Book book : books) {if (book.getBookId().equals(bookId)){price = book.getPrice();break;}}System.out.println("书店管理员已经找到了《"  +  price +  "》的书价格。");return price;}}

购买场景:


import java.util.Date;
import java.util.Scanner;public class Client {public static void main(String[] args) {//扫描器Scanner scanner = new Scanner(System.in);//书店Shop shop = new Shop();shop.show();//买书Order order  = new Order();order.setOrderId("0001");order.setDate(  new Date() );for (int i = 0; i < order.getItems().length; i++) {//在每次购买的过程中产生一个订单条目对象OrderItem orderItem  = new OrderItem();//书名System.out.println("请输入图书编号选择图书:");String bookId  = scanner.next();//根据图书编号查询书名orderItem.setBookName(shop.findBookName(bookId));//单价orderItem.setPrice(shop.findBookPrice( bookId )  );//数量System.out.println("请输入购买图书的数量:");int num = 0;num = scanner.nextInt();orderItem.setNum(num);order.getItems()[i] = orderItem;System.out.println("请继续购买图书...");}System.out.println(  "您已经买了"  +  order.getItems().length +  "种书");//结算order.showDetail();order.calcTotal();}
}

《Java SE编程365例》003: 我的电子书城相关推荐

  1. Java经典编程300例 word 免费下载

    Java经典编程300例  word 下载 其他Java全部资料 公号:纯洁的明依.回复 :  编程300例

  2. 汉诺塔问题java编程,Java经典编程300例之实例047 汉诺塔问题求解(递归)

    实例说明 汉诺塔问题的描述如下:有A.B和C 3跟柱子,在A上从下往上按照从小到大的顺序放着64个圆盘,以B为中介,把盘子全部移动到C上.移动过程中,要求任意盘子的下面要么没有盘子,要么只能有比它大的 ...

  3. 目录——Java趣味编程100例

    第1章  变幻多姿的图表(  教学视频:69分钟) 1 1.1  金字塔图案 1 1.2  九九乘法表 3 1.3  余弦曲线 5 1.4  奥运五环旗 10 1.5  杨辉三角 12 1.6  国际 ...

  4. java编程源代码_java经典编程300例源代码下载

    java经典编程300例源代码是针对java编程的编程源代码.以基础知识为框架,介绍了各部分知识所对应的常用开发实例,并进行了透彻解代码解析和知识扩展4部分,每一部分都进行了细致的说明.__java经 ...

  5. Java SE 8新特性导览:使用Lambda Expression进行函数式编程

    " Java SE 8新功能浏览 "系列的这篇文章将深入了解Lambda表达式 . 我将向您展示Lambda表达式的几种不同用法. 它们都具有功能接口的共同实现. 我将解释编译器如 ...

  6. Java SE day21_网络编程

    Java SE day21_网络编程 如果一个类没有构造方法: 案例(UDP的Socket) 案例(键盘输入接受) 案例(多线程聊天) TCP连接 案例(阻塞) 案例(键盘录入-输出控制台) 案例(多 ...

  7. Java SE 网络编程

    Java SE 网络编程 目录 Java SE 网络编程 1.计算机网络概念 2.网络通讯协议 2.2.通讯接口 3.网络分层 3.2.OSI七层协议|TCP/IP五层协议 3.3 . 封装 3.4. ...

  8. java集合到线程的考试_成都汇智动力-Java SE考试编程题总结

    原标题:成都汇智动力-Java SE考试编程题总结 线程和进程的区别: (1)进程是运行中的程序,拥有自己独立的内存空间和资源; (2)一个进程可以有一个或多个线程组成,且至少有一个线程称为主线程; ...

  9. JAVA SE 语言编程-杨千锋-专题视频课程

    JAVA SE 语言编程-3572人已学习 课程介绍         第一周: 内容包括,Java环境搭建,变量,数据类型,二进制,if/else,switch,for,while,do while等 ...

  10. 一个编程小白的Java SE学习日志 Ⅵ——继承【极客BOY-米奇】

    文章目录 前言(转载请说明作者!)3.25~3.29编写 自我问答 任务导引:电子宠物Beta 任务UML图 继承 什么是继承? 如何实现继承? 案例 子类可以继承父类所有的成员和方法? 继承的特点 ...

最新文章

  1. 基于地平面的单目视觉里程计绝对尺度估计
  2. 计算机加入到域的注意事项
  3. IOS学习笔记之十七 (NSDate、NSDateFormatter、NSCalendar、NSDateComponents、NSTimer)
  4. vue命令行错误处理
  5. 小米MIX 4真机亮屏谍照曝光:四边框极窄,震撼
  6. 科大讯飞交通超脑荣获 2019 年大数据应用最佳实践案例 TOP10
  7. 基于名字自动化之原理(1)
  8. bzoj 1171 并查集优化顺序枚举 | 线段树套单调队列
  9. Vue生成条形码jsbarcode
  10. hp服务器修复计算机,HP(惠普)服务器 修复 Intelligent Provisioning
  11. Editplus 使用技巧大全
  12. Block-scoped declarations (let, const, function, class) not yet supported outs报错解决
  13. php短信接口开发demo,php短信接口DEMO-云信互联PaaS平台
  14. GPU显存占满但利用率却很低
  15. Pd虚拟机安装系统提示 “网络初始化失败 操作失败 ”的解决方案
  16. 竞价推广(SEM)是什么
  17. 网络切片技术缺点_什么是网络切片?
  18. Html标签——table表格
  19. 当年明月 Vs. 阎崇年
  20. 计算机等级考试基础部分试题,计算机等级考试基础部分试题

热门文章

  1. diskmark使用教程
  2. html怎么键tab键,tab键的html
  3. ARM启动流程及启动代码分析
  4. 微信小程序退出到微信
  5. 期货交易中的一些术语
  6. 平方米的计算机公式,计算平方的公式 各类计算公式
  7. 工作第一年的所见所闻所学所想
  8. 设计测测试用例的五大方法
  9. OpenXML标签含义
  10. SpringCloud Alibaba实战第三课 Gateway、Sentinel实战