`
Baby真卑鄙
  • 浏览: 9722 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

pos机-V0.1

 
阅读更多

1.教学目标
学会把基本描述转换成程序;
熟悉循环嵌套的使用;
2.需求描述
商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)进行结算和打印购物清单。
我们需要实现一个名为printInventory函数,该函数能够将指定格式的数据作为参数输入,然后在浏览器的控制台中输出结算清单的文本。
3.输入格式(样例):

[
    {
        barcode: 'ITEM000000',
        name: '可口可乐',
        unit: '瓶',
        price: 3.00

    },
    {
        barcode: 'ITEM000000',
        name: '可口可乐',
        unit: '瓶',
        price: 3.00
    },
    {
        barcode: 'ITEM000000',
        name: '可口可乐',
        unit: '瓶',
        price: 3.00
    },
    {
        barcode: 'ITEM000000',
        name: '可口可乐',
        unit: '瓶',
        price: 3.00
    },
    {
        barcode: 'ITEM000000',
        name: '可口可乐',
        unit: '瓶',
        price: 3.00
    },
    {
        barcode: 'ITEM000001',
        name: '雪碧',
        unit: '瓶',
        price: 3.00
    },
    {
        barcode: 'ITEM000001',
        name: '雪碧',
        unit: '瓶',
        price: 3.00
    },
    {
        barcode: 'ITEM000004',
        name: '电池',
        unit: '个',
        price: 2.00
    }
]
 

 
(当点击"保存并提交代码"按钮的时候,我们会调用函数printInventory将上面的数据作为参数(inputs)传入该函数。)
4.清单内容(样例):
***<没钱赚商店>购物清单***
名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元)
名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元)
名称:电池,数量:1个,单价:2.00(元),小计:2.00(元)
----------------------
总计:23.00(元)
**********************
5.作业要求
在main.js文件中编写实现代码并确保测试通过;
请在保证代码可读性的前提下,尽可能用最少的代码行数完成作业;
将清单输出到控制台,使测试通过 注意:所有的标点符号均为英文符号
6.作业提示
学习将重复的内容合并再转化成清单
使用console.log输出(仅允许使用一次)

7.答案:

1)定义数组item_list存放商品信息;遍历数组inputs;’判断item_list的长度是否为零;把参数item放到数组 item_list中。

function printInventory(inputs) {
  var item_list=[];      
  for(var i=0;i<inputs.length;i++) {
      var item=inputs[i];
      if(item_list.length==0){  
         item.count=1;  
         item_list.push(item);
      } 
else {
        itemListResultJudgment(inputs,i,item,item_list)    
      }
  }
  var list = getItemListResult(item_list);
  console.log(list);  
} 

 

 

2)遍历数组item_list;判断inputs[i]和item_list[j]的barcode是否相等;若相等,则item_list[j]的count加一,最后中断循环,防止数组的长度改变。若不相等,则判断是否为数组的最后一位,即数组的长度减一,然后把参数item放到数组 item_list中,最后中断循环,以防上面的循环继续。

function  itemListResultJudgment(inputs , i,item,item_list) {
   for(var j=0;j<item_list.length;j++) { 
       if(inputs[i].barcode==item_list[j].barcode){  
                item_list[j].count++;
                break;
       }
       else if(j==item_list.length-1){
               item.count=1;  
               item_list.push(item); 
               break;
       }
   }
}   

 3)最后遍历数组item_list,循环遍历输出,再计算商品的总价格,并且打印输出结果

 

function getItemListResult(item_list)
{
    var list='***<没钱赚商店>购物清单***'; 
    var sum=0; 
    for(var n=0;n< item_list.length;n++){
    	list=list+'\n'+'名称:'+item_list[n].name+','+'数量:'+item_list[n].count+item_list[n].unit+','+'单价:'+item_list[n].price+'.00(元)'+','+'小计:'+item_list[n].count*item_list[n].price+'.00(元)';  
    	sum+=item_list[n].count*item_list[n].price;
    }
	list=list+'\n'+'----------------------'+'\n'+'总计:'+sum+'.00(元)'+'\n'+'**********************';  
    return list;
}

 详情请点击http://www.codefordream.com/courses/js-pos-boot-camp/sections/section_1/practices/normal/practice_2/items/code进行查看。

 

分享到:
评论

相关推荐

    FS4062AB中文5V升压8.4V12.6V双节三节锂电池串联充电IC支持两串锂电池0V充电

    FS4062的应用领域非常广泛,包括唱戏机、扩音器、蓝牙音响、POS机、电动工具等多类多串锂电池应用产品。 FS4062的特点包括: * 输入电压4.5V-6V * 对多串锂电池或磷酸铁锂电池进行完整的充电管理 * 恒压充电值由外...

    基于MSP430F5529设计的人脸识别考勤机开发板ALTIUM原理图+PCB+BOM+软件源码.zip

    06033C104JAT2A CAP, CERM, 0.1 礔, 25 V, +/- 5%, X7R, 0603 06035A180JAT2A CAP, CERM, 18 pF, 50 V, +/- 5%, C0G/NP0, 0603 1715721 Conn Term Block, 2POS, 5.08mm, TH 1902C Standoff, Hex, 0.5"L #4-40 ...

    eqep_pos_speed_qep_eqep求角度_电机测速_TMS320eQEP使用_正交解码_

    在本文中,我们将深入探讨如何使用TMS320F28335微控制器的增强型正交编码器接口(EQEP)来测量电机...在实际项目中,开发者可能还需要结合"eqep_pos_speed"这样的示例代码或文档,进一步了解具体的编程细节和实践技巧。

    电源芯片 1200 POSN

    1. **高精度输出电压**:S-1200系列能够在1.5V到5.5V的范围内以0.1V为进阶单位选择输出电压,满足不同应用场景的需求。 2. **支持小型陶瓷电容器**:该系列稳压器可以使用0.1μF的小型陶瓷电容器,有助于减小电路板...

    CLM920_RC3_spec.pdf

    该模块的应用场景十分广泛,可以用于云喇叭、POS机、对讲机(PoC)、固定无线接入(FWP)等多种物联网设备中,满足不同行业的通信需求。 #### 二、关键技术和规格参数 1. **支持的网络制式**: - **4G LTE**: 支持FDD-...

    S3010舵机技术规格.rar_舵机_舵机控制

    1. **电压**:多数舵机工作在4.8V至6V之间,S3010可能也是如此,确保在指定电压范围内供电以避免损坏。 2. **扭矩**:扭矩是衡量舵机能产生的转动力的指标,S3010可能具有一定的额定扭矩,比如2kg·cm或更高,这决定...

    MT6735资料全套

    MT6735是一款由联发科(MediaTek)推出的面向入门级和中低端智能手机和平板电脑的系统级芯片(SoC),它在Android设备中广泛使用,尤其适用于工业控制主板、POS机以及各种移动应用场景。这个资料套装包含了与MT6735...

    TI-TLV841.pdf

    3. **电子销售点系统**:在POS机等商业设备中,稳定的电源监控是至关重要的。 4. **电网基础设施**:在电力传输和分配系统中,可靠电压监控有助于防止故障。 5. **数据中心和企业计算**:在服务器和数据中心,高效的...

    58MINI型中性版中文说明书20170214

    - **命令仿真**:支持ESC/POS部分指令集。 - **外观尺寸**: - 尺寸:102*78*46mm。 - 重量:134g(含电池)。 - **型号**:5802 和 5801。 - **充电指示灯**:红色表示充电中,蓝色表示充满。 - **外部接口**:9V...

    电脑店免费管理软件

    蓝芯E管家 V2.0.0.1 Bate1 a).修正基础信息不能获取维修单单号的BUG. b).修正账单查询其他功能不是按月统计的BUG. c).修正维修单完结后还存留在售后表里面. d).修正维修单入账失败的BUG. 2014-01-23 21:00 蓝芯E...

    A7600C1-LNSE CAT1 规格书纯4G频段模块

    - **电源**:支持3.4V ~ 4.2V电压范围,典型值为3.8V。 - **尺寸与重量**:尺寸为30.0*30.0*2.5mm,重量为4.6±0.1g。 - **数据传输速度**:具体速度见AT指令操作部分。 - **其他接口**:包括USB2.0、(U)SIM卡、PCM...

    串口蓝牙资料

    5. **多样化的应用领域**:适用于POS系统、蓝牙键盘、鼠标、游戏手柄、家庭自动化、智能玩具、无线传感器等多种场景。 #### 三、模块技术规格 - **蓝牙协议**:支持最新的Bluetooth Specification V2.1+EDR标准...

    SIMCom SIM800设计应用

    也适用于POS手持机行业,支持CMUX多路复用和PPP拨号协议。 #### SIM800W/SIM840W概述 - **产品特点**:SIM800W/SIM840W是一款功能全面的GPRS/GSM模块,尺寸为26x26x3mm,采用独立的内存芯片。 - **接口与功能**:...

    七轴变量参数.docx

    20. `IN_POS_MA = 0.1`: 定位窗口,允许的定位误差范围。 21. `RED_VEL_AXC = 5`: 轴的速度缩减系数,用于手动操作时的速度调整。 22. `RED_ACC_0V = 100`: 轴的加速倍率的缩减,可能与速度超额设定值有关。 23. ...

    AppNote_SSD1801 Application.pdf

    SSD1801字符显示驱动器的设计可以用于多种设备,包括无绳电话、销售点系统(POS)、传真机以及简单的便携式系统等场景。这款驱动器能够显示2行或3行,每行16个字符,字符的格式为5x8点阵。 SSD1801的主要功能特点...

    (资料汇总)10轴姿态角度测量JY-901(上位机、APK、miniIMUAndroid代码)-电路方案

    10、数据输出频率0.1Hz~200Hz。 11、数据接口:串口(TTL电平,波特率支持2400、4800、9600、19200、38400、57600、115200、230400、460800、921600),I2C(最大支持高速IIC速率400K) 12、扩展口功能:模拟输入(0~...

    捷顺停车场系统

    2. 可选配置:剩余车位显示屏/顾客显示屏/票据打印机/车牌识别/人像抓拍/证件抓拍/羊城通 POS 扣费 3. 预留接口:钱箱联动/红绿通行指示灯/银联卡交费/深圳通卡交费/手机卡交费/消费打折/积分抵扣/消防联动等 十一...

Global site tag (gtag.js) - Google Analytics