您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页医院门诊候诊的队列管理程序

医院门诊候诊的队列管理程序

来源:华佗健康网
重庆科技学院《C语言》课程设计报告

XXXXXXX

《C语言》课程设计报告

学 院:_电气与信息工程学院_ 专业班级: 学生姓名: 学 号: 设计地点(单位)________计算机基础自主学习中心 _ __ 设计题目:_医院门诊候诊的队列管理程序______________ _____ 完成日期: XXXX 年XX 月 XX日

指导教师评语: ______________________ _________________

_________________________________________________________________________________________________________________________________________________________________________________________________________ __________ _

成绩(五级记分制):______ __________

指导教师(签字):________ ________

重庆科技学院

重庆科技学院《C语言》课程设计报告

课程设计任务书

设计题目:医院门诊候诊的队列管理程序

学生姓名 课程名称 地 点 C语言程序设计课程设计 专业班级 I301/I302 起止时间 设【问题描述】 计要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设内挂号时编码是连续的,但由于同一个门诊科目有3个诊室,其中35(含35)容岁以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,及程序启动后显示下列菜单: 要【实现提示】 求 1--挂号 2--叫号 3--分诊室 4--显示各诊室队列信息 5--统计当天就诊的患者情况(要求按性别进行统计和按任意年龄区段进行统计) 6--结束程序 选1时,提示用户在一行内输入姓名及挂号单编号; 选2时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除 选3时,进行诊室分配 选4时,按队列顺序显示个诊室排队人的姓名、挂号单编号及所在诊室 选5时,进行两种统计方法的选择,并进行必要的统计计算 选6时,退出程序的运行 要求1~5中每一个步骤完成后都能重新显示此选择菜单 设计 参数 (1)系统分析、设计正确。 (2)结果以图表方式显示。 (3)界面简洁、美观。 (4)报告格式规范。 进1月6日第一大节、第二大节 讲解课程设计任务 度 要1月6日第三大节、第四大节 阅读课程设计指导书,选择课题 求 1月7日第一大节、第二大节 讲解结构体相关知识 1月7日第三大节、第四大节 学生练习结构体的使用 1月8日第一大节、第二大节 程序编码 1月8日第三大节、第四大节 程序编码

重庆科技学院《C语言》课程设计报告

1月9日第一大节、第二大节 程序编码 1月9日第三大节、第四大节 编写课程设计报告 1月10日第一大节、第二大节 课程设计答辩 1月10日第三大节、第四大节 课程设计答辩 参[1]何钦铭 颜晖.《C语言程序设计》.高等教育出版社.2008年 考[2]谭浩强 张基温.《C语言程序设计教程》.高等教育出版社.2006年 资料 其 它 说1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。 明 3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

重庆科技学院《C语言》课程设计报告

摘要

熟练操作VC++软件,熟练运用switch语句进行各种选择,通过模块化程序设计,编写子函数使程序条理更清晰。

运用VC++软件编写《医院门诊候诊的队列管理程序》,本程序分为6大模块,模块一中包含所有子函数的调用及结束程序的条件,模块二进行挂号处理,模块三进行叫号处理,模块四程序自动将挂号的人进行分诊室处理,模块五显示队列中各个人的信息,模块六统计当前所挂号的总人数;运用switch进行各种操作的选择;利用循环进行重复的操作;并运用system(“cls”)进行清屏处理,使显示界面更清晰。

关键字:模块化 switch 循环

I

重庆科技学院《C语言》课程设计报告

目录

摘要.....................................................................Ⅰ 1软件需求及分析说明书.....................................................1 2系统分析与设计...........................................................2

2.1软件界面设计.......................................................2 2.2软件的数据设计.....................................................6 2.3软件的算法设计.....................................................6 3软件的实现..............................................................9 4软件测试...............................................................14 5软件使用说明书.........................................................15 参考文献.................................................................16 致谢.....................................................................17

I I

重庆科技学院《C语言》课程设计报告

1软件需求分析说明书

本程序分为6大模块,模块一中包含所有子函数的调用及结束程序的条件,模块二进行挂号处理,模块三进行叫号处理,模块四程序自动将挂号的人进行分诊室处理,模块五显示队列中各个人的信息,模块六统计当前所挂号的总人数。

1

重庆科技学院《C语言》课程设计报告

2系统分析与设计

2.1、软件界面设计

主界面:

输入1时进入挂号系统 输入2时进入叫号系统 输入3时进入分诊室系统 输入4时进入显示队列系统 输入5时进入查询信息系统 输入6时退出系统

挂号界面:

输入挂号 输入1进入挂号系统,等待输入 进行挂号 2

重庆科技学院《C语言》课程设计报告

叫号界面:

分诊室界面:

输入3进入分诊室系统,系统自动进行诊室分配 任意输入退出分诊 室系统 输入2进入叫号系统 显示排在队列第一个患者的信息 叫号成功,任意输入退出叫号系统 挂号成功 任意输入退出挂号系统

3

重庆科技学院《C语言》课程设计报告

信息查询界面:

统计界面:

输入5进入统计系统,输入0按性别统计,输入1按年龄段统计 输入4进入信息查询系统,显示队列中的各个患者的信息及其所在的诊室 任意输入退出信息查询系统

4

当按0时,按性别输出统计结果,按0返回上一级菜单,按1结束统计系统 重庆科技学院《C语言》课程设计报告

当按1时,按年龄段输出统计结果,等待输入一个年龄段 显示输入年龄段的患者人数,按0 返回上一级菜单,按1结束统计系统

结束界面:

5

输入6 程序结束 重庆科技学院《C语言》课程设计报告

2.2、软件的数据设计

将输入的挂号人信息以姓名,性别,年龄和挂号单号存入数组中。

2.3、软件的算法设计

模块二:挂号系统

模块一,选择系统:

当x不为零时,反复执行下面的语句 6 模块三:叫号系统 模块一:选择要进行的操作 模块四:分诊室系统 模块五:查询系统 模块六:结束程序 开始 程序结束 通过输入选择将要进行的操作 终止 重庆科技学院《C语言》课程设计报告

模块二,挂号系统:

模块三,叫号系统: 开始 终止 输入挂号信息 开始 挂号完成

叫号成功 输出队列第一个患者的信息

模块四,分诊室系统: 将该患者分配到第一诊室 35岁一上的患者 终止 开始 将该患者分配到第三诊室 35岁一下的男患者 将该患者分配到第二诊室 分配诊室成功

7

终止 重庆科技学院《C语言》课程设计报告

模块五,查询系统:

开始 显示队列中的各个患者的信息及其所在的诊室 显示完毕 终止

模块六,统计系统:

8

开始 选择统计方式 输入0时 输入1时 按年龄段统计,输入一个年龄段 显示该年龄段患者的人数 按性别统计,判断男女 分别显示男女患者的人数 输入0时 选择是否退出统计系统 输入1时 终止 重庆科技学院《C语言》课程设计报告

3 软件的实现

程序源代码:

#include #include #include

typedef struct News {

char name[20]; char sex[10]; char number[10]; int old;

}News; //定义一个结构体以便保存患者的各个信息

int i=0; // 依次记录患者挂号的顺序,顺便记录总共挂号的人数 int q=0; // 记录当前被叫号的当前队列序号 int s1[50],s2[50],s3[50]; //保存各个诊室患者的队列号 int q1,q2,q3; // 记录各个诊室患者的总人数

int Choose() {

int i;

printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>医院门诊候诊的队列管理<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

printf(\" * 1、挂号;\\n\"); printf(\" * 2、叫号;\\n\"); printf(\" * 3、分诊室;\\n\");

printf(\" * 4、显示各诊室队列信息;\\n\"); printf(\" * 5、统计当天就诊的患者情况;\\n\"); printf(\" * 6、结束程序。\\n\"); printf(\"\\n\\n\\n\\n\");

printf(\"请选择:\");

scanf(\"%d\通过输入获得返回值,选择说要进入的系统 system(\"cls\"); return i;

} // 选择所要进入系统的函数

void Gh(News *a) {

int x;

printf(\"\\n\"\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>挂号系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

printf(\"请输入挂号姓名,性别,年龄及挂号单号:\\n\");

scanf(\"%s %s %d %s\9

患者输入自己的

重庆科技学院《C语言》课程设计报告

信息进行排队 i++;

system(\"cls\");

printf(\"挂号成功,按任意键结束!\"); scanf(\"%d\ system(\"cls\");

} // 挂号系统

void Jh(News *a) {

int x;

printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>叫号系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

printf(\"姓名:%s \\n性别:%s \\n年龄:%d \\n挂号单

号:%s\\n\显示排在队列第一名患者的信息 q++;

printf(\"叫号成功,按任意键结束!\"); scanf(\"%d\ system(\"cls\");

}// 叫号系统

void Fzs(News *a) {

int b,x;

system(\"cls\");

printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>分诊室系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

for(b=q;b{if(a[b].old>=35)

{s1[q1++]=b;} // 从当前队列第一人开始判断,如果当前患者大于35岁,则诊室1记录下当前患者的总队列号 else

if(a[b].old<35 && !strcmp(a[b].sex,\"nan\"))

{s2[q2++]=b;} // 如果当前患者小于35岁并且是男性,则诊室2记录下当前患者的总队列号

else

{s3[q3++]=b;} // 如果以上两种情况都不满足,则诊室3记录下当前患者的总队列号 }

printf(\"分诊室成功,按任意键结束!\"); scanf(\"%d\ system(\"cls\");

10

重庆科技学院《C语言》课程设计报告

} // 分诊室系统

void Xsxx(News *a) {

int x1,x2,x3; int x,j;

printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>信息查询系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

for(j=q;j{if(s1[x1]==j) // 如果查询到当前序列号与诊室1的某个队列号相同,则输出其信息

{printf(\"姓名:%s \\n性别:%s \\n年龄:%d \\n挂号单号:%s\\n\ printf(\"ta在第一诊室!\\n\\n\");} }

for(x2=0;x2{if(s2[x2]==j) // 如果查询到当前序列号与诊室2的某个队列号相同,则输出其信息

{printf(\"姓名:%s \\n性别:%s \\n年龄:%d \\n挂号单号:%s\\n\ printf(\"ta在第二诊室!\\n\\n\");} }

for(x3=0;x3{if(s3[x3]==j) // 如果查询到当前序列号与诊室3的某个队列号相同,则输出其信息

{printf(\"姓名:%s \\n性别:%s \\n年龄:%d \\n挂号单号:%s\\n\ printf(\"ta在第三诊室!\\n\\n\");} } }

printf(\"显示完毕,按任意键结束!\"); scanf(\"%d\ system(\"cls\");

} // 查询系统

void Tj(News *a) {

int boy=0,girl=0,z=0; int t,c,m,n,x;

for(;;) {

printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>统计系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

11

重庆科技学院《C语言》课程设计报告

printf(\" 请选择统计方式:\\n\\n\\n * 0、按性别统计\\n * 1、按年龄段统计\\n\"); scanf(\"%d\

if(c==0) // 如果输入0则按性别进行统计 {

{for(t=0;t{if(!strcmp(a[t].sex,\"nan\")) boy++; else

girl++; } }

system(\"cls\"); printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>统计系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

printf(\"今天男性患者有: %d 人\\n今天女性患者有: %d 人\\n\显示按性别统计额结果

printf(\"\\n\\n\\n\\n\\n * 0、返回上一层\\n * 1、退出统计系统\\n\");

scanf(\"%d\ system(\"cls\"); if(x==1) break; }

else

// 输入1则按年龄段进行统计 {system(\"cls\");

printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>统计系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

printf(\"请输入需要统计的年龄段:\\n\"); printf(\"\\n\\n\");

scanf(\"%d %d\输入两个年龄划分年龄段 for(t=0;t{if(a[t].old>=m && a[t].old<=n) z++;}

system(\"cls\"); printf(\"\\n\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>统计系统<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\");

printf(\"今天年龄段在 %d 到 %d 的有 %d 人\显示按年龄段的统计的结果

printf(\"\\n\\n\\n\\n\\n * 0、返回上一层\\n * 1、退出统计系统

12

重庆科技学院《C语言》课程设计报告

\\n\");

scanf(\"%d\ system(\"cls\");

if(x==1) // 通过输入判断是否继续进行统计 break; }

}

system(\"cls\");

} // 统计系统

int main()

{ int x=0;

News a[1000];

while(x!=6) {

x=Choose(); switch(x) {

case 1:Gh(a);break; case 2:Jh(a);break; case 3:Fzs(a);break; case 4:Xsxx(a);break; case 5:Tj(a);break; } }

system(\"cls\"); printf(\"\\n\"); printf(\"\\n\");

printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>医院门诊候诊的队列管理<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\\n\"); printf(\"\\n\\n\\n\\n\\n\\n\\n\\n\");

printf(\" * 程序结束 \\n\"); scanf(\"%d\

return 0; }

13

重庆科技学院《C语言》课程设计报告

4软件测试

1、 int Choose(); //选择所要进入系统的函数 2、 void Gh(News *a); //挂号系统 3、 void Jh(News *a);// 叫号系统 4、 void Fzs(News *a);// 分诊室系统 5、 void Xsxx(News *a); // 查询系统 6、 void Tj(News *a);统计系统

14

//

重庆科技学院《C语言》课程设计报告

5软件使用说明书

15

重庆科技学院《C语言》课程设计报告

参考文献

[1] 从问题到程序:程序设计与C语言引论.北京:机械工业出版社

16

重庆科技学院《C语言》课程设计报告

致谢

17

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务