14. 超市收银系统

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 1

题目描述

本题描述有更改,清注意

一般超市或商店的收银台在对商品扫码之后会得到一串数字,这串数字代表一种商品。假设已知所有商品的名称、代码和单价,现在需要你写一个程序,输入扫码得到的商品代码(假设固定为6位数字),计算所购买的每种商品的数量(件数)、总价,并按照字典序打印商品的小票(如果某种商品购买了多件,应在同一行内输出该商品的名称数量单价总价)。计算所购买所有商品的总金额,并打印。 给出商品目录如下:

格式:名称 代码 单价
chips 932071 3.50
chocolate 114049 8.00
soap 304985 2.90
cupcake 955962 4.90
cookie 313903 6.50
milk 243813 3.20
toothbrush 961995 4.80
toothpaste 933328 9.30
teapot 914500 29.80

输入

每行为一个6位数字,代表所购买的商品代码。当所有购买商品输入完毕时,以输入0为结束输入标志。(毕竟你不可能跟收银员说我买了n件商品嘛)。

输出

一张小票,要求: 第一行包含“NAME”、“QUANTITY”、“PRICE”、“SUM”(代表商品的名称、数量、单价和总价),各单词之间用若干空格分隔。

接下来若干行,每行对应所购买的某种商品的明细。要求每列按照该项目内容字符数量最多的那一项填充空格补齐(第一行也要补齐),要求每列左对齐,对齐之后项目之间还要空一格。

总价输出保留两位小数,其余数字按照Python默认输出。

按照商品名称的字典序输出。提示:可使用list.sort()

最后一行是所购买所有商品的总金额,格式为:total:xxx.xx(注意:这里是西文的冒号,保留小数点后2位)

输入样例

932071
114049
932071
932071
114049
114049
932071
0

输出样例

NAME      QUANTITY PRICE SUM
chips     4        3.5   14.00
chocolate 3        8.0   24.00
total:38.00

相关推荐