课程设计——医院门诊候诊队列管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:医院门诊候诊队列管理系统

要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号时编码是连续的,但由于同一个门诊科目有三个诊室,其中35(含35)岁以上的在第一诊室,35岁以下的男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:

系统功能的基本要求:

(1)******************************** 挂号********************************** (2)******************************** 叫号********************************** (3)******************************* 分诊室********************************* (4)************************* 显示各诊室队列信息**************************** (5)*** 统计当天就诊的患者情况(要求按性别进行统计和按任意年龄区段进行统计)*** (6)****************************** 结束程序******************************** 选1 时,提示用户在一行内输入姓名及挂号单编号;

选2 时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除

选3时,进行诊室分配

选4时,按队列顺序显示各个诊室排队人的姓名、挂号单编号及所在诊室

选5时,进行两种统计方法的选择,并进行必要的统计计算

选6时,退出程序的运行

要求1~5中每一个步骤完成后都能重新显示此选择菜单

系统功能分析:

1.能实现挂号功能,提示用户在一行内输入姓名及挂号单编号,并储存;

2.能实现叫号功能,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序

列中删除;

3.根据病人的性别与年龄,能实现诊室的分配;

4.能按队列顺序显示各个诊室排队人的姓名、挂号单编号及所在诊室。

5.按性别进行统计和按任意年龄区段进行统计,并打印输出;

6.完成每个步骤之后都能重新显示此选择菜单。

一、模块算法设计

模块图:

二、 流程图设计

模块一,主界面函数的详细流程图:

主界面模块,通过主界面面板中的选择项,输入相应的数字即可进入对应的功能模块。但是,在运行模块二、模块三和模块四三个功能模块时,需要先将模块二、模块三依次运行,直至两者显示“叫号完毕!”,“诊室已分配完毕!”,这时方可进行模块四的运行。

模块二,挂号系统的详细流程图:

始,依次增加。并且,每个患者的信息输入完成之后,还可选择“1”继续输入、“2”停止输入并返回主菜单,以此来控制数据的采集。模块运行完毕时,回车即可返回主界面。

模块三,叫号系统的详细流程图:

叫号模块,能实现显示排在队列中第一位患者姓名、挂号单编号,然后,通过清屏形式将其从挂号序列中删除的功能。通过分诊步骤之后,再操作此模块将显示下一位患者的信息,即实现了题目中“从挂号序列中删除”的要求。模块运行完毕时,回车即可返回主界面。

模块四,分诊模块的详细流程图:

按照年龄及性别进行分诊模块,能实现对患者进行分诊功能,先通过判断年龄进行第一诊室的分配,然后再将剩余的患者进行性别判断进行第二、第三诊室的分配。即年龄在35岁(含35岁)以上的患者分在第一诊室,35岁以下的男性患者分在第二诊室,剩余患者的分在第三诊室。

此步骤需要和叫号步骤交替运行,方可将挂号患者所在的诊室分配完全。模块运行完毕

时,回车即可返回主界面。

模块五,显示功能详细流程图:

显示各患者队列及诊室信息模块,可以实现将当前所有患者的所在诊室以及其详细信息展示出来的功能,所显示的信息分为三个部分展示。而且模块运行完毕时,回车即可返回主界面。

模块六,统计模块的详细流程图:

统计模块,分为性别统计和按任意年龄统计。按任意年龄统计,通过输入的年龄界限X 与年龄数组中的数据进行判断比较,输出相应的人数,并且输入的年龄界限必须是可行的实际值,否则无意义;按性别统计,直接打印数据即可。模块运行完毕时,回车即可返回主界

面。

模块七,系统日志功能详细流程图:

系统日志模块,是对用户的操作进行记录的函数。本程序中只对患者挂号操作、叫号操作以及分诊室操作三方面进行记录,在患者诊室划分完毕之后生成系统日志。模块运行完毕时,回车即可返回主界面。

三、详细设计

1.头文件及全局变量的定义

在头文件“hospital.h”中定义的全局变量有:

int count=0; //全局变量,挂号总人数;

int S1=0; //全局变量,第一诊室人数;

int S2=0; //全局变量,第二诊室人数;

int S3=0; //全局变量,第三诊室人数;

int j=10000; //全局变量,初始挂号编号;

int m=0; //全局变量,已叫号人数;

int l=0; //全局变量,判定患者是否分配完毕;

int h[10000]; //全局变量,日志功能中记录操作痕迹;

int a=0; //全局变量,日志功能中操作痕迹总量;

time_t now[10000]; //全局变量,日志功能中显示时间;

d=0; //全局变量,日志功能中时间顺序的下标;

还有统一定义的变量,如结构体数组“struct hospital hos[ ]”中的姓名name、年龄age、性别sex以及诊室room等。

2.各模块的函数定义及相关变量的使用

模块一、主界面:

函数原型:void introduce( )

参数:无

返回值:void

模块的具体实现:直接采用printf函数将主界面打印出来。

模块二、挂号函数:

函数原型:void guahao(struct hospital hos[ ])

参数:hos[ ] 用来存入挂号者的信息

返回值:void

函数的具体设计:定义变量i,用do—while循环输入每个挂号病人的信息(编号已经预先制定),再将病人编号信息定为J(10000)每循环一次全局变量count自加一次,在循环的结尾提示病人编号为J且给出选择0或1(将其赋给i,若i=0结束输入;若i=1继续输入),这样在输完病人的信息后,系统会自动分配编号给病人。当i=0时,停止采集数据,并清屏、暂停以及引用introduce( )函数返回主界面。

模块三、叫号函数:

函数原型:void jiaohao(struct hospital hos[ ])

参数:hos[ ] 输出存入的病人信息

返回值:void

相关文档
最新文档