第七周项目五

/*
Copyright (c++) 2017,烟台大学计算机与控制工程学院
文件名称:jcy
作 者:贾存钰
完成日期:2017年10月19日
问题描述:编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队过程中,主要重复两件事: 
 (1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。 
  (2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊。 
输入描述:按照提示输入
输出描述:

*/

[cpp]  view plain  copy
  1. #include <stdio.h>  
  2. #include <malloc.h>  
  3. typedef struct qnode  
  4. {  
  5.     int data;  
  6.     struct qnode *next;  
  7. } QNode;            /*链队结点类型*/  
  8.   
  9. typedef struct  
  10. {  
  11.     QNode *front,*rear;  
  12. } QuType;           /*链队类型*/  
  13.   
  14. void SeeDoctor()  
  15. {  
  16.     int sel,flag=1,find,no;  
  17.     QuType *qu;  
  18.     QNode *p;  
  19.     qu=(QuType *)malloc(sizeof(QuType));    /*创建空队*/  
  20.     qu->front=qu->rear=NULL;  
  21.     while (flag==1)                             /*循环执行*/  
  22.     {  
  23.         printf("1:排队 2:就诊 3:查看排队 4.不再排队,余下依次就诊 5:下班  请选择:");  
  24.         scanf("%d",&sel);  
  25.         switch(sel)  
  26.         {  
  27.         case 1:  
  28.             printf("  >>输入病历号:");  
  29.             do  
  30.             {  
  31.                 scanf("%d",&no);  
  32.                 find=0;  
  33.                 p=qu->front;  
  34.                 while (p!=NULL && !find)  
  35.                 {  
  36.                     if (p->data==no)  
  37.                         find=1;  
  38.                     else  
  39.                         p=p->next;  
  40.                 }  
  41.                 if (find)  
  42.                     printf("  >>输入的病历号重复,重新输入:");  
  43.             }  
  44.             while (find==1);  
  45.             p=(QNode *)malloc(sizeof(QNode));   /*创建结点*/  
  46.             p->data=no;  
  47.             p->next=NULL;  
  48.             if (qu->rear==NULL)                 /*第一个病人排队*/  
  49.             {  
  50.                 qu->front=qu->rear=p;  
  51.             }  
  52.             else  
  53.             {  
  54.                 qu->rear->next=p;  
  55.                 qu->rear=p; /*将*p结点入队*/  
  56.             }  
  57.             break;  
  58.         case 2:  
  59.             if (qu->front==NULL)                /*队空*/  
  60.                 printf("  >>没有排队的病人!\n");  
  61.             else                                /*队不空*/  
  62.             {  
  63.                 p=qu->front;  
  64.                 printf("  >>病人%d就诊\n",p->data);  
  65.                 if (qu->rear==p)            /*只有一个病人排队的情况*/  
  66.                 {  
  67.                     qu->front=qu->rear=NULL;  
  68.                 }  
  69.                 else  
  70.                     qu->front=p->next;  
  71.                 free(p);  
  72.             }  
  73.             break;  
  74.         case 3:  
  75.             if (qu->front==NULL)            /*队空*/  
  76.                 printf("  >>没有排列的病人!\n");  
  77.             else                            /*队不空*/  
  78.             {  
  79.                 p=qu->front;  
  80.                 printf("  >>排队病人:");  
  81.                 while (p!=NULL)  
  82.                 {  
  83.                     printf("%d ",p->data);  
  84.                     p=p->next;  
  85.                 }  
  86.                 printf("\n");  
  87.             }  
  88.             break;  
  89.         case 4:  
  90.             if (qu->front==NULL)            /*队空*/  
  91.                 printf("  >>没有排列的病人!\n");  
  92.             else                            /*队不空*/  
  93.             {  
  94.                 p=qu->front;  
  95.                 printf("  >>病人按以下顺序就诊:");  
  96.                 while (p!=NULL)  
  97.                 {  
  98.                     printf("%d ",p->data);  
  99.                     p=p->next;  
  100.                 }  
  101.                 printf("\n");  
  102.             }  
  103.             flag=0;                         /*退出*/  
  104.             break;  
  105.         case 5:  
  106.             if (qu->front!=NULL)            /*队不空*/  
  107.                 printf("  >>请排队的病人明天就医!\n");  
  108.             flag=0;                     /*退出*/  
  109.             break;  
  110.         }  
  111.     }  
  112.     p=qu->front;  //销毁队列  
  113.     QNode *q;  
  114.     while (p!=NULL)  
  115.     {  
  116.         q = p->next;  
  117.         free(p);  
  118.         p = q;  
  119.     }  
  120. }  
  121.   
  122. int main()  
  123. {  
  124.     SeeDoctor();  
  125.     return 0;  
  126. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
探索全栈前端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前端探索之旅,让每一个网页都成为技术与艺术的完美融合!
探索全栈前端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前端探索之旅,让每一个网页都成为技术与艺术的完美融合!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值