购物结算系统

题目要求

1 总体说明
考生需要模拟实现一个简单的购物结算系统,实现挑选和删除商品、按照最佳优惠方案进行结算、查询购物车订单信息及购物卡余额和积分的功能。
系统初始化时购物卡中有3000元余额和150积分,可以输入命令来初始化系统。

1.1 购物活动细则
只要购物卡余额足够,可以进行多次购买,每次购买活动可以包含如下活动:
1、多次挑选商品,每次挑选形成购物车中的一条商品订单;
2、多次删除商品订单,每次只能删除一条订单;
结算的是当前购物车中所有订单,结算完成即本次购买活动结束,同时清空购物车并更新购物卡余额和积分;

1.2 商品优惠细则
购买商品时优惠方案分为单项优惠方案和总价优惠方案,在享受单项优惠的同时如满足一定条件可以再享受总价优惠。

各种商品的单项优惠方案列表:
这里写图片描述

单项优惠方案序号:
这里写图片描述

1、在一次购买活动中,同种商品只能有一种单项优惠方案;总价优惠方案:在一次购买活动结算时,所有商品单项优惠后总消费金额大于等于500时,可以再使用“积分抵现”或“折上折”优惠:
(1) 积分抵现:1个积分抵1元现金,购物卡积分大于等于120只能使用120个积分,不足120,全部使用;
(2) 折上折:在单项商品优惠后总金额基础上,再打8折;

1.3 约束
* 商品价格最小单位到元,所有涉及价格计算中不足1元,向下取整,舍掉余数部分。例如:计算出的实际价格为563.9,则取整为563;
* 本次购买活动新增的积分不能在当次购买中使用;
* 购物卡余额和积分不能透支;

2 操作说明
命令字与第一个参数间使用一个空格分隔,多个参数间使用半角“-”分隔,参数间没有空格。考试系统会对输入命令格式进行处理,考生不需要关注输入命令格式的合法性,只需要实现命令处理函数。对于涉及多个参数的命令,多个参数同时出错的情况不作为考察点。
2.1 系统初始化
命令格式:r
功能说明:将购物卡金额和积分分别初始化为3000、150;
约束说明:系统在任意阶段均可执行r初始化系统;
输出说明:输出操作成功提示(执行完r命令后系统会自动输出操作结果,考生不需要再次调用输出函数),例:
这里写图片描述
2.2 挑选商品
命令格式:o 商品序号-商品数量
功能说明:
(1) 每次挑选只能指定一种商品,且商品数量不超过100(0<每次挑选商品数量<=100),同一种商品可以多次挑选;
(2) 挑选成功则生成购物车中的一条商品订单,输出:“S002”;
(3) 如果输入的“商品序号”或“商品数量”参数不合法,输出“E002”。参数错误直接返回不再进行其他处理;
(4) 购物车中最多容纳5条商品订单,挑选时如果购物车已满,则挑选失败,输出“E003”;
(5) 在挑选商品阶段不校验购物卡余额是否足够;
约束说明:
(1) 系统在任意阶段都可以挑选商品;
(2) 购物车中的同一种商品的订单记录不合并;
输出说明:如果挑选成功,输出操作提示。例,挑选6本书籍:
这里写图片描述
2.3 删除商品订单记录
命令格式:c 商品序号-商品数量
功能说明:
(1) 在结账前可以删除购物车中的订单以取消挑选,商品数量不超过100(0<每次删除商品数量<=100),每次只能删除一条,可以执行多次删除操作;
(2) 只能删除购物车中与删除命令输入的“商品序号”、“商品数量”完全匹配的订单记录;
(3) 如果输入的“商品序号”或“商品数量”参数不在系统允许的范围内,输出“E002”。参数错误直接返回不再进行其他处理;
(4) 如果购物车为空,输出“E005”;
(5) 如果购物车中不存在待删除订单,输出“E004”;
(6) 如果购物车中存在多条相同(“商品序号”和“商品数量”都相同)的订单记录,则只删除购物车中的一条记录;
输出说明:如果删除成功,输出操作提示。例,从购物车中删除6本书籍的订单记录:
这里写图片描述
2.4 结算
命令格式:b
功能说明:
(1) 系统根据“商品优惠细则”自动调整商品的单项和总价优惠方案,使得用户消费金额最少。当两种总价优惠方案花费金额相同时,优选“折上折”。
(2) 如果购物车为空,输出“E005”;
(3) 如果购物卡余额或积分不足以购买购物车商品时,输出“E006”;
输出说明:如果结算成功,输出结果中包含本次购买所需的消费金额和消费积分以及新增的积分。例:
这里写图片描述
2.5 查询
命令格式:l 查询类别
功能说明:
(1) 查询购物卡信息(余额、积分)和购物车中的订单信息;
(2) 查询类别:0表示购物卡信息查询,1表示购物车订单查询;如果“查询类别参数错误,输出“E002”。“查询类别”参数错误时,不进行下面的处理。
输出说明:
(1) “查询类别”为0时,输出购物卡余额和积分,例:
这里写图片描述
(2) “查询类别”为1时,输出购物车中的订单数以及每种商品的总数,例:
这里写图片描述
2.6结束
命令格式:e 系统结束 功能说明:一次购物完成,系统结束。

输入:
依照说明中的命令码格式输入命令
输出:
输出执行结果

样例输入:
r
o 1-100
e

样例输出:
S001
S002

3 附录:
3.1 命令汇总
这里写图片描述
3.2 返回码汇总
这里写图片描述
3.3 基本用例
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值