资源简介

司机和售票员进程同步的完整课程设计实验报告

资源截图

代码片段和文件信息

#include
using namespace std;
int spy=1 sj=0;  //信号量的定义,spy是售票员的私有信号量,sj是司机的私有信号量。
#define SIZE 3    //定义车上最多能坐的人数。
int n = SIZE;
char ck;          //乘客上下车的操作变量。
int p1();         //司机的操作流程。
int p2();         //售票员的操作流程。
int main()
{
cout << “键入a表示乘客上车键入d表示乘客下车.“ << endl;
cout << “键入s表示注销进程.“ << endl;
cout << “键入f表示乘客上下车过程结束.“ << endl << endl << endl;
p1();        
return 0;
}
int p1()         //司机的执行过程
{
sj--;//相当于p操作。
if (sj == 0)
{

cout << “汽车启动准备离站......“ << endl;
cout << “汽车运行中......“ << endl;
cout << “汽车到站!“ << endl;
cout << “汽车停!“ << endl;
spy++;//相当于v操作。
}
else sj++;
p2();
return 0;
}

int p2()    //售票员的执行过程
{
spy--;//相当于p操作。
if (spy==0)
{
cout << “售票员打开车门......“ << endl;
cout << “请进行乘客上下车操作!“ << endl;
while (1)
{
cin >> ck;
if ((ck == ‘a‘) && (n > 0)) {n--;cout << “上一个乘客.“ << endl;continue;};
if ((ck == ‘d‘) && (n < SIZE)) {n++;cout << “下一个乘客.“ << endl;continue;};
if (ck == ‘f‘) {break;};
if (ck == ‘s‘) {return 0;};
if (n <= 0) {cout << “车上座位已满不能再上乘客了!“ << endl;continue;};
if (n >= SIZE) {cout << “车上乘客已经都下完了!“ << endl;continue;};
}
cout << “现在关闭车门!“ << endl;
}
sj++;  //相当于v操作
p1();
return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      86774  2009-01-11 17:43  司机和售票员\Debug\sjspy.obj

     文件      74752  2009-01-11 17:43  司机和售票员\Debug\vc60.idb

     文件     102400  2009-01-11 17:43  司机和售票员\Debug\vc60.pdb

     文件     524343  2009-01-11 17:43  司机和售票员\Debug\司机和售票员.exe

     文件     762824  2009-01-11 17:43  司机和售票员\Debug\司机和售票员.ilk

     文件    2001156  2009-01-11 17:42  司机和售票员\Debug\司机和售票员.pch

     文件    1074176  2009-01-11 17:43  司机和售票员\Debug\司机和售票员.pdb

     文件       1470  2009-01-11 17:42  司机和售票员\sjspy.cpp

     文件       4349  2009-01-11 17:46  司机和售票员\司机和售票员.dsp

     文件        532  2009-01-11 17:42  司机和售票员\司机和售票员.dsw

     文件      33792  2009-01-11 17:46  司机和售票员\司机和售票员.ncb

     文件      48640  2009-01-11 17:46  司机和售票员\司机和售票员.opt

     文件        911  2009-01-11 17:43  司机和售票员\司机和售票员.plg

     文件     133120  2009-06-14 20:06  进程同步模拟设计——司机和售票员问题.doc

     目录          0  2009-01-11 17:43  司机和售票员\Debug

     目录          0  2009-01-11 17:46  司机和售票员

----------- ---------  ---------- -----  ----

              4849239                    16


评论

共有 条评论