资源简介
进程同步模拟设计--吃水果问题,完全是自己写的,跟网上其他的不一样,很不一样,注释也是简单易懂

代码片段和文件信息
#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批量字模提取工具
相关资源
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- STM32基于rt_thread操作系统的SDHC卡文件
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 操作系统实验——虚存管理实验
- 广工操作系统实验
- 广东工业大学操作系统实验四文件系
- Bochs入门教程[操作系统第一步]
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- 模拟一个文件管理系统
- 二级文件系统(操作系统)
- uCOS编译环境建立 BC45 TASM
- Linux 操作系统实验(全)
- 操作系统实验综合设计【附代码】
- 操作系统共享内存实验
- 操作系统循环首次适应算法
- 操作系统课程设计实现可变分区存储
- 基于GTK的Linux环境下的简易任务管理器
- 操作系统课程设计 二级文件管理系统
- 加快Windows XP操作系统开机速度
- 操作系统教程课后答案华中科技大学
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
- 计算机操作系统课后_汤小丹_第四版
- 计算机操作系统(第四版)汤小丹课
评论
共有 条评论