排队叫号系统的编程问题

排队叫号系统的编程问题,第1张

可以有两种结构:

1 就是像你说的写一个服务器+ 一个客户端程序,服务器管理所有数据及给客户端回应.

客户端可以开N个程序,模拟银行的N个窗口.

每一个都跟服务器进行通信,这涉及到网络编程和埋,难度比较大.优点结构比较稳定,所有服务由服务器进行调度,安全.

2 就是只写一个应用程序,运行时可运行N个,但都共用一个数据源(数据库数据).

程序一接到响应就去数据库中检查当前有哪些地排队,选号最小的报.只涉及到数据库编程,但有一个致命缺点就是:当你开窗口很多,几唤橡蚂个程序同时申请报号时,程序会在同一时间去检查数据库中的同一条记录,这个估计有点麻烦,就是不支持并发的意思...

简单提示到这里,如禅其它自己研究吧.

有问题随时准备共同探讨.

这次终于改好了:

#include<stdio.h>

#include<malloc.h>

#include<stdlib.h>

typedef struct node

{

int num

char name[20]

}LNode

LNode QUEUE[20]

int front=0

int rear=0

int i=0

 孝猜此 int main()

{

int MAINX(LNode QUEUE[20]/*,int front,int rear*/)//改动

MAINX(QUEUE/*,front,rear*/)//改动

return 0

}

int MAINX(LNode QUEUE[20]/*,int front,int rear*/)

{

int ADDCQ(LNode QUEUE[20]/*,int front,int rear*/)

int dayin(LNode QUEUE[20]/*,int front,int rear*/)

int pan(LNode QUEUE[20]/*,int front,int rear*/)

while(1)

{

ADDCQ(QUEUE/*,front,rear*/)

dayin(QUEUE/*,front,rear*/)

pan(QUEUE/*,front,rear*/)

}

return 0

}

int pan(LNode QUEUE[20]/*,int front,int rear*/) //判断

{

int dayin(LNode QUEUE[20]/*,int front,int rear*/)

int DELCQ(LNode QUEUE[20]/*,int front,int rear*/)

char operation

printf("处理完毕请输入Y 需要新客户服务请输入N:")

scanf("%s",&operation)

if (operation=='Y')

{

DELCQ(QUEUE/*,front,rear*/)

dayin(QUEUE/*,front,rear*/)

pan(QUEUE/*,front,rear*/)//改动

}

return 0

}

int ADDCQ(LNode QUEUE[20]/*,int front,int rear*/) //添加

{

int pan(LNode QUEUE[20]/*,int front,int rear*/)

printf("请客户输入姓名兆搜以得到服务编号:")

if((rear+1)%20==front)

{

printf("队列已满,请稍候再领取服务编号。\n")

pan(QUEUE/*,front,rear*/) //改动

}

else

{

//getchar()

//gets(QUEUE[(++rear)%20].name)

scanf("%s",&QUEUE[(++rear)%20].name)

i++

QUEUE[rear%20].num=i

}

return 0

}

int DELCQ(LNode QUEUE[20]/*,int front,int rear*/)//删除

{

int pan(LNode QUEUE[20]/*,int front,int rear*/)

if(front==rear)

{

printf("输入错误。")

pan(QUEUE/*,front,rear*/)//改动

}

 巧迅 else

{

front=(front+1)%20

}

return 0

}

int dayin(LNode QUEUE[20]/*,int front,int rear*/) //打印等待列表

{

int j,k

printf("当前客户等待情况:\n")

if(i==1&&front==rear)

printf("无等待。\n")

else

{

k=front+2

for(j=QUEUE[front+2].numj<=ij++,k++)

{

k=k%20

printf("处理编号:%d 客户姓名:%s\n",QUEUE[k].num,QUEUE[k].name)

}

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12308192.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存