【Java实验】商店货物管理模拟

一、实验目的

掌握面向对象的程序设计与开发。掌握,封装,多态,继承,异常处理,上转型技术。

二、实验性质

综合性

三、实验内容

要求完成一个商品租赁系统,该系统允许用户租赁商店里的的各种商品。 您将被要求创建一个Store 类,Store 类中保存了一个项目列表的引用。该列
表(称为 itemList)的类型是链表,它包含了商店里面所有项目。这些项目包括: 书籍,杂志,DVD(电影),Blurays(电影),MusicCD。这些项目中的每一个物品都需要存储在列表(itemList)中。
要求你使用继承技术创建一个管理此系统的库类。允许除了添加或删除物品,查找一个物品。还要实现借用一件物品并能将其归还。如果借用的商品已经借出应该抛出 ItemnotFound 的异常。每个物品的信息应该可以写入磁盘中。编写测试程序以确保商品租赁系统的能够正常运行。
要求写注释,生成 JavaDoc

四、实验环境

1.计算机一台;
2.中文 Windows 操作系统;安装 JDK1.6 以上版本,安装 EclipseIDE 软件。

五、实验主要步骤

1.问题分解

实验类图如图 5.1-1 所示,其中,Item 是物品类,ItemList 实现 LinkedList 接口后,将 Item 作为自己的类成员封装起来,Store 继承自 ItemList,对外提供可直接通过 String 操作其中物品的方法。
在这里插入图片描述

2.给出程序源码

public class Item 
{
   
	/**
	 * 物品名称,String类型,可通过名称实现对物品的各种操作
	 */
	private String name;
	/**
	 * 租用状态,boolean类型,其为true表明被租用,否则为没被租用
	 */
	private boolean rent;

	/**
	 * 无参的构造函数,生成一个名字为null 的空物品
	 */
	protected Item() 
	{
   
		this("", false);
	}

	/**
	 * @param name
	 *            要生成的物品名称 生成一个有名字的物品,设定其租用状态为false
	 */
	protected Item(String name)
	{
   
		this(name, false);
	}

	/**
	 * @param name
	 *            要生成的物品名称
	 * @param rent
	 *            所生成的物品的租用状态 生成任意名称和租用状态的物品
	 */
	protected Item(String name, boolean rent)
	{
   
		super();
		this.name = name;
		this.rent = rent;
	}

	/**
	 * @return name String类,需返回的物品名称 获取物品名称
	 */
	protected String getName()
	{
   
		return name;
	}

	/**
	 * @param name
	 *            要修改的物品名称 设置物品名称
	 */
	protected void setName(String name) 
	{
   
		this.name = name;
	}

	/**
	 * @return rent 需返回的物品状态 获取物品是否被租用,真表示被租用,假表示没被租用
	 */
	protected boolean isRent() 
	{
   
		return rent;
	}

	/**
	 * @param rent
	 *            要修改的物品状态 设置物品是否被租用
	 */
	protected void setRent(boolean rent)
	{
   
		this.rent = rent;
	}
}
import java.io.BufferedWriter; import java.io.File;
import java.io.FileWriter; import java.io.IOException; import java.util.LinkedList;


/**
*一个货物的列表类,可对货物进行增删改查并将其状态写入文件,
*其类型是 LinkedList,所存储的物品是 Item 类
*/
@SuppressWarnings({
    "serial" })
public class ItemList extends LinkedList<Item> 
{
   
	/**
	 * @param target
	 *            要增加的物品 在列表中添加物品,调用父类函数add
	 */
	public void addItem(Item target)
	{
   
		super.add(target);
	}

	/**
	 * @param target
	 *            要寻找的物品
	 * @return true|false 是否找到该物品
	 * @throws ItemNotFound
	 *             没有找到的一场 在列表中查找物品 ,调用contains函数,若没有找到则抛出异常
	 */
	public boolean searchItem(Item target) 
	{
   
		if (this.contains(target))
		{
   
			return true;
		} 
		else 
		{
   
			try 
			{
   
				throw new ItemNotFound("没有找到物品");
			} 
  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值