当前位置: 高中信息技术 / 综合题
  • 1. (2021高二上·湖州期中) 超市收银系统一般由收银机、条码称及数据服务器组成,收银机通过扫描条形码来录入购物信 息, 打印购物小票进行结算。超市的商品一般分为两种类型:计件商品和计重商品,商品的条形码信息中还需要包含商品类别识别码,用于识别商品类型。某次购物条码图和清单如下:

    1. (1) 根据以上条码图和购物小票信息,如果客户购买了 1kg 仔排,条码秤打印出来的条码编码是
    2. (2) 购物结算清单中的下列信息来自数据服务器的是(多选题)      
      A . 商品名称 B . 商品单价 C . 会员积分 D . 商品重量 E . 商品总金额
    3. (3)

      以上是解决这个问题而设计的一种算法,该算法中①处该填写, 该算法中②处填写

      A.  ty!=‘01’    B. ty==‘01’    C. ty!=01    D. ty==01

    4. (4) 根据此算法,编写如下代码实现收银机功能(用输入字符串;‘end’模拟“结算”按钮,用键盘输入条形编码模拟扫描输入,把购物清单输出到文本文件list txt模拟打印购物清单):

      sp={}      #商品信息字典

      #此处代码功能从数据服务器中获取商品信息字典 sp,sp 的结构为{'商品货号':'商品名称,商品单价'}

      alljg=0.0 #保存结算总金额

      sn=input('请输入商品条形码:')

      #######################################################

      #完成购物清单文本文件头处理 f=open('list.txt', 'r+')     #打开文本文件

      list.txt f.truncate()     #清空文本文件内容

      f.write('货号\t\t 商品名称\t 数量\t 单价\t 金额\n')

      ########################################################

      while    ▲    

      ty=sn[0:2]    #获取商品类型

      hn=sn[2:7]    #获取商品货号

      if  hn in sp:

      mc=sp[hn].split(', ')[0] #获取商品名称

      dj=float(sp[hn].split(', ')[1])    #获取商品单价 if

      ty!= '01':

      sl=1.0

      jg=dj

      else:

      sl=float(sn[12:14]+'. '+sn[14:17])

           ▲   

      print('{:<10s}{:<20s}{:^10.3f}*{:^10.2f}={:^10.2f}'.format(hn, mc, sl, dj, jg))

      #按格式输出内容,主要目的保持输出的内容上下按类别对齐

      f.write(hn + '\t\t' + mc + '\t' + str(sl) + '*\t' + str(dj) + '=\t' + str(jg) + '\n')

      #往文本文件中写入购物记录信息

      alljg+=jg

      else:

      print('商品货号有误,请核对后重新输入')

         ▲   

      print('小计:{:.2f}'.format(alljg))

      f.write('---------------------------------------\n') #文本文件输出分割线

      f.write('小计:'+str(alljg))     #往文本文件中写入总计信息

      f.close#关闭 list.txt 文件

      横线处代码应填

微信扫码预览、分享更方便