Java图书购买订单系统的简单实现(使用ArrayList集合框架)

您所在的位置:网站首页 图书编号用什么数据类型表示 Java图书购买订单系统的简单实现(使用ArrayList集合框架)

Java图书购买订单系统的简单实现(使用ArrayList集合框架)

2024-07-12 15:27| 来源: 网络整理| 查看: 265

实现了一个简单的图书购买订单系统 主要类为: Admin类: **购买方法:**通过对预设的图书列表进行遍历。如果输入的购买图书编号与集合中的某个元素对象的图书编号相同,且此元素对象的库存大于购买数,购买数大于0:则在order对象的items属性列表中,新建一个OrderItem类型元素对象,将相对应的图书名称、价格、购买数量作为其属性,然后将book集合相应对象的库存减去购买数量。如果输入的购买数量大于库存:则输出库存不足。然后进行循环调用自身,或调用订单方法。 **订单方法:**对订单对象中的items集合属性进行判断,是否为空。不为空则遍历items集合属性,输出items集合中元素对象的属性,汇总购买总额,打印订单。 订单Order类: **属性:**订单号(orderId)、订单总额(total)、订单日期(date)、订单项列表(items) 其中订单号(orderId)为随机数与字符串拼接,订单项列表(items)为ArrayList数据类型 图书订单项OrderItem类: **属性:**图书名称(bookName)、图书单价(price)、购买数量(num) 图书Book类: **属性:**图书编号(bookId)、图书名称(bookName)、图书单价(price)、库存数量(storage)

import java.util.*; /** * 主类测试 * @author 万星明 * @version 1.0 * @time */ public class Admin { //生成全局Scanner对象sc,方便输入 static Scanner sc = new Scanner(System.in); /** * @Admin主类的主方法 * @param args */ public static void main(String[] args) { //创建一个订单对象order Order order = new Order(); //创建一个自定义Book泛型的ArrayList集合book ArrayList book = new ArrayList(); //创建book集合中的元素对象 book.add(new Book("1","java教程",30.6,30)); book.add(new Book("2","jsp 指南",42.1,40)); book.add(new Book("3","SSH 架构",47.3,15)); System.out.println("=========图书列表========="); System.out.println("图书列表===图书名称==单价==库存"); //对集合book进行遍历,输出其元素对象的属性 for (Book book2 : book) { System.out.println(book2.getBookID()+"--------"+book2.getBookName()+"--"+book2.getPrice()+"--"+book2.getStorage()); } //调用buy方法,传入order对象以及book集合 buy(order,book); } /** * @buy方法,提供购买处理 * @param order * @param book */ public static void buy(Order order,ArrayList book) { System.out.println("请输入购买图书编号:"); String bookID = sc.next(); System.out.println("请输入购买该图书数量:"); int num = sc.nextInt(); //对传入的book集合进行遍历 for(int i=0;i=num && num>0) { //则在order对象的items属性列表中,新建一个OrderItem类型元素对象,将相对应的图书名称、价格、购买数量作为其属性 order.items.add(new OrderItem(book.get(i).getBookName(),book.get(i).getPrice(),num)); //将book集合相应对象的库存减去购买数量 book.get(i).setStorage(book.get(i).getStorage()-num); }else if(num>book.get(i).getStorage()){ //如果输入的购买数量大于库存,则输出库存不足 System.out.println("库存不足"); break; }else { //否则无消费 System.out.println("无消费!"); } } } System.out.println("是否继续购买!y/n:"); String anwser = sc.next(); //如果判断是否继续购买 if(anwser.equalsIgnoreCase("y")) { //是,则调用buy自身 buy(order,book); }else { //否,调用order订单方法 order(order,book); } } /** * @order方法,提供打印订单处理 * @param order * @param book */ public static void order(Order order,ArrayList book) { System.out.println(" 图书订单 "); System.out.println("图书订单号:"+order.orderID); System.out.println("图书名称 购买数量 图书单价"); System.out.println("--------------------------"); //对order对象中的items集合属性进行判断,是否为空 if(order.items.isEmpty()) { //为空则 System.out.println("无任何消费!"); }else { //不为空则遍历items集合属性 for (OrderItem M : order.items) { //输出items集合中元素对象的属性 System.out.println(M.getBookName()+" "+M.getNum()+" "+M.getPrice()); //汇总购买总额 order.total +=M.getNum()*M.getPrice(); } } System.out.println("--------------------------"); System.out.println("订单总额: "+order.total); System.out.println("日期:"+order.date); } } --------------------------------------------------------------------------------------------------- import java.util.ArrayList; import java.util.Date; import java.util.Random; /** * 订单类 * @author 万星明 * @version 1.0 * @time */ public class Order { /** * 订单号(orderId)、订单总额(total)、订单日期(date)、订单项列表(items) */ //创建一个随机数器 Random r = new Random(); //随机一个四位数的整数型值,并将其转为字符串,与10086连接起来,赋值给订单号orderID属性 public String orderID = "10086"+String.valueOf(r.nextInt(8999)+1000); double total; Date date = new Date(); //这是一个集合列表属性 ArrayList items = new ArrayList(); 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 ArrayList getItems() { return items; } public void setItems(ArrayList items) { this.items = items; } } --------------------------------------------------------------------------------------------------- /** * 图书订单项类 * @author 万星明 * @version 1.0 * @time */ public class OrderItem { /** * 图书名称(bookName)、图书单价(price)、购买数量(num) */ private String bookName; private double price; private int num; public OrderItem() { } public OrderItem(String bookName, double price, int num) { super(); this.bookName = bookName; this.price = price; this.num = num; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } 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; } } --------------------------------------------------------------------------------------------------- /** * 图书类 * @author 万星明 * @version 1.0 * @time */ public class Book { /** * 图书编号(bookId)、图书名称(bookName)、图书单价(price)、库存数量(storage) */ private String bookID; private String bookName; private double price; private int storage; public Book() { } public Book(String bookID, String bookName, double price, int storage) { super(); this.bookID = bookID; this.bookName = bookName; this.price = price; this.storage = storage; } 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; } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3