Giter VIP home page Giter VIP logo

pos-g1-buy_three_get_one_free's Introduction

收银机 - G1 - 买三免一

需求描述

商店里进行购物结算时会使用收银机系统,这台收银机会在结算时根据客户的购物车中的商品和商店正在进行的优惠活动进行结算和打印购物小票。 已知商品信息包含:名称,数量单位,单价,类别和条形码(伪),数据结构如下: javascript { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', category: '食品', subCategory: '碳酸饮料', price: 3.00 } 已知我们可以对收银机进行设置,使之支持各种优惠。 我们需要实现一个名为打印小票的小模块,收银机会将输入的数据转换成一个JSON数据然后一次性传给我们这个小模块,我们将从控制台中输出结算清单的文本。 输入格式(样例): javascript [ 'ITEM000001', 'ITEM000001', 'ITEM000001', 'ITEM000001', 'ITEM000001', 'ITEM000003-2', 'ITEM000005', 'ITEM000005', 'ITEM000005' ] 其中对'ITEM000003-2'来说,"-"之前的是标准的条形码,"-"之后的是商品数量。 当我们购买需要称量的物品的时候,由称量的机器生成此类条形码,收银机负责识别生成小票。 该商店正在对部分商品进行“买三免一”的优惠活动。解释: “买三免一”是指,每当某一商品买进三个,就有一个免单。 店员设置该优惠哪些条形码对应的商品可以享受此优惠。 要求写代码支持上述的功能,并根据输入和设置的不同,输出下列小票。 小票内容及格式(样例): 当购买的商品中,有符合“买三免一”优惠条件的商品时:

名称:可口可乐,数量:3瓶,单价:3.00(元),小计:6.00(元)
名称:羽毛球,数量:5个,单价:1.00(元),小计:4.00(元)
名称:苹果,数量:2斤,单价:5.50(元),小计:11.00(元)
买三免一商品: 名称:可口可乐,数量:1瓶
             名称:羽毛球,数量:1个
总计:21.00(元) 节省:4.00(元)

当购买的商品中,没有符合“买三免一”优惠条件的商品时:

名称:可口可乐,数量:3瓶,单价:3.00(元),小计:9.00(元)
名称:羽毛球,数量:5个,单价:1.00(元),小计:5.00(元)
名称:苹果,数量:2斤,单价:5.50(元),小计:11.00(元)
总计:25.00(元)

##数据格式

每一个商品对象的结构如下(样例): javascript { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', category: '食品', subCategory: '碳酸饮料', price: 3.00 } 促销信息对象的数组格式(样例): javascript [ { type: 'BUY_THREE_GET_ONE_FREE', barcodes: [ 'ITEM000000', 'ITEM000001' ] } ]注意:type和barcodes是促销信息对象的主体结构,也可以适当扩展其它属性,以适应程序的扩展性。

pos-g1-buy_three_get_one_free's People

Contributors

ccxluo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.