2018-09-10 js pos机

这个任务布置有一个周了,之前都没头绪,后来看看博客分析,就明白了各个文件之间的联系。也是第一次接触这种多个文件还有测试内容的项目。刚刚开始都不知道从哪里下手,但是多理解一下过程,也就理解了,算是个小的突破吧。虽然不全是自己的思想,但是也算是学会了怎么去做这类的小项目。


POS收银机 版本:v0.2

教学目标
  1. 学会把基本描述转换成程序;
  2. 能够驾驭三个循环;
需求描述

商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)进行结算和打印收据(Receipt)。

我们需要实现一个名为printReceipt函数,该函数能够将指定格式的数据作为参数输入,然后在浏览器的控制台中输出收据的文本。

输入格式(样例):


[
  'ITEM000000',
  'ITEM000000',
  'ITEM000000',
  'ITEM000000',
  'ITEM000000',
  'ITEM000001',
  'ITEM000001',
  'ITEM000004'
]

清单内容(样例):

***<没钱赚商店>收据***
名称:可口可乐,5瓶,单价:3.00(元),小计:15.00(元)
名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元)
名称:电池,数量:1个,单价:2.00(元),小计:2.00(元)
----------------------
总计:23.00(元)
**********************
作业要求
  1. 根据test/main-test.js中的测试用例,在main/main.js文件中编写实现代码并确保测试通过;
  2. 请在保证代码可读性的前提下,尽可能用最少的代码行数完成作业;
  3. 将清单输出到控制台,使测试通过

实现遇到的关键问题

  • 怎么确定选择的商品 ---通过循环寻找,两个测试文件内容的结合比较;
  • 怎么计算选择同类商品的个数 ---通过数组存储各类商品的个数,对应的商品++;
  • 怎么整合清单 ---字符串链接,注意字符之间的空格及字符的大小写都得与测试文件一致;
  • 价钱的小数保留 ---每个价钱后面都得格式化00,所以用到toFixed(num)方法,num为保留的位数;

下面看下代码:

function printReceipt(inputs) {
  var kinds = loadAllItems();
//  console.log(kinds);
  var count = [0,0,0,0,0,0];  //数组存储对应商品的购买数量
  for(var i = 0;i 

你可能感兴趣的:(2018-09-10 js pos机)