欢迎来到天天文库
浏览记录
ID:50351504
大小:46.81 KB
页数:3页
时间:2020-03-08
《C语言模拟医院看病过程.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、模拟患者医院看病过程(使用语言描述)1.主要功能描述:患者医院看病过程是,先排队等候,在看病治疗。在排队等候的过程中主要重复做两件事情,一是患者到达诊室是,将病历交给护士,排队等候队列中就诊;二是护士从等候队列中取出下一个患者的病历,该患者进入诊室看病。2.设计分析:使用循环队列的相关操作,当病人到达时挂号则入队,护士叫下一位患者就诊则排在前面的患者出队,当接到不在接受病人时候,则将队中所有元素出队,并用flag=0终止程序运行。①重要变量用途说明②算法描述#include#def
2、ineMAXSIZE50#defineQueueElementtypeinttypedefstruct//定义循环队列{QueueElementtypeelement[MAXSIZE];//队列元素空间intfront;//头指针指示器intrear;//尾指针指示器}SeqQueue;voidInitQueue(SeqQueue*Q)//初始化为循环空队列{Q->front=Q->rear=0;}intEnterQueue(SeqQueue*Q,QueueElementtypex)//入队操作{i
3、f((Q->rear+1)%MAXSIZE==Q->front)//尾指针加1追上头指针,标志队列已经满了return(false);Q->element[Q->rear]=x;Q->rear=(Q->rear+1)%MAXSIZE;//重新设置尾指针return(true);}intDeleteQueue(SeqQueue*Q,QueueElementtype*x)//出队操作{if(Q->front==Q->rear)//队列为空,不能操作return(false);*x=Q->element[
4、Q->front];Q->front=(Q->front+1)%MAXSIZE;//重新设置头指针return(true);}intIsEmpty(SeqQueue*Q)//判断队列是否为空{if(Q->front==Q->rear)returntrue;elsereturnfalse;}voidSeeDoctor(){SeqQueueQ;intflag=1;inta,n;InitQueue(&Q);while(flag){printf("请输入指令:");scanf("%d",&a);swit
5、ch(a){case1:printf("请输入病历号:");scanf("%d",&n);EnterQueue(&Q,n);break;case2:if(!IsEmpty(&Q)){DeleteQueue(&Q,&n);printf("病历号为%d的病人就诊",n);}elseprintf("无病人等候就诊");break;case3:printf("今天停止挂号,下列病人依次就诊:");while(!IsEmpty(&Q)){DeleteQueue(&Q,&n);printf("%
6、dt",n);}flag=0;break;default:printf("非法命令!");}}printf("");}voidmain(){SeeDoctor();}
此文档下载收益归作者所有