首页 > 试题广场 >

社区自助洗车机计费与会员定级系统

[编程题]社区自助洗车机计费与会员定级系统
  • 热度指数:56 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

题目背景

你正在帮物业开发一个“社区自助洗车机计费与会员定级”系统。每当有居民洗完车,系统会根据他们消耗的水量、洗车时长以及是否使用了高级泡沫等信息,计算出单次洗车的最终费用,并给出当前洗车行为的会员评级。为了防止有人恶意破坏设备或长期霸占车位,系统内置了直接罚款和降级警告机制。

规则描述

1. 基础计费
单次洗车的基础费用由以下三部分直接相加组成:

  • 用水费:每消耗 1 升水,收费 1 元
  • 时长费:每使用 1 分钟,收费 2 元
  • 泡沫费:如果选择了高级泡沫,额外固定加收 10 元

2. 环保与夜间减免
物业鼓励自带毛巾和错峰洗车,在基础计费的总额上进行以下减免:

  • 如果居民自带毛巾(Bring_Towel = True),总价减免 5 元
  • 如果是夜间洗车(Is_Night = True),总价再减免 10 元
  • 如果减免后的费用为负数,则最终费用记为 0元。所有的金额都是整数计算,没有小数。

3. 评级
评级有一套严格的优先级顺序(Rule 1 优先级最高,向下递推)。一旦触发某条规则,立刻决定最终的评级和最终费用,并停止后续判断。你需要输出最终生效的规则编号(Rule_ID)

  • Rule 1: 损坏设备熔断
    • 如果该居民在洗车时 弄坏了水枪设备
    • 当次的所有计费和减免全部作废。最终费用强制锁定为顶格罚款 500元,且评级直接记为 Banned(封禁)
  • Rule 2: 严重超时警告
    • 如果未触发Rule 1,但居民的洗车时长 ≥ 60 分钟,说明在霸占车位。
    • 费用保留前面的正常核算结果,但评级强制降为 Warning(警告)
  • Rule 3: 节水达人VIP
    • 如果未触发前两条,且计算出的最终费用 ≥ 30元(单次消费高),同时用水量 ≤ 15 升(非常节水)。
    • 评级晋升为 VIP(贵宾),费用保留正常核算结果。
  • Rule 4: 普通用户
    • 如果上述条件都不满足,评级为 Regular(普通),费用保留正常核算结果。

输入描述:

一段自然语言文本,包含居民洗车时的各项数据。



输出描述:

输出一个 JSON 格式字符串,包含以下字段:

  • final_cost: 最终洗车费用 (整数)
  • member_rating: 最终会员评级 (Banned, Warning, VIP, Regular)
  • active_rule: 触发的规则编号 (Rule1, Rule2, Rule3, Rule4)
示例1

输入

日志:升数:10,分钟数:20,高级泡沫:是,自带毛巾:否,是否夜间:否,损坏设备:否。车洗得很干净。

输出

{"final_cost": 60, "member_rating": "VIP", "active_rule": "Rule3"}
示例2

输入

记录:升数:20,分钟数:70,高级泡沫:否,自带毛巾:是,是否夜间:是,损坏设备:否。花的时间太长了。

输出

{"final_cost": 145, "member_rating": "Warning", "active_rule": "Rule2"}
示例3

输入

警告:升数:5,分钟数:10,高级泡沫:否,自带毛巾:否,是否夜间:否,损坏设备:是。他把水管弄坏了!

输出

{"final_cost": 500, "member_rating": "Banned", "active_rule": "Rule1"}
示例4

输入

检查:升数:30,分钟数:15,高级泡沫:是,自带毛巾:是,是否夜间:否,损坏设备:否。

输出

{"final_cost": 65, "member_rating": "Regular", "active_rule": "Rule4"}

备注:
  1. 纯净输出:直接输出 JSON 字符串。
  2. 允许思考:建议先在<thinking>标签中进行推理,再输出 JSON。

这道题你会答吗?花几分钟告诉大家答案吧!