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