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

📄 dd.cpp

📁 设计一个电梯模拟系统,这是一个离散的模拟程序,因为电梯系统是乘客和电梯等”活动体”构成的集合,虽然它们彼此交互作用,但它们的行为是基本独立的.在离散的模拟中,以模拟时钟决定每一个活动体的动作发生的时刻
💻 CPP
字号:
#include<iostream.h>
#include <cmath>
#include <ctime>
//using namespace std;
// 使用RAND_MAX
#include   <time.h>   
#include   <stdio.h>  
#include<windows.h>

int stack_size=100;
int sleep(int n)//休眠n*0.1秒
{
      while(n--)
	  {
		Sleep(100);//休眠0.1秒
		//每0.1秒执行一次
		
	  }
	  return 0;
}


typedef struct Lnode{
	double floor;  //进入哪层楼
	int outfloor;  //要去那层楼
    double giveuptime;  //能忍耐多长时间
	double Intertime;  //下一人出现的时间
	
}Lnode,*person;  // 定义人的结构体

  //入电梯的队列链式存储结构
typedef struct Queue{
	Lnode man;
    struct Queue *next;
}Queue,*people; 
typedef struct{
	int count;
	people front;  //队头指针
	people rear;  //对尾指针
}linkqueue;
int Initqueue(linkqueue &Q)  //构造一个空队列
{
	Q.front=Q.rear=new Queue;
	Q.front->next=NULL;
	return 1;
}
int Enqueue(linkqueue &Q,Lnode &e)  //插入元素
{
	people p=new Queue;
	p->man=e;
	
	p->next=NULL;
	Q.rear->next=p;
	Q.rear=p;
	return 1;
}

int Dequeue(linkqueue &Q,Lnode &e) //删除元素
{
	if(Q.front==Q.rear)
		return 0;
		people p=new Queue;
		p=Q.front->next;
        Lnode *k=&e;
		*k=p->man;
        Q.front->next=p->next;
		if(Q.front==p)Q.rear=Q.front;
		delete p;
		return 1;
}

//栈的顺序存储结构
typedef struct{
struct	Lnode *base;
struct	Lnode *top;
	int stacksize;
}Sqstack;
int initstack(Sqstack &s)
{ 
	s.base=new Lnode[stack_size];
	s.top=s.base;
	s.stacksize=stack_size;
	return 1;
}
int Push(Sqstack &s,Lnode &e)
{
	if(s.top-s.base>=s.stacksize){
		s.base =(Lnode *)realloc(s.base,(s.stacksize+stack_size)*sizeof(Lnode));
	s.top=s.base+s.stacksize;
	s.stacksize+=stack_size;
	}
//person l=new Londe;

	*s.top=e;
	s.top++;
	return 1;
}
int Pop(Sqstack &s,Lnode &e)
{
	//if(s.top=s.base)return ERROR;
    
	--s.top;
	e=*s.top;	
	return 1;
}

void main()
{
Sqstack s;
	initstack(s);

	linkqueue Q[5];
	for(int i=0;i<5;i++)
	{
Initqueue(Q[i]);
	}


	Lnode l={1,2,3,5};
	
	
	Lnode b={0,0,0,0};
	
	
for(i=0;i<5;i++)
{
Enqueue(Q[i],l);
Enqueue(Q[i],b);	          
Lnode w;
Dequeue(Q[i],w);
cout<<w.floor<<endl;
cout<<w.Intertime<<endl;
Dequeue(Q[i],w);
cout<<w.floor<<endl;
cout<<w.Intertime<<endl;
}
    Sqstack v;
	initstack(v);
Push(v,l);
Push(v,b);
Lnode y;
Pop(v,y);
cout<<y.floor<<endl;
Pop(v,y);
cout<<y.floor<<endl;

}

⌨️ 快捷键说明

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