资源简介
进程同步模拟设计--吃水果问题,完全是自己写的,跟网上其他的不一样,很不一样,注释也是简单易懂
代码片段和文件信息
#include
using namespace std;
typedef struct fruitsystem
{
int pingguojuzi;
int exist; //定义一个存在量,方便son 和 daughter 拿
int empty; //定义一个空的量,方便 baba 和 mama 放
int right; // 定义一个对盘子的使用权
}*fruit;
void baba(fruit s); //函数声明
void mama(fruit s);
void son(fruit s);
void daughter(fruit s);
int main()
{
fruit s;
s=new fruitsystem;
s->pingguo=0;
s->juzi=0;
s->exist =0;
s->empty =2;
s->right =1; //没有人使用盘子,盘子可以供给一个进程是用
int i1=0;
int i2=0;
int j1=0;
int j2=0;
int k=1;
int a;
cout<<“有六个个角色:爸爸,妈妈,儿子1,儿子2,女儿1。请问你是哪个角色?“< cout<<“是爸爸请输入“1”,是妈妈请输入“2”,是儿子1请输入“31”,是儿子2请输入“32”,是女儿1请输入“41”,是女儿2请输入“42”“<
while(k==1)
{
cin>>a;
if (a==1) //-------------------------------------baba----------
{
if(s->empty!=0 && s->right==1)
{
baba(s);
if(j2>0)
{
daughter(s); //程序同步
j2--;
}
}
else if(s->empty==0 && s->right==1)
{
cout<<“盘子已经满,请等待!“<<“前面已有“< i1++;
}
else if(s->right==0)
{
cout<<“盘子已被占用,请等待!“< i1++;
}
}
if(a==2) //-----------------------------------mama-------------
{
if(s->empty!=0 && s->right==1)
{
mama(s);
if(j1>0)
{
son(s); //程序同步
j1--;
}
}
else if(s->empty==0 && s->right==1)
{
cout<<“盘子已经满,请等待!“<<“前面已有“< i2++;
}
else if(s->right==0)
{
cout<<“盘子已被占用,请等待!“< i2++;
}
}
if( a==31 || a==32) //------------------son-------------
{
if(s->juzi>0 && s->right==1)
{
son(s);
if(i2>0)
{
mama(s); // 程序同步
i2--;
}
}
else if (s->juzi==0 && s->right==1)
{
cout<<“盘子里面没有橘子!请等待!前有已有“< j1++;
}
else if( s->right==0)
{
cout<<“盘子已被占用,请等待!“< j1++;
}
}
if(a==41 || a==42) //-------------------------daughter--------------
{
if(s->pingguo>0 && s->right==1)
{
daughter(s);
if(i1>0)
{
baba(s); // 程序同步
i1--;
}
}
else if( s->pingguo==0 && s->right==1)
{
cout<<“盘子里面没有苹果!请等待!前有已有“< j2++;
}
else if( s->right==0)
{
cout<<“盘子已被占用,请等待!“< j2++;
}
}
cout<<“是否继续本程序?是输入“1”.否输入“2”“< cin>>k;
if(k==1)
{ cout<<“是爸爸请输入“1”,是妈妈请输入“2”,是儿子1请输入“31”,是儿子2请输入“32”,是女儿1请输入“41”,是女儿2请输入“42”“<
}
return 0;
}
void baba(fruit s)
{
if(s->right==1)
{
int ttt;
t=1;
cout<<“请放入苹果“< while(t==1&&s->empty>0)
{
s->right =0; //占用盘子使用权
s->pingguo++;
cout<<“爸爸放入一个苹果“< cout<<“现在盘子里面有苹果:“<pingguo <<“个,有橘子:“<juzi <<“个“< s->empty=s->empty-1; // 空位减少 1
cout<<“是否继续放入苹果?是请输入“1”,否输入“2”“< cin>>t;
if(t==1&&s->empty ==0)
{
cout<<“盘子已满,请等待!“< goto end;
}
if(t==2)
{
goto end;
}
}
end: c
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6537 2013-01-25 20:16 os\吃水果.cpp
文件 105472 2013-01-17 18:58 os\封面任务书.doc
文件 354816 2013-01-25 20:10 os\报告.doc
文件 29696 2009-11-30 16:34 os\评分表.doc
目录 0 2013-01-25 20:16 os\
- 上一篇:简单的员工薪资管理系统
- 下一篇:C51批量字模提取工具
相关资源
- 在Linux下添加系统调用
- 操作系统课程设计之存储管理—动态
- 操作系统课程设计报告-多级反馈队列
- 进程管理大作业源码电梯调度算法操
- 操作系统原理ppt及自测题科大
- 联想LeTOS 1.3.0 瘦客户机操作系统
- 操作系统课程设计 便于直接存取的索
- 山东大学操作系统实验八 磁盘移臂调
- csapp.h csapp.c文件
- GEEK OS课程设计报告
- 操作系统考研王道知识点整理
- VxWorks操作系统指南.pdf
- 操作系统实验报告-文件系统
- 华中科技大学操作系统课程设计——
- 操作系统银行家算法 js网页实现
- 操作系统名词解释与简答题
- 计算机考研操作系统题库
- 操作系统概念第七版答案(含编程代
- Operating System Concepts 7th Edition 课后答案
- 日文操作系统 xp 迅雷种子
- 自考02326操作系统2018版课后习题答案
- 操作系统课程设计之系统调用返回时
- 操作系统 课程设计 实现生产者消费者
- Nachos虚存页面置换算法
- 模拟操作系统实验报告
- 缓冲池 操作系统课设
- 操作系统课设计 SPOOLing系统
- 操作系统之文件系统设计一个n 个用户
- 计算机操作系统课后答案
- 获取操作系统、CPU、内存、硬盘等系
评论
共有 条评论