医务室排队就诊的队列模拟.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 引 言 - 3 - 1.1问题的提出 - 3 - 1.2 C语言 - 3 - 1.3 C语言发展过程 - 3 - 1.4任务与分析 - 3 - 2 设计方案 - 4 - 2.1整体设计方案 - 4 - 2.2结构体创建 - 4 - 2.3创建等待队列并进行简单操作 - 6 - 2.4寻找最短等待时间 - 7 - 3.程序演示: - 8 - 结 论 - 11 - 致 谢 - 12 - 参考文献 - 13 - 摘 要 随着计算机的普及,计算机技术的发展,以软件为核心的信息产业对人类的经济,政治,文化产生了深远的影响,医务室排队就诊也需要在计算机上统计显示,本程序将模拟医务室排队就诊,对到达的病人数,病人到达的时间间隔以及所需诊断时间随即产生,输出医生的总等待时间和病人的平均等待时间。 关键词:医生诊断,等待,随即 1 引 言 1.1问题的提出 以前的操作系统等系统软件主要是由汇编语言编写的(包括UNIX操作系统在内)。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性,最好改用高级语言,但一般高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作,例如,对内存地址的操作、位操作等)。人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。于是,C语言就在这种情况下应运而生了。C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。1973年,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。 2 设计方案 2.1整体设计方案 此课题是医务室排队就诊的队列模拟为了直观和方便,画出流程图如下图1: 图1 2.2结构体创建 要显示某个小时之内到达的病人数以及病人到达的时间间隔和医生的就诊情况。 typedef struct { int arrive; int treat; }PATIENT; typedef struct queue { PATIENT data; struct queue *link; }QUEUE; 两个结构体第一个是病人的包含的是到达的时间和等待的时间 第二个是队列是一个链队列,将病人的数据存放到里面 2.3创建等待队列并进行简单操作 void EnQueue(QUEUE **head,QUEUE **tail,PATIENT x) //进队操作 { QUEUE *p; p=(QUEUE*)malloc(sizeof(QUEUE)); p-data=x; p-link=NULL; if(*head==NULL) *head=*tail=p; else { (*tail)-link=p; *tail=p; } } int DeQueue(QUEUE **head,QUEUE **tail,PATIENT *cp) //出队操作 { QUEUE *p; p=*head; if(*head==NULL) return 1; *cp=(*head)-data; *head=(*head)-link; if(*head==NULL) *tail=NULL; free(p); return 0; } void OutputQueue(QUEUE *head) { while(head!=NULL) { printf(到达时间:[%d]处理时间:[%d]\n,head-data.arrive,head-data.treat); head=head-link; } } 队列的三种操作,分别对队列进行插入删除和出队列 2.4寻找等待时间 int InitData(PATIENT *pa, int *sum, double *res) { int a[100][2] = {0}; int parr=0; int i, n=0, tm = 0; while(

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档