文档库 最新最全的文档下载
当前位置:文档库 › C语言医院管理

C语言医院管理

《C语言》课程设计报告

学院:_电气与信息工程学院_专业班级:

学生姓名:学号:

设计地点(单位)________计算机基础自主学习中心 _ __

设计题目:_医院门诊候诊的队列管理程序______________ _____ 完成日期: XXXX 年XX 月 XX日

指导教师评语:______________________ _________________ __________________________________________________________________________________ __________________________________________________________________________________ _______________________________________________ _

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

指导教师(签字):________ ________

重庆科技学院

课程设计任务书

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

摘要

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

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

关键字:模块化 switch 循环

目录

摘要 (Ⅰ)

1软件需求及分析说明书 (1)

2系统分析与设计 (2)

2.1软件界面设计 (2)

2.2软件的数据设计 (6)

2.3软件的算法设计 (6)

3软件的实现 (9)

4软件测试 (14)

5软件使用说明书 (15)

参考文献 (16)

致谢 (17)

1软件需求分析说明书

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

2系统分析与设计

2.1、软件界面设计

主界面:

挂号界面:

叫号界面:

分诊室界面:

信息查询界面:

统计界面:

结束界面:

2.2、软件的数据设计

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

2.3、软件的算法设计

模块五,查询系统:

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",&i); //通过输入获得返回值,选择说要进入的系统

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",a[i].name,a[i].sex,&a[i].old,a[i].number); // 患者输入自己的

信息进行排队

i++;

system("cls");

printf("挂号成功,按任意键结束!");

scanf("%d",&x);

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",a[q].name,a[q].sex,a[q].old,a[q].number); // 显示排在队列第一名患者的信息q++;

printf("叫号成功,按任意键结束!");

scanf("%d",&x);

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",&x);

system("cls");

} // 分诊室系统

void Xsxx(News *a)

{

int x1,x2,x3;

int x,j;

printf("\n\n");

printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>信息查询系统

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");

printf("\n\n");

for(j=q;j

{ for(x1=0;x1

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

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

号:%s\n",a[j].name,a[j].sex,a[j].old,a[j].number);

printf("ta在第一诊室!\n\n");}

}

for(x2=0;x2

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

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

号:%s\n",a[j].name,a[j].sex,a[j].old,a[j].number);

printf("ta在第二诊室!\n\n");}

}

for(x3=0;x3

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

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

号:%s\n",a[j].name,a[j].sex,a[j].old,a[j].number);

printf("ta在第三诊室!\n\n");}

}

}

printf("显示完毕,按任意键结束!");

scanf("%d",&x);

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");

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

scanf("%d",&c);

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",boy,girl); // 显示按性别统计额结果

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

scanf("%d",&x);

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",&m,&n);// 输入两个年龄划分年龄段

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 人",m,n,z); // 显示按年龄段的统计

的结果

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

\n");

scanf("%d",&x);

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",&x);

return 0;

}

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); // 统计系统

5软件使用说明书

相关文档
相关文档 最新文档