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 <inputs.length;i++){   //买的东西的编码,买的多
     for(var j = 0;j<kinds.length;j++){  //东西的种类,种类少
       //如果编码一样,对应的数组中商品数量计数加1,用数组存储数量的变化,减少代码,也更加明了
       if(inputs[i] == kinds[j].barcode){
          count[j]++;
          break;
       }
     }
  }
//  console.log(count);

var final ="***<没钱赚商店>收据***\n";
var list = "";  //清单
var total =0;   //总计
for(var i =0;i< kinds.length ;i++){
   if(count[i]!=0){
     list = "名称:" + kinds[i].name
     + ",数量:" +count[i]+kinds[i].unit  //数量是数组中存储的这类商品的数量加单位
     +",单价:"+kinds[i].price.toFixed(2) +"(元),小计:"
     + (count[i]*kinds[i].price).toFixed(2) +"(元)\n"; //小计是数量乘以单价
     final += list;      //在最后内容中加入清单内容
     total += count[i]*kinds[i].price;   //总计的价钱
   }
}
final += "----------------------\n总计:" 
+ total.toFixed(2) + "(元)\n**********************";
 console.log(final);  //输出清单
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天早上出门瑜伽,带了仅有100元去买早餐的,还担心别人找零会不会麻烦呢!练完瑜伽回来路上,我从口袋掏手机出来还无...
    铭玮阅读 2,481评论 0 2
  • 看到一篇文章说女人似疯,非常生气。 春风拂过 大地被冰雪释放 泥土芬芳随风四溢 春花烂漫怎能离开春风送暖 你是春的...
    心安何所归阅读 1,293评论 0 8
  • 今天上午去一个朋友那里去学习了形象管理课程,讲了:色彩量感、直曲。 所有的颜色都是有红黄蓝组成的,橙...
    珂玛陈志燕阅读 1,677评论 2 5
  • 文/肖丽苹 我们从来都是往外寻找 我的名利 我的房子 我的钞票。。。 不管你相信不相信 我们从出生 就排队慢慢向死...
    肖丽苹阅读 1,332评论 0 1