java面试设计题:羽毛球馆管理员;

该博客讨论了如何使用Java编程实现羽毛球馆的预订管理系统,包括不同时间段的收费标准、预订与取消预订的规则,以及收入汇总的计算。预订输入和取消预订的格式被详细描述,并提到了测试用例的重点,如时间冲突判断和收入计算的准确性。
摘要由CSDN通过智能技术生成
链接: https://www.nowcoder.com/questionTerminal/4c3d325a70fd4fb4909e2fe1c42fba71?toCommentId=1352361
来源:牛客网

小明是一个羽毛球场馆的管理员,管理着四个羽毛球场地(A,B,C,D场地),负责场地的维护和预订工作。为了简化自己的工作,场地只接受整点预订,预订以小时为单位。

羽毛球场的收费标准如下:

  • 周一到周五:
    • 9:00 ~ 12:00 30元/时
    • 12:00 ~ 18:00 50元/时
    • 18:00 ~ 20:00 80元/时
    • 20:00 ~ 22:00 60元/时
  • 周六及周日
    • 9:00 ~ 12:00 40元/时
    • 12:00 ~ 18:00 50元/时
    • 18:00 ~ 22:00 60元/时

羽毛球场馆在预订之后,可以接受取消预订,不过取消预订需要交违约金,违约金的计算规则如下:

  • 周一到周五的预订取消收取全部费用的50%作为违约金
  • 周六周日的预订取消收取全部费用的25%作为违约金
由于手头还有其他工作,小明希望能够借助计算机程序来自动化处理预订及取消预订的事务,并且希望程序能够打印出场馆的收入汇总情况。

程序输入

预订:用户预订以字符串的形式输入,一行字符串代表一个预定

  • 格式为{用户ID} {预订日期 yyyy-MM-dd} {预订时间段 HH:mm~HH:mm} {场地},如U123 2016-06-02 20:00~22:00 A,代表用户U123预定2016年06月02日晚上20:00到22:00的场地A的时间段
  • 时间段的起止时间必然为整小时,否则报错
  • 如预订与已有预订冲突,也会报错

取消预定:用户取消预定,输入也以一行字符串的形式表现

  • 格式为{用户ID} {预订日期 yyyy-MM-dd} {预订时间段 HH:mm~HH:mm} {场地} {取消标记},如U123 2016-06-02 20:00~22:00 A C,代表用户U123取消其在2016年06月02日晚上20:00到22:00在场地A的预订,其中取消标记C代表Cancel
  • 取消标记只能是C,若为其他字符则报错
  • 时间段的起止时间必然为整小时,否则报错
  • 只能完整取消之前的预订,不能取消部分时间段
  • 取消预订的请求,必须与之前的预订请求严格匹配,需要匹配的项有用户ID,预订日期,预订时间段,场地

打印场馆收入汇总: 将所有的预订和取消预订带来的收入汇总信息打印出来

  • 格式为,输入一个空行,代表打印收入汇总

程序输出

收入汇总:以文本的形式输出当前系统所有预订以及取消预订所带来的收入情况,以不同的场地分组,一个可能的输出如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
收入汇总
---
场地:A
2016 - 06 - 02 09 : 00 ~ 10 : 00 违约金 15
2016 - 06 - 02 10 : 00 ~ 12 : 00 60
2016 - 06 - 03 20 : 00 ~ 22 : 00 120
小计: 195
 
场地:B
2016 - 06 - 04 09 : 00 ~ 10 : 00 40
小计: 40
 
场地:C
小计: 0
 
场地:D
小计: 0
---
总计: 235

注意:

  • 如果同一场地同一时间段有多条预定记录,则显示多条
  • 收入记录以时间顺序升序排列


测试用例1

注意:>开头表示命令行输出,以下测试用例都遵循此例

1
2
3
4
5
6
7
8
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值