每年的9月20日,是全国爱牙日。作为中国特有的节日,爱牙日的由来主要与兰州地区的牙科医生--白成平有关。白成平在17岁的时候,就跟随美国口腔医学博士毛燮均学习牙医技术。此后,他便一直在兰州一家医院担任牙科医生。在50多年的牙医生涯中,他对人
全部3个回答 >用C语言如何描述电梯的运行机制
-
#include#include
usingnamespacestd;
structpassenger
{charname;intstart;intend;intdir;
};typedefstructLNode
{undefined
passenger P;structLNode *next;
}LNode,*LinkList;
voidInsert(LNode *C, LNode *LN)
{undefined
LN->next= C->next;
C->next =LN;
}
void del(LNode *LN)
{undefined
LNode*next2 = LN->next;
LN->next = next2->next;free(next2);
}
void finddel(LNode *LN, LinkList C)
{for (LNode *p = C; p->next != NULL; p = p->next)
{if (p->next->P.name == LN->P.name)
{undefined
del(p);break;
}
}
}
boolisempty(LinkList L)
{if (L->next ==NULL)return 1;else
return 0;
}
void Insert2(LinkList A, LinkList B, LinkList C,intdir, intfloor)
{for (LNode *p = C->next; p != NULL; p = p->next)
{if (dir == 1 && p->P.start >= floor && p->P.dir == 1)
{//查找出C中方向相同且起始楼层在电梯上方的所有节点
LNode *r = (LNode*)malloc(sizeof(LNode));
LNode*s = (LNode*)malloc(sizeof(LNode));
r->P = p->P;
s->P = p->P;for (LNode *q = A; ; q = q->next)
{//将该节点插入A中,确保其起始楼层为升序的方式
if (q->next == NULL || q->next->P.start >= r->P.start)
{undefined
Insert(q, r);break;
}
}for (LNode *q = B; ; q = q->next)
{//将该节点插入B中,确保其目标楼层为升序的方式
if (q->next == NULL || q->next->P.end >= s->P.end)
{undefined
Insert(q, s);break;
}
}
}else if (dir == 0 && p->P.start <= floor && p->P.dir == 0)
{undefined
LNode*r = (LNode*)malloc(sizeof(LNode));
LNode*s = (LNode*)malloc(sizeof(LNode));
r->P = p->P;
s->P = p->P;for (LNode *q = A; ; q = q->next)
{if (q->next == NULL || q->next->P.start <= r->P.start)
{undefined
Insert(q, r);break;
}
}for (LNode *q = B; ; q = q->next)
{if (q->next == NULL || q->next->P.end <= s->P.end)
{undefined
Insert(q, s);break;
}
}
}
}
}int finds(int m, LinkList C, intdir)
{//确定出电梯行驶方向最后停留的楼层
if (dir == 1)
{for (LNode *p = C->next; p != NULL; p = p->next)
{if (mP.start)
m= p->P.start;
}
}else{for (LNode *p = C->next; p != NULL; p = p->next)
{if (m>p->P.start)
m= p->P.start;
}
}returnm;
}intmain()
{undefined
LinkList C= (LNode*)malloc(sizeof(LNode));
C->next = NULL;//C为存储所有的乘客信息的链表
LinkList A = (LNode*)malloc(sizeof(LNode));
A->next = NULL;//A为存储某个行驶方向上,上电梯的所有乘客信息
LinkList B = (LNode*)malloc(sizeof(LNode));
B->next = NULL;//B为A中乘客的按下电梯顺序排列
int floor;//记录电梯选择运行方向时所在的楼层
int dir;//记录电梯运行的方向
cout << "请输入电梯所在楼层:";while (cin >>floor)
{cout<< "请依次输入乘客代号、起始楼层、目标楼层、行驶方向:" <
dir= 0;while (cin >>a)
{undefined
LinkList x= (LNode*)malloc(sizeof(LNode));
x->P.name =a;
cin>> x->P.start >> x->P.end >> x->P.dir;
Insert(C, x);if (x->P.start >=floor)
dir= 1;
}cin.clear();
while (!isempty(C))
{//有乘客未乘坐电梯
Insert2(A, B, C, dir, floor);//将C中满足条件的乘客放入A、B中
if(isempty(B))
floor=finds(floor, C, dir);while (!isempty(B))
{//模拟电梯往某个特定方向行驶的过程
if (dir == 1)
{//当电梯是向上行驶时
if ((A->next == NULL) || (A->next->P.start > B->next->P.end))
{//出电梯的情况
cout << "当前楼层为" << B->next->P.end << ","
<< B->next->P.name << "出电梯" <
finddel(B->next, C);//删除C中对应的乘客信息
del(B);//删除链表中该乘客的信息
}else{//进电梯的情况
cout << "当前楼层为" << A->next->P.start << ","
<< A->next->P.name << "进电梯" <
del(A);//删除链表中该乘客的信息
}
}else{//当电梯是向下行驶时
if ((A->next == NULL) || (A->next->P.start < B->next->P.end))
{undefined
cout<< "当前楼层为" << B->next->P.end << ","
<< B->next->P.name << "出电梯" <
finddel(B->next, C);
del(B);
}else{undefined
cout<< "当前楼层为" << A->next->P.start << ","
<< A->next->P.name << "进电梯" <
del(A);
}
}if (B->next != NULL && B->next->next ==NULL)
{undefined
floor= finds(B->next->P.end, C, dir);
}
}
dir= !dir;//改变行驶方向
}cout<< endl <
cout<< "请输入电梯所在楼层:";
}
system("pause");
}
2023-10-25 07:47:14 -
在C语言中,可以使用多线程和条件变量来描述电梯的运行机制。每个楼层和电梯都可以表示为一个线程,电梯线程负责接收乘客请求并根据优先级选择目标楼层,楼层线程负责检测乘客的请求并通知电梯线程。
通过条件变量实现线程之间的同步和通信,电梯线程根据当前状态和目标楼层进行运行、开关门等操作,直到达到目标楼层。
这样可以模拟电梯的运行机制,并实现多个乘客同时使用电梯的情况。
2023-10-25 07:47:14
-
问 爱牙日的由来答
-
问 爱尔兰是哪个国家答
爱尔兰被称为翡翠岛国,这里西临大西洋、东靠爱尔兰海,与英国隔海相望。爱尔兰其实是一个独立的西欧国家,为北美通向欧洲的通道。爱尔兰、英格兰、苏格兰、威尔士是四个民族,也是四个地方。在历史上,这四个地方分分合合,瓜葛不断。1918年前,四个民族
全部10个回答 > -
问 圣城是哪个城市答
希腊雅典、中国洛阳、沙特麦加和以色列耶路撒冷被世界公认为世界四大圣城。关于洛阳圣城称号的由来,可追溯至上古时期。 相传上古时期,洛阳孟津县境内的黄河中出现背着“河图”的龙马和背着“洛书”的神龟,它们把图和书献给了伏羲后,伏羲根据图和书
全部10个回答 > -
问 芥菜的营养价值答
食材简介: 芥菜又称盖菜、挂菜,是中国的特产蔬菜。芥菜植株一般可高150厘米,幼茎及叶具有毛刺。经过长期选择和栽培,芥菜出现了不同的变种:根芥菜,也叫大头菜,主要用来腌制咸菜;叶芥菜俗称雪里红,可制成霉干菜;茎芥菜,用来制作榨菜;芽芥
全部10个回答 > -
问 猪肝的营养价值答
食材简介: 猪肝又名血肝,是猪的肝脏,与胆相连,肝脏是动物体内储存养料和解毒的重要器官。猪肝在消化系统中能够制造胆汁,一般呈紫红色、红褐色,质软而脆,呈楔形,右端圆钝,左端扁薄,可分为上、下两面,前后两缘,左右两叶。 营养功效:
全部10个回答 > -
问 花椒的营养价值答
食材简介: 花椒,又叫麻椒、蜀椒、点椒等,是我国原产的一种干、枝、叶、果均具浓郁辛香的落叶灌木或小乔木。它最初野生于我国中西部,是作为是敬神的香物。现在广泛分布于我国南北各地。由于它的果皮暗红,密生粒状突出的腺点,犹如细斑,故花椒之名
全部10个回答 > -
问 银鱼的功效与作用答
食材简介: 银鱼,又称炮仗鱼、面条鱼、白饭鱼等,通体白色,整体长约10厘米,刺少,有牙并且十分锋利。银鱼具有海洋至江河洄游的习性,多生活于水的下层,我国的太湖、西湖、马湖是三大银鱼盛产湖。 营养功效: 银鱼所含营养十分丰富,具有高
全部10个回答 > -
答
大理是悠闲和浪漫的代名词,下关的风,上关的花,苍山的雪,洱海的月,“风花雪月”构成了大理最著名的特色。去大理,我们的路线是先游览大理古城周边及崇圣寺三塔,然后环洱海游,最后以登苍山结束。大理古城是大理旅游的核心区,这里承载着大理历史文化、宗
全部10个回答 > -
问 原单和正品的区别答
现在的市场可以说是乌烟瘴气,光各种产品的头衔都搞的人一头雾水,那么,原单和正品有什么区别呢?所谓的原单货和“真货”的唯一区别,不过是“庶出”而已,数量很少。众所周知,现在国外60%以上的奢侈品都在中国生产。国外的一些大品牌会在国内找一些代工
全部10个回答 > -
问 太湖的简介答
“太湖美呀太湖美,美就美在太湖水”,1978年,这首《太湖美》传遍大江南北,太湖一时成为了大家都心中的向往之地。太湖位于江苏省南部,长江三角洲南部,是中国著名的五大淡水湖之一。太湖湖泊面积2427.8平方公里,湖岸线全长393.2公里。其西
全部10个回答 >