昨天收到常Sir发来的【ThoughtWorks代码题目】,觉得挺有意思,就拾起了好久不用的Java,实现了题目要求。我这代码渣二把刀还是感觉用js实现要方便一些,抽空去实现一下(希望不是在立flag… o(╯□╰)o)。。
题目的地址是:
我的实现方法是: CashRegister[github]
题目说简单一些就是需要实现一个收银模块,输入的是购物清单的JSON数据,需要通过处理输出规定的购物结算信息。
JSON数据的范例为:
|
|
“ITEM00003”表示商品的条码号,一个商品对应一个条码号。“-”后面的数字表示商品个数。
拿到这个题目,第一反应是想起了以前本科时候的老本行,大概通过PHP+MySQL很快就可以搞定。最近在帮老板写关于Android的教材,于是决定先通过Java来实现。
思路:
- 首先将JSON数据转换为字符串,方便处理;
- 检验数据格式是否正确;
- 将每一个条码提取并统计条码对应出现次数,也就是商品购买数量;
- 将上一步分析结果与商品库进行匹配,找出商品其他信息;
- 对信息针对不同的优惠方式进行处理并计算费用,记录优惠数据;
- 得出计算结果,打印小票。
虽然实现了功能,但是感觉整体代码结构并不是很好,希望有空整理并进行优化。