3D福彩

一、设计思路

  1. 定义 Sale_Store 类,其中类成员分别是可以购买的 CD 数 和可以租售的 CD 序列等等,分别用 int 数组保存数量和 boolean 数 组来 RentCD 保存状态,而且全部为 static 类型(这样是为了是所有 顾客购买和租售的 CD 数目是时刻保持一致的)。并在类中定义一系 列租售 CD,购买 CD 和补充可销售 CD 的方法,并且其中方法均为 synchronized,保证该进程永远都是同步的。
  2. 定义 RentCD 类,实现 Runable 接口。首先,定义一个顾 客的唯一的 name 属性,方便我们后期不同观察顾客的行动。其次是 重写 run 方法中的进程,随机数产生租用 CD 的种类,然后判断该种 类的 CD 是否被其他租客租用。若被租客租用,则将随机判断是否等 待或者放弃(这里我是用随机数模 2 运算),如果继续等待,则进行 while 循环,接着判断该 CD 是否被租用;如果选择放弃,则 continue, 跳过所有步骤;若是该种类的 CD 没有被租用,则该租客可以租用 CD。并在 file 文件中写入相关的内容。
  3. 定义 BuyCD 类,实现 Runable 接口。像之前 RentCD 类一 样。首先,定义一个顾客的唯一的 name 属性,也是方便我们后期不 同观察顾客的行动。其次是重写 run 方法中的进程,随机数产生购买 CD 的种类和数量,然后判断该种类的 CD 是否有剩余。若被商店中 CD 的数目不够,则将随机判断是否等待或者放弃(这里我同时也是
    用随机数模 2 运算),如果选择继续等待,则紧急调用补货函数进行 补货;如果选择放弃,则 continue,跳过所有步骤。若是该种类的 CD 还有剩余,则该租客可以购买 CD。并在 file 文件中写入相关的内 容。④
  4. 定义 ProduceCD 类,实现 Runable 接口,重写 run 函数, 每睡眠 1000ms 则调用 Sale_Store 类中的补货函数。
  5. 定义 FileWrite 类,此为文件写入类,新建 record 文件,并 创建相关的文件输入流,向文件中写入相关的信息。

二、程序输出相关结果

1.租客和购买顾客的结果

java营销类型项目_文件写入

2.若是想买光盘但是数量不够,放弃等待

java营销类型项目_java_02

3.若是想买光盘但是数量不够,紧急补货

java营销类型项目_java_03

4.若是想租用光盘但是已经被租,放弃等待

java营销类型项目_java_04

5.若是想租用光盘但是已经被租,等待别人租完

java营销类型项目_java营销类型项目_05


java营销类型项目_java_06


java营销类型项目_java_07

三、关键代码图

java营销类型项目_java_08

四、源代码

源代码