• 大小: 33KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-07
  • 语言: Java
  • 标签: JAVA  多线程  

资源简介

CD租售店 请实现一个CD出租销售店的模拟程序,该CD租售店,具有可租cd列表,可售cd列表。并具有租、还cd,销售、进货CD方法。假设cd店中可租CD列表5张,可售CD列表5种,每种10张,请实现以下线程 进货线程:只有一个,固定的每1秒启动一次,但是如果临时缺货则购买线程发送消息紧急启动一次,每次补齐可售CD列表。 销售线程:可以有两个或两个以上,启动的时间为500ms以内的随机数。购买数量为5以内的随机数。如果cd数量不足则随机选择等候或放弃。 租借线程:租借CD店的可租借CD,启动时间为300ms以内的随机数。租借序号为1-5随机序号的CD,如果该CD已经出租则随机选择等候或者放弃。如果可以借到CD则随机等候200~300ms然后归还。 程序运行2分钟以后停止。最后列出购买、进货、租借还的纪录(时间及行为)。 程序运行两次,以record.txt方式提交两次的程序输出。 提交源程序。

资源截图

代码片段和文件信息

package lab4;
import java.util.ArrayList;
import java.util.Date;
import java.util.Random;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
class SaleCD
{
int cdid;
String name;
int count;
public SaleCD(int cdid String name int count) {
super();
this.cdid = cdid;
this.name = name;
this.count = count;
}

}
class RentCD
{
int cdid;
String name;
boolean isRent;

public RentCD(int cdid String name boolean isRent) {
super();
this.cdid = cdid;
this.name = name;
this.isRent = false;
}

}
class InputThread extends Thread{
ArrayList SaleList;
MyCDshop cdshop;
public InputThread(MyCDshop cdshop){
super();
this.cdshop = cdshop;
}

}
class SaleThread extends Thread
{

ArrayList SaleList;
MyCDshop cdshop;

public SaleThread(MyCDshop cdshop) {
super();
this.cdshop = cdshop;
}
@Override
public void run() {
while(true)
{
try {
sleep((int)(Math.random()*500));
} catch (InterruptedException e) {
e.printStackTrace();
}
int cdid=(int)(Math.random()*5)+1;
int cdcount=(int)(Math.random()*5)+1;
synchronized (cdshop.SaleList) {
if (cdshop.saleCD(cdid cdcount)) {
System.out.println(new Date()+“成功销售“ + cdid + “数量“ + cdcount);
} else {
Random r = new Random();
if (r.nextBoolean()) {
System.out.println(new Date()+“数量不足,等候“);
cdshop.SaleList.notify();
do
{
try {
cdshop.SaleList.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
while(!cdshop.saleCD(cdid cdcount));
System.out.println(new Date()+“等候以后“+“成功销售“ + cdid + “数量“ + cdcount);

}
else
{
System.out.println(new Date()+“放弃销售“);
cdshop.SaleList.notify();
}
}
}
}
}
}
class RentThread extends Thread
{
MyCDshop cdshop;
public RentThread(MyCDshop cdshop) {
super();
this.cdshop = cdshop;
}
@Override
public void run() {
while(true)
{
try {
sleep((int)(Math.random()*300));
} catch (InterruptedException e) {
e.printStackTrace();
}
int cdid=(int)(Math.random()*5+1);
int times=(int)(Math.random()*100)+200;
synchronized (cdshop.RentList) {
if (cdshop.rentCD(cdid-1)) {
System.out.println(new Date()+“成功租到“ + “编号“+ cdid  );
try{
Thread.sleep(times);
}catch(InterruptedException e) {
e.printStackTrace();
}
cdshop.backCD(cdid);
System.out.println(new Date()+“归还“ +cdid);

else {
Random r = new Random();
if (r.nextBoolean()) {
System.out.println(new Date()+“已租出,等候“);
cdshop.RentList.notify();
do
{
try {
cdshop.RentList.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
while(cdshop.rentCD(cdid-1));

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-12-22 19:47  Cd\
     文件         301  2015-12-06 10:30  Cd\.classpath
     文件         378  2015-12-06 10:30  Cd\.project
     目录           0  2015-12-22 19:45  Cd\.settings\
     文件         598  2015-12-06 10:30  Cd\.settings\org.eclipse.jdt.core.prefs
     目录           0  2015-12-22 19:45  Cd\bin\
     目录           0  2015-12-22 19:45  Cd\bin\lab4\
     文件         811  2015-12-22 19:36  Cd\bin\lab4\ControlThread.class
     文件        1299  2015-12-22 19:36  Cd\bin\lab4\GetInThread.class
     文件         456  2015-12-22 19:36  Cd\bin\lab4\InputThread.class
     文件        3183  2015-12-22 19:36  Cd\bin\lab4\MyCDshop.class
     文件         448  2015-12-22 19:36  Cd\bin\lab4\RentCD.class
     文件        2184  2015-12-22 19:36  Cd\bin\lab4\RentThread.class
     文件         443  2015-12-22 19:36  Cd\bin\lab4\SaleCD.class
     文件        1992  2015-12-22 19:36  Cd\bin\lab4\SaleThread.class
     文件        6907  2015-12-22 19:33  Cd\record.txt
     目录           0  2015-12-22 19:45  Cd\src\
     目录           0  2015-12-22 19:45  Cd\src\lab4\
     文件        6427  2015-12-22 19:36  Cd\src\lab4\MyCDshop.java
     文件       23872  2016-11-25 16:16  CD租售店.docx

评论

共有 条评论