pos机

POS Project v0.2
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)
}



猜你喜欢

转载自1508144386.iteye.com/blog/2416142