完成超市购物小票案例:下图为购物小票案例的控制台输出的数据

首先定义一个商品的实体类代码如下:

/** 定义GoodsItem类(名称、货号、单价、数量、计价单位、金额)*/
public class GoodsItem {/** 成员变量*/// 商品名称private String name;// 商品标识private String id;// 商品单价private double price;// 商品数量private int number;// 计价单位private String unit;// 金额private double money;/** 构造方法*/public GoodsItem() {super();}public GoodsItem(String name, String id, double price, int number, String unit, double money) {this.name = name;this.id = id;this.price = price;this.number = number;this.unit = unit;this.money = money;}/** getter/setter·½·¨*/public String getName() {return name;}public void setName(String name) {this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public String getUnit() {return unit;}public void setUnit(String unit) {this.unit = unit;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}}

然后创建一个ShoppingReceipt类,用于实现小票的打印,和方法的创建,这里我把主函数和方法都放在这一个类中,方便你们看。

        这里我把方法和mian函数给你们分开放,但是写的时候我是写在一起的,分开放有利于你们观看。

        我们根据图片将超市购物系统的原始界面打印出来,首先我们要先创建两个集合用于存储商品,一个是存储商品的集合,一个是购物车的集合。 然后再主函数中,我们要循环操作所以用while,当然首先我们要先初始化商品将商品添加到系统中

public class ShoppingReceipt {// 定义集合存储商品static ArrayList<GoodsItem> items = new ArrayList<GoodsItem>();// 定义集合存储用户购买的商品项static ArrayList<GoodsItem> shoppingCar = new ArrayList<GoodsItem>();public static void main(String[] args) {// 初始化商initGoodsItems();// 打印欢迎语句System.out.println("\t欢迎使用超市购物系统");// 创建键盘录入对象Scanner sc = new Scanner(System.in);// 循环使用购物系统while(true){System.out.println("请输入你要进行的操作:\n1:购买商品\t 2:结算并打印小票\t3:退出系统");int optNumber = sc.nextInt();switch (optNumber) {case 1: // 购买商品buyGoods();break;case 2: // 打印小票printTicket();break;case 3:System.out.println("感谢您使用超市购物系统,欢迎下次光临,拜拜");// 退出购物系统System.exit(0);break;default:System.out.println("你输入的数字有误,请重新输入");break;}}}//上面的方法,写在这里,我只不过把它放在下面展示了而已}

初始化商品创建静态的initGoodsItems方法

public static void initGoodsItems() {// 创建多个商品项GoodsItem item1 = new GoodsItem("卫龙", "001", 15.5, 0, "斤", 0);GoodsItem item2 = new GoodsItem("火爆鸡筋", "002", 14.5, 0, "包", 0);GoodsItem item3 = new GoodsItem("唐僧肉", "003", 345, 0, "个", 0);GoodsItem item4 = new GoodsItem("话梅糖", "004", 199, 0, "G", 0);// 将商品项添加到集合中items.add(item1);items.add(item2);items.add(item3);items.add(item4);}

创建buyGoods方法

public static void buyGoods() {System.out.println("------------------------------");System.out.println("\t商品列表");System.out.println("商品id\t名称\t单价\t计价单位");// 展示所有商品项for (int index = 0; index < items.size(); index++) {// 获取每一个商品项GoodsItem goodsItem = items.get(index);System.out.println(goodsItem.getId()+"\t"+goodsItem.getName()+"\t"+goodsItem.getPrice()+"\t"+goodsItem.getUnit());}System.out.println("------------------------------");System.out.println("请输入您要购买的商品项(输入格式:商品id-购买数量),输入end表示购买结束。");// 创建键盘输入对象Scanner sc = new Scanner(System.in);while(true){// 接收用户输入String str = sc.nextLine();if(str.equals("end")){ // 结束购买System.out.println("购买结束");break;} else {String[] strs = str.split("-");if(strs.length != 2) {System.out.println("你输入的购买姿势不对,请换个姿势再来一次(格式:商品id-购买数量)");continue;}// 获得商品idString id = strs[0];// 获得商品数量int number = Integer.parseInt(strs[1]);// 根据商品id获得商品项GoodsItem item = findGoodsItemById(id);if(item != null) {item.setNumber(number);item.setMoney(number * item.getPrice());// 添加商品到购物车addItemToShoppingCar(item);} else {// 用户输入的商品id不存在System.out.println("您输入的商品id不存在,请重新输入!!");}}}}

创建根据商品id查找商品方法

/** 根据商品项id查找商品*/public static GoodsItem findGoodsItemById(String id){// 遍历所有商品项for (int index = 0; index < items.size(); index++) {// 获取每一个商品项GoodsItem goodsItem = items.get(index);if(goodsItem.getId().equals(id)){// 创建购买商品对象return new GoodsItem(goodsItem.getName(), id, goodsItem.getPrice(), 0, goodsItem.getUnit(), 0);}}return null;}

创建添加商品到购物车方法

/** 添加商品到购物车*/public static void addItemToShoppingCar(GoodsItem item){// 遍历购物车中的所有商品项for (int index = 0; index < shoppingCar.size(); index++) {// 获取每一个商品项GoodsItem goodsItem = shoppingCar.get(index);if(goodsItem.getId().equals(item.getId())){goodsItem.setNumber(goodsItem.getNumber() + item.getNumber());goodsItem.setMoney(goodsItem.getPrice() * goodsItem.getNumber());return;}}// 将要够购买的商品项添加集合中shoppingCar.add(item);}

最后打印小票

/** 打印小票*/public static void printTicket(){// 判断是否已经购买了商品if(shoppingCar.size() == 0) {System.out.println("您还没购买任何商品,无法结算,请先购买!!");return;}System.out.println("------------------------------");// 票头System.out.println("\t欢迎光临");System.out.println("名称\t售价\t数量\t金额");System.out.println("------------------------------");// 记录总数量int totalNumber = 0;// 记录总价格double totalMoney = 0;// 票体for (int index = 0; index < shoppingCar.size(); index++) {// 获得每一个商品项GoodsItem goodsItem = shoppingCar.get(index);totalNumber += goodsItem.getNumber();totalMoney += goodsItem.getMoney();System.out.println(goodsItem.getName()+"\t"+goodsItem.getPrice()+"\t"+goodsItem.getNumber()+"\t"+goodsItem.getMoney());}System.out.println("------------------------------");// 票尾System.out.println(shoppingCar.size()+"项商品");System.out.println("共计:"+totalNumber+"件");System.out.println("共:"+totalMoney+"元");System.out.println("------------------------------");// 清空集合shoppingCar.clear();}

超市购物系统小票打印相关推荐

  1. java超市购物系统类图_分析超市购物流程,并画出活动图

    第一部分:活动图语法 (1)简单活动图:活动标签(activity label)以冒号开始,以分号结束.活动默认安装它们定义的顺序就行连接. 1 @startuml2 :Hello world;3 : ...

  2. SSM+社区线上超市购物系统 毕业设计-附源码211704

    目    录 第1章前言 1 1.1研究背景 1 1.2研究现状 1 1.3系统开发目标 1 第2章技术与原理 3 2.1 SSM框架 3 2.2  JAVA技术 3 2.3  MySQL数据库 3 ...

  3. SSM+社区线上超市购物系统毕业设计-附源码211704

    目    录 第1章前言 1 1.1研究背景 1 1.2研究现状 1 1.3系统开发目标 1 第2章技术与原理 3 2.1 SSM框架 3 2.2  JAVA技术 3 2.3  MySQL数据库 3 ...

  4. 基于微信小程序的超市购物系统-计算机毕业设计

    项目介绍 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/ ...

  5. 超市购物系统java总结_超市购物系统JAVA商业源码下载

    超市购物系统 本软件运行环境: JDK1.5+SQL2000SP4 源代码运行环境: JBuider2006+ SQL2000SP4 用JBuider2006打开 \超市购物系统\Lgcsgwxt\L ...

  6. 校园超市购物系统(JAVA,JSP,SSM,MYSQL)

    校园超市购物系统(JAVA,JSP,SSM,MYSQL)(毕业论文11000字以上,共27页,程序代码,MySQL数据库) [下载代码+论文] [运行环境]MyEclipse, jdk, Tomcat ...

  7. 基于PHP的校园超市购物系统

    基于PHP的校园超市购物系统 一 介绍 校园超市购物系统基于原生PHP开发,数据库mysql,用户可注册登录,购物下单等,管理员登录后台进行管理.(附带配套设计文档) 技术栈 php+mysql+bo ...

  8. GGS校园超市购物系统

    Java新人一个,基于程序基本概念.流程控制和数组制作了一个简陋的超市购物系统,还望各位大佬指点指点不足之处 完整代码在最后 一:数组的运用 1:创建数组分配空间并赋值 //声明数组类型并分配空间// ...

  9. java基础练习-超市购物系统

    超市购物系统 要求 代码例子 要求 进入系统: 1.登陆 2.退出 选择登陆,输入用户名密码,判断; 用户如果连续3次输入错误,则退出系统; 登陆成功进入主菜单: 1.客户信息管理; 2.购物结算; ...

最新文章

  1. golang 同一个包中函数互相调用报错 undefined 以及在 VSCode 中配置右键执行整个包文件
  2. 卧槽!新基建背景下,这些姿势架构师必须懂!
  3. 在WinForms中使用ActiveX
  4. CubieBoard开发板数据源介绍
  5. CLR via C# 读书笔记 1-2 创建线程的成本
  6. 顺序栈实现括号匹配的检验(C语言实现)【栈】
  7. 在使用Cocos2d-JS 开发过程中需要用到的单体设计模式
  8. 《数据库系统实训》实验报告——系统安装与数据库搭建
  9. 叹息“博客园”的凋零
  10. 计算机应用 范文,计算机应用基础(范文).doc
  11. iOS Block全面分析
  12. 王者荣耀服务器维护啥时候结束,王者荣耀维护几点结束今天?11月10日维护公告...
  13. github视频教程-02 建立项目仓库以及代码上传
  14. 没有钱的苦恼与无奈:七个城市的1000元生活(转载)
  15. Matlab航迹规划仿真——A*算法
  16. 手机作为显示器及键鼠控制电脑棒(by quqi99)
  17. windows无法上网:代理服务器出现问题或地址有误
  18. ActivityScenario启动失败Activity never becomes requested state [RESUMED, STARTED, CREATED, DESTROYED]
  19. 土地利用规划之平时作业二
  20. Java定义类person_定义一个名为Student的类,它继承Person类,其中定义sno(表示学号)和major(表示专业)两个成员变量...

热门文章

  1. 四路组相联原理_计算机组成原理中是如何求是几路组相联映像?
  2. 《胜负无定数,敢拼搏成七分》的读后感
  3. OA课程--word2013实用技巧大全-目录
  4. latex 表格如何精细控制行高,行距,行与行之间的距离
  5. 李博轩担任摄影作品有哪些?
  6. git cherry-pick 的时候出现git cherry-pick xxx  fatal: bad object xxx
  7. 解惑篇|Docker和 K8s 到底啥关系?想学K8s,必须得先学 Docker 吗?
  8. Android Studio官方文档之添加URL和App索引支持
  9. C语言中将字符数字转换为数值的小技巧和方法
  10. 怎么提高自己服务器的抗DDOS能力?