pos机
程序员文章站
2022-07-11 10:51:49
...
POS Project v0.2
POS收银机 版本:v0.2
教学目标
学会把基本描述转换成程序;
能够驾驭三个循环;
需求描述
商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)进行结算和打印购物清单。
我们需要实现一个名为printInventory函数,该函数能够将指定格式的数据作为参数输入,然后在浏览器的控制台中输出结算清单的文本。
输入格式(样例):
(当点击"保存并提交代码"按钮的时候,我们会调用函数printInventory将上面的数据作为参数(inputs)传入该函数。)
清单内容(样例):
***<没钱赚商店>购物清单***
名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元)
名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元)
名称:电池,数量:1个,单价:2.00(元),小计:2.00(元)
----------------------
总计:23.00(元)
**********************
实现过程如下所示:
POS收银机 版本:v0.2
教学目标
学会把基本描述转换成程序;
能够驾驭三个循环;
需求描述
商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)进行结算和打印购物清单。
我们需要实现一个名为printInventory函数,该函数能够将指定格式的数据作为参数输入,然后在浏览器的控制台中输出结算清单的文本。
输入格式(样例):
[ 'ITEM000000', 'ITEM000000', 'ITEM000000', 'ITEM000000', 'ITEM000000', 'ITEM000001', 'ITEM000001', 'ITEM000004' ]
(当点击"保存并提交代码"按钮的时候,我们会调用函数printInventory将上面的数据作为参数(inputs)传入该函数。)
清单内容(样例):
***<没钱赚商店>购物清单***
名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元)
名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元)
名称:电池,数量:1个,单价:2.00(元),小计:2.00(元)
----------------------
总计:23.00(元)
**********************
实现过程如下所示:
//函数功能:统计商品的数量(count)并且构造新的对象形式. function get_goods_count(inputs){ var goods_count_list={}; for(var i=0;i<inputs.length;i++){ //利用for循环inputs数组. if(goods_count_list.hasOwnProperty(inputs[i])){ //判断是否含有键名为inputs[i]的元素 goods_count_list[inputs[i]].count++ //含有直接count++ } else{ goods_count_list[inputs[i]]={count:1}; //不含有:定义键名为inputs[i],键值为{count:1} } } return goods_count_list; } //函数的功能:构造一个键名为商品编号,键值为商品信息(包含count值) function get_goods_list(goods_count_list,AllItems){ var goods_list={}; for(var goods_barcode in goods_count_list){ //遍历goods_count_list对象获取购物的数量,及商品的编码 for(var i=0;i<AllItems.length;i++){ //遍历items数组获取商品信息 if(goods_barcode==AllItems[i].barcode){ //获取已购买商品的单位 单价 名称 信息 AllItems[i].count=goods_count_list[goods_barcode].count //给items中每个商品植count goods_list[AllItems[i].name]=AllItems[i] } } } return goods_list; } function print_goods_list(goods_list){ //进行字符串的拼接 var new_goods_list=""; var total =0; for(var goods_name in goods_list){ total+=goods_list[goods_name].count*goods_list[goods_name].price; new_goods_list+="名称:"+goods_list[goods_name].name+",数量:"+goods_list[goods_name].count+goods_list[goods_name].unit+",单价:"+goods_list[goods_name].price+".00(元),小计:"+goods_list[goods_name].count*goods_list[goods_name].price+".00(元)\n" } var goods_list_title="***<没钱赚商店>购物清单***\n" var goods_list_late="----------------------\n总计:"+total+".00(元)\n**********************" new_goods_list=goods_list_title+new_goods_list+goods_list_late return new_goods_list; } 函数的调用 function printInventory(inputs) { // 进行行数的调用 var AllItems=loadAllItems(); var goods_count_list=get_goods_count(inputs); var goods_list=get_goods_list(goods_count_list,AllItems) var new_goods_list=print_goods_list(goods_list); console.log(new_goods_list) }
下一篇: 游戏的基石: 窗口 的建立 游戏编程