#include<iostream>
using namespace std;
const int MAX=10;
int a[MAX]={1,1,1,1,1,1,1,1,1,0};
int produce(int a[])//生产者部分实现
{
int i=-1;
for(int j=0;j<MAX;j++)
{
if(a[j]==1) i++;
else break;
}
if(i!=MAX)
{
a[i+1]=1;
return 1;
}
else return 0;
}
int custom(int a[])//消费者部分实现
{
int i=-1;
for(int j=0;j<MAX;j++)
{
if(a[j]==1) i++;
else break;
}
if(i==0) return 0;
else
{
a[i-1]=0;
return 1;
}
}
void main()
{
int choice;
cout<<"本程序是模拟消费者、生产者问题的实验"<<endl;
cout<<"情景设置为:开始缓冲池共有10个"<<endl;
cout<<"具体的模拟过程如下:\n";
cout<<"初始状态:缓冲池有4个产品"<<endl;
while(1)
{
cout<<"0 退出"<<endl;
cout<<"1 生产者进行生产"<<endl;
cout<<"2 消费者进行消费"<<endl;
cout<<"请输入你的选择:";
cin>>choice;
switch(choice)
{
case 0:exit(1);
case 1:if(produce(a)) cout<<"产品生产成功!"<<endl;
else cout<<"缓冲池已满,现在不能生产!"<<endl;
break;
case 2:if(custom(a)) cout<<"消费者消费成功!"<<endl;
else cout<<"缓冲池已空,现在不能消费!"<<endl;
break;
default:cout<<"输入选择错误!"<<endl;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
linux课程设计.rar (13个子文件)
linux课程设计
消费者生产者问题
1
1.cpp 1KB
1.dsp 4KB
1.dsw 527B
1.opt 48KB
1.plg 236B
Debug
1.ilk 760KB
vc60.idb 65KB
1.obj 190KB
1.pdb 1.03MB
vc60.pdb 108KB
1.exe 524KB
1.ncb 41KB
消费者生产者问题.doc 206KB
共 13 条
- 1
资源评论
zizhi9999
- 粉丝: 8
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功