⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 操作系统的程序 和代码算法编程 操作系统的程序 和代码算法编程
💻 CPP
字号:
#include<iostream.h>

//队列类声明
class queue 
{
private:
	char *table;
	int size;
	int front,rear;
public:
	queue(int n=0);
	~queue();
	bool isempty();
	bool isfull();
	bool enqueue(const char k);
	char dequeue();
};

//队列类操作实现
queue::queue(int n)
{
	table=new char[n];
	size=n;
	front=rear=0;
}

queue::~queue()
{
	delete []table;
	size=0;
	front=rear=0;
}

bool queue::isempty()
{
	return front==rear;
}

bool queue::isfull()
{
	return front==rear%size+1;
}

bool queue::enqueue(const char ch)
{
	if(!isfull())
	{
		table[rear]=ch;
		rear=(rear+1)%size;
		return true;
	}
	else
	{
		cout<<"队列已满,"<<ch<<"值无法入队列!"<<endl;
		return false;
	}
}

char queue::dequeue()
{
	char ch=0;
	if(!isempty())
	{
		ch=table[front];
		front=(front+1)%size;
	}
	return ch;
}

void main()
{
	queue q0(20),q1(20),q2(20);  //创建三个队列,q0为就绪队列,q1和q2为等待队列
	int m,i=0;
	char ch,c,c1;
	for(ch='a';ch<='d';ch++)  //依次创建a,b,c,d四个进程进入就绪队列
		q0.enqueue(ch);
	while(i!=4)
	{
		c=q0.dequeue();
	    cout<<"进程"<<c<<"占有CPU开始运行"<<endl;
		cout<<endl<<"请选择:"<<endl
			<<"0:进程完成,操作系统释放该进程"<<endl
			<<"1:等待事件1发生,进程入事件1等待队列"<<endl
			<<"2:等待事件2发生,进程入事件2等待队列"<<endl
			<<"3:运行时间片到,进程入就绪队列"<<endl;
	    cin>>m;
	    switch(m)
		{
	    case 0: cout<<"进程"<<c<<"完成"<<endl; 
			    i++;
		        break;
	    case 1: cout<<"等待事件1发生,进程"<<c
				<<"入事件1等待队列"<<endl;
		        q1.enqueue(c);
			    cout<<"事件1是否出现?(y/n)\n";
			    cin>>c1;
			    if(c1=='y')
				{
					q0.enqueue(q1.dequeue());
                    cout<<"进程"<<c<<"入就绪队列"<<endl;
				}
			    break;
	    case 2: cout<<"等待事件2发生,进程"<<c
				<<"入事件2等待队列"<<endl;
		        q2.enqueue(c);
			    cout<<"事件2是否出现?(y/n)\n";
			    cin>>c1;
			    if(c1=='y')
				{
				    q0.enqueue(q2.dequeue());
                    cout<<"进程"<<c<<"入就绪队列"<<endl;
				}
		    	break;
	    case 3: cout<<"运行时间片到,进程"<<c<<"入就绪队列\n";
		        q0.enqueue(c);
		        break;
	    default:cout<<"错误!"<<endl;
		        break;
		}
	}
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -