前情提要

代码使用cpp文件,使用链队。

在病人排队过程中,主要重复两件事:

(1)病人到达诊室,将病历交给护士,排到等待队列中候诊。

(2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。

要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:

  1. 排队——输入排队病人的病历号,加入到病人排队队列中。
  2. 就诊——病人排队队列中最前面的病人就诊,并将其从队列中删除。
  3. 查看排队——从队首到队尾列出所有的排队病人的病历号。
  4. 不再排队,余下顺序就诊——从队首到队尾列出所有的排队病人的病历号,并退出运行。
  5. 下班——退出运行,提示未就诊的病人明天再来。
#include<stdio.h>
#include<malloc.h>
typedef struct qnode
{//链队节点类型int data;struct qnode *next;
}QNode;
typedef struct
{//队头、队尾指针QNode *front,*rear;
}QuType;
void Destroyqueue(QuType *&qu)
{//自由链队QNode *p,*q;p=qu->front;if(p!=NULL)//若链队不为空{q=p->next;while(q!=NULL){//让队中节点自由free(p);p=q;q=q->next;}free(p);free(q);}free(qu);//自由链队节点
}
void SeeDoctor()
{int sel,flag=1,find,no;QuType *qu;QNode *p;qu=(QuType *)malloc(sizeof(QuType));//创建空队列qu->front=qu->rear=NULL;while(flag==1)//循环执行{printf("1.排队;2.就诊;3.查看排队;4.不再排队,余下依次就诊;5.下班\n");printf("请选择:");scanf("%d",&sel);switch(sel){case 1:printf("---请输入病例号:");//排队do{scanf("%d",&no);find=0;//如果有重复排队,则为1p=qu->front;while(p!=NULL&&!find)//查看是否重复排队{if(p->data==no)find=1;else p=p->next;}if(find) printf("---输入病历号重复,请重新输入:");}while(find==1);//找到重复的,重新读取p=(QNode *)malloc(sizeof(QNode));//创建新节点p->data=no;p->next=NULL;//节点赋值if(qu->rear==NULL)qu->front=qu->rear=p;//确认第一个节点为p,头结点为pelse{qu->rear->next=p;qu->rear=p;}break;case 2:if(qu->front==NULL)//就诊printf("---没有排队的病人!\n");else{p=qu->front;//p节点取第一个节点printf("---病人%d就诊\n",p->data);if(qu->rear==p)//如果链队就一个元素,现在便为空qu->front=qu->rear=NULL;else//不然前指针就右走一个qu->front=p->next;free(p);//自由p节点}break;case 3:if(qu->front==NULL)//查看排队printf("---没有排队的病人!\n");else{p=qu->front;//p节点取第一个节点printf("---排队病人:");while(p!=NULL){printf("%d ",p->data);p=p->next;}printf("\n");}break;case 4:if(qu->front==NULL)//不再排队,余下依次就诊printf("---没有排队的病人!\n");else{p=qu->front;//p节点取第一个节点printf("---病人按照以下顺序就诊:");while(p!=NULL){printf("%d",p->data);p=p->next;}printf("\n");}flag=0;Destroyqueue(qu);break;case 5:if(qu->front==NULL)//下班printf("---没有排队的病人!\n");printf("提示未就诊的病人明天再来\n");flag=0;Destroyqueue(qu);break;}}
}void main()
{SeeDoctor();
}

输出

输入

1
3018
1
3019
1
3020
3
2
3
4
5

(模拟看病)编写一个程序,反映病人到医院看病,排队看医生的情况。相关推荐

  1. java 操作系统 模拟 daima_编写一个程序,利用Java语言模拟操作系统进程调度管理...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.util.PriorityQueue; public class Process implements Comparable { ...

  2. 编写一个程序,反映病人到医院看病,排队,看医生的情况。

    /* *Copyright (c) 2016, 烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作者:张旺华 *完成日期: 2016 年 7 月 2 日 ...

  3. 用C++编写一个程序模拟患者在医院等待就诊的情况

    用C++编写一个程序模拟患者在医院等待就诊的情况 [实验题目内容] [实验环境](使用的软件):VS - 2010 [项目设计源代码] [项目测试运行结果截图] [实验题目内容] 队列的实现与应用.编 ...

  4. 编写一个程序,模拟扔硬币的结果.

    package 第三天_练习题; //编写一个程序,模拟扔硬币的结果. public class Test2 {public static void main(String[] args) {int ...

  5. 如何编写一个程序模拟扔硬币的结果

    编写一个程序模拟扔硬币的结果 package test;import java.util.Random;public class CoinTossing {public static void mai ...

  6. C++实现类和对象:编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。

    浙江理工大学信息学院 面向对象程序设计实验报告 实验名称:类的定义与使用                      学时安排:3 实验类别:设计性实验                          ...

  7. java 模拟电梯_请使用的Java的多线程知识来编写一个程序,实现一个简单的摩天大楼的电梯模型程序是以一座摩天大楼的多个电梯为背景,用线程、流程控制、随机函数等知识来模拟它。2、电梯的描述:...

    请使用的Java的多线程知识来编写一个程序,实现一个简单的摩天大楼的电梯模型 程序是以一座摩天大楼的多个电梯为背景,用线程.流程控制.随机函数等知识来模拟它. 2. 电梯的描述: 电梯是日常生活中经常 ...

  8. JAVA:编写一个程序,模拟电梯得功能。功能接口包括电梯上行按钮、下行按钮、楼层选择与电梯在行驶过程中得楼层显示。

    编写一个程序,模拟电梯得功能.功能接口包括电梯上行按钮.下行按钮.楼层选择与电梯在行驶过程中得楼层显示. (1) 由用户选择按上行按钮还就是下行按钮,选择操作后再由用户输入要进入得楼层,进而电梯开始运 ...

  9. C++ 第一章 NO.11 编写一个程序模拟支票输出。程序要求用户输入日期,姓名和支票的数量,然后模拟支票的形式输出以下信息,

    //******************************************************************************************** //*程序 ...

最新文章

  1. Unparseable date: 2015-8-8
  2. ceph bluestore 源码分析:刷缓存(trim)逻辑
  3. python绘图内容怎么保存_将绘图保存到图像文件,而不是使用Matplotlib显示 - python...
  4. 怎么用计算机的计算器转换进位制,计算器如何进行数值间的转换?
  5. 黑龙江省:2025年将建成5G基站11.4万个,15万数据中心机架
  6. 搜索引擎索引之索引基础
  7. xilinx IP核技术资料
  8. 题目53:Goldbach's Conjecture
  9. 【Vue US国际会议】使用Vue和NativeScript来开发吸引人的原生手机app
  10. 分布式消息中间件之kafka设计思想及基本介绍(一)
  11. Android LruCache技术原理
  12. (一)pscc学习笔记
  13. iOS 循环引用 委托 (实例说明)
  14. MongoDB简单使用 —— 安装
  15. 教你如何用PS制作iOS端APP应用图标AppIcon.appiconset
  16. 为何3Dmax渲染的图偏暗?跟伽马有影响吗?
  17. 欣赏的心态去发现生活中的美
  18. 隐秘的度假地_如何避免花太多钱去度假
  19. RefineNet 理解
  20. 分布式事务解决方案:2PC,TCC以及基于消息的最终一致性

热门文章

  1. 注册老域名要注意什么(老域名要怎么选)
  2. python带你采集各种表情包,做群里最靓的崽~
  3. Photoshop CC 2018 安装教程
  4. 手把手教你自己动手恢复坏道硬盘数据
  5. Linux系统之部署Yearning SQL审核平台
  6. 数字人民币试点地区再添11城,这些城市被纳入
  7. C语言double数据加减,double类型数据的加减乘除
  8. 618不知道买什么空调?看看美的导风黑科技“美的风尊”空调吧!
  9. minio下载文件速度很慢的原因分析与说明
  10. Sql解析转换之JSqlParse完整介绍