医院排队叫号代码java 医院排队叫号系统设计( 二 )


//但是题意是 : 输入完成后,再依次输出;
//所以,只能把要输出的东西,存在一个数组里面(下面的数组);等输入完成后再统一依次输出
char print_[300][8] = {}; //用来存放 最后print的字符串; 每一个out 都要处理一下;
int str_num = 0; //字符串的条数;
scanf("%d",n);
for(j = 0 ; jn;++j)
{
scanf("%s",order);
if(strcmp(order,"IN") == 0 ) //字符串比较,如果输入的IN,
{
brnum += 1;
scanf("%d",yisheng);
scanf("%d",binglv);
BR_ temp;
temp.id = brnum;
temp.lv = binglv;
b2y[ yisheng ][ bingnum[yisheng] ] = temp;
bingnum[yisheng]++;
//排序; 把等级高的 放在前面; 注意使用 稳定排序 的方式;比如下面的选择排序;
int pos = 0;
while(pos != n - 1)
{
for(i = pos + 1; i n;++i)
{
if(b2y[yisheng][pos].lvb2y[yisheng][i].lv)
{
BR_ temp1 = b2y[yisheng][pos];
b2y[yisheng][pos] = b2y[yisheng][i];
b2y[yisheng][i] = temp1;
}
}
pos++;
}
}
else if(strcmp(order,"OUT") == 0)//
{
scanf("%d",yisheng);
if(bingnum[yisheng] = 0) //如果这个医生当前病人为0输出empty;
strcpy(print_[str_num++],"EMPTY");
else //不为0;输出排在最前面(也就是等级最高的病人);
{
char temp;
itoa(b2y[yisheng][0].id,print_[str_num++],10);
//最前面的病人 已经处理了,所以把数组后面的元素依次往前移动;
for(i = 0;ibingnum[yisheng] - 1;++i)
{
b2y[yisheng][i] = b2y[yisheng][i + 1];
}
bingnum[yisheng]--;//病人数量递减;
}
}
}
for(i = 0 ; istr_num;++i)
printf("%s\n",print_[i]);
return 0;
}
数据结构(java编程)的看病排队候诊问题启动两个线程,A线程-叫号线程,B线程-取号线程
建立一个队列(ArrayQueue ),用来放号
A线程叫号,就从队列拿一个号 , 该线程可能有多个,对应多个医生,所以叫号时要同步
B线程取号,就一个线程,对应一台取号机
医院排队叫号代码java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于医院排队叫号系统设计、医院排队叫号代码java的信息别忘了在本站进行查找喔 。

推荐阅读