停车场管理系统-----软件构造习题课代码分析

题目描述:

在这里插入图片描述
在这里插入图片描述

软件框架:

在这里插入图片描述

ADT设计:

  • 静态工厂方法
	/**
	 * 创建一个新的停车场
	 * 
	 * @param nos 各停车位的编号,均为自然数,且无重复
	 * @param widths 各停车位的宽度,包含的元素数量=nos中元素数量 且>=5 
	 * @return 一个停车场对象,包含了widths.length个车位,各车位的宽度与nos中相应数字一致,且各车位上均未有停车
	 * @throws 如果违反nos和widths不合法
	 */
	public static ParkingField create(int[] nos, int[] widths) throws Exception {
   
		return new ConcreteParkingField(nos, widths);
	}

创建一个新的停车场。

  • 停车:
/**
	   * 在某个停车位上停车
	   * 车牌号为plate的车辆,之前没停在车场,执行后停在了车位号为num的车位上,该车位宽度大于车宽度
	   * 其他车位的状态不变
	 * 
	 * @param plate  要停进来的车辆车牌号,not null
	 * @param width  车的宽度,自然数
	 * @param num 	  指定的停车位编号,自然数
	 * @throws 如果plate车已经停在该停车场,或者num车位已被其他车占用,或者num车位宽度不超过width,或者num并不是合法车位
	 */
	public void parking(String type, String plate, int width, int num, String[] extraRegistrationInfo) throws Exception;
  • 驶离停车场:
	/**
	   * 将汽车驶离停车场,plate车原来占用的车位空出来了,计算出本次停车的费用(半小时10元,不足半小时按半小时计算)
	 * 
	 * @param plate 待驶离的车辆,not null
	 * @return 本次停车的费用(精确计算得到)
	 * @throws plate车并没有停在本车场
	 */
	public double depart(String plate) throws Exception;
  • 停车场状态:
	/**
	   * 返回当前停车场每个车位的状态(空,或被某车占用)
	 * 
	 * @return Key为停车位的编号,Value为该车位上的车辆车牌号。如果停车位上无车辆,则对应的Value为“”
	 */
	public Map<Integer, String> status();
</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值