数据结构与算法课设医院候诊管理系统.docx
- 文档编号:6550914
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:11
- 大小:93.43KB
数据结构与算法课设医院候诊管理系统.docx
《数据结构与算法课设医院候诊管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构与算法课设医院候诊管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
数据结构与算法课设医院候诊管理系统
综合设计题目:
课程:
《数据结构与算法》
年级:
2015级
专业:
班级:
学号:
姓名:
指导教师:
课程设计(论文)任务书
学 院 专 业 班
一、课程设计(论文)题目医院候诊管理系统
二、课程设计(论文)工作自2016年12月26日起至2016年12月30日止。
三、课程设计(论文)地点:
信息工程学院5-203
四、课程设计(论文)内容要求:
1.本课程设计的目的
通过该课程设计的操作与实践,使学生真正掌握数据结构相关算法的实现及应用方法,
在一定程度上提高使用数据结构相关算法的综合设计能力,具体掌握的基本能力如下:
(1)掌握数据结构中各种抽象数据类型;
(2)全面提高学生的程序设计、开发能力。
2.课程设计的任务及要求
任务:
已知医院有内科、外科、骨科、皮肤科和口腔科,每个科均有普通门诊和专家门诊,普通门诊挂号费5元,专家门诊挂号费10元,其中内科门诊要求14岁以下(含14岁)儿童进第一诊室,15~25岁(含25岁)男患者进第二诊室,女患者进第三诊室,其他的进第四诊室,要求编制程序实现如下功能(患者信息包括挂号单编号、性别、年龄、所挂科室):
(1)能实现挂号功能,提示用户在一行内输入姓名及挂号单编号,并储存;
(2)能实现叫号功能,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除;
(3)根据病人的性别与年龄,能实现诊室的分配;
(4)能按队列顺序显示各个诊室排队人的姓名、挂号单编号及所在诊室;
(5)按性别进行统计和按任意年龄区段进行统计,并打印输出;
(6)完成每个步骤之后都能重新显示选择菜单。
2)基本要求:
本课程设计应满足以下要求:
(1)任意性:
用户任意给定输入,系统能够完成正确的计算;
(2)友好性:
界面要友好,输入有提示,尽量展示人性化;
(3)可读性:
源程序代码清晰、有层次;
(4)健壮性:
用户输入非法数据时,系统要及时给出警告信息;
(5)结构性:
应用程序具有良好的程序结构。
对所编写的源程序的要求:
(1)能够达到系统功能的基本要求,鼓励自行增加新功能(相应提高评分等级);
(2)要有可视化用户界面。
尽可能的使界面友好、直观、易操作;
(3)开发工具任选,源程序要有适当的注释,使程序容易阅读。
3)创新要求:
在基本要求达到后,可进行创新设计。
4)课程设计论文编写要求
(1)要按照书稿的规格打印撰写设计论文;
(2)论文包括目录、摘要、正文、总结等;
(3)课程设计论文装订按学校的统一要求完成。
5)答辩与评分标准:
(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;
(2)能正确回答老师所提问题,可增加10分;
(3)课程设计报告书写规范整齐,可增加10分;
(4)心得体会认真总结,可增加10分;
(5)程序有创新性,可增加10分;
成绩评定实行优秀、良好、中等、及格和不及格五个等级。
不及格者需重做。
5)课程设计进度安排
16周周五:
上交分组名单及选题
18周周一之前:
查阅相关资料,划分模块、小组成员分工
18周周一:
编制源程序
18周周三、四:
上机调试,修改、完善系统、撰写课程设计报告
18周周四上午9:
00:
上交源代码(.cpp、.h存入已小组成员的学号与名字命名的
文件夹1份/组)与课程设计报告(1份/人)
上机时间安排表(地点:
信息学院203机房):
18周:
周一上午1、2、3、4节
周三上午1、2、3、4节
周四上午1、2、3、4节
学生签名:
年月日
课程设计(论文)评审意见
项目
优
良
中
及格
不及格
课程设计之前查阅相关资料,完成需求分析,准备充分。
课程设计期间态度端正,按时参加,按时完成。
所设计系统按要求完成各项功能。
所设计系统具有一定的创新性,添加一些实用功能。
论文撰写规范,结构严谨,思路清晰,准确表达。
介绍所设计的系统表述清楚,主要问题回答准确。
自学能力强并独立解决问题,具备一定的系统开发能力。
评阅人签名:
曾伟职称:
讲师
目 录
程序设计思路...........................................2
程序设计功能结构.......................................2
数据结构定义..........................................2
运行结果.............................................9
结果分析.............................................14
第1章系统概要
系统介绍
设计一个医院门诊候诊的队列管理系统,该系统要求对医院门诊候诊的排队进行管理和维护。
其中医院有内科、外科、骨科、皮肤科和口腔科五个科室,每个科均有普通门诊和专家门诊,普通门诊挂号费5元,专家门诊挂号费10元。
而且其中内科门诊有四个诊室,要求14岁以下(含14岁)儿童进第一诊室,15~25岁(含25岁)男患者进第二诊室,女患者进第三诊室,其他的进第四诊室。
基本功能要求
(1)能实现挂号功能,提示用户在一行内输入姓名及挂号单编号,并储存;
(2)能实现叫号功能,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除;
(3)根据病人的性别与年龄,能实现诊室的分配;
(4)能按队列顺序显示各个诊室排队人的姓名、挂号单编号及所在诊室;
(5)按性别进行统计和按任意年龄区段进行统计,并打印输出;
(6)完成每个步骤之后都能重新显示选择菜单。
第2章设计思路与算法
程序设计思路
1、根据系统所要求的基本功能,可将程序主要化为挂号、叫号、分配诊室、依队列顺序输出病人信息及统计管理当前信息等模块。
2、依据各模块具体功能运用相关语句和结构编程具体的程序。
.挂号模块,是通过数组记录患者的信息;
.叫号模块,能实现显示排在队列中第一位患者姓名、挂号单编号,然后,通过清屏形式将其从挂号序列中删除的功能。
通过分诊步骤之后,再操作此模块将显示下一位患者的信息,即实现了题目中“从挂号序列中删除”的要求;
c.分配诊室模块,先按照患者所需选择普通或专家门诊以及相应的科室,再在内科患者中,按照年龄及性别进行分配诊室模块,能实现对患者进行分诊功能,先通过判断年龄进行第一诊室的分配,然后再将剩余的患者进行性别判断进行第二、第三、第四诊室的分配;
d.显示各患者队列及诊室信息模块,可以实现将当前所有患者的所在诊室以及其详细信息展示出来的功能,所显示的信息分为三个部分展示;
e.统计模块,分为性别统计和按任意年龄统计。
按任意年龄统计,通过输入的年龄界限X与年龄数组中的数据进行判断比较,输出相应的人数,并且输入的年龄界限必须是可行的实际值,否则无意义;按性别统计,直接打印数据即可。
3、在主函数界面,通过主界面函数分别进入各模块,进行运行并调试。
程序设计功能结构
其主要几个模块流程图如下
主界面函数
挂号模块
数据结构定义
主要运用的三个数据结构如下(结构体数组):
structhos
{
charname[15];ame,gets(s));
printf("编号:
");
strcpy(p[pl].num,gets(s));
printf("性别:
");
strcpy(p[pl].sex,gets(s));
printf("年龄:
");
strcpy(p[pl].year,gets(s));
printf("请选择普通门诊(挂号费5元)或者专家门诊(挂号费10元):
\n");ee,gets(s));
printf("请选择内科;外科;骨科;皮肤科;口腔科\n");
strcpy(p[pl].ke,gets(s));ee,"普通门诊")==0)
printf("第%2d位姓名:
%s挂号号码%s所挂科室:
普通%s\n",k+1-g,p[k].name,p[k].num,p[k].ke);
if(strcmp(p[k].fee,"专家门诊")==0)
printf("第%2d位姓名:
%s挂号号码%s所挂科室:
专家%s\n",k+1-g,p[k].name,p[k].num,p[k].ke);
system("pause");ame,p[g].num);
g++;
printf("剩余%2d位等待叫号的病人\n",pl-g);
for(k=g;k printf("挂号排序第%2d位姓名: %s挂号号码: %5s\n",k+1-g,p[k].name,p[k].num); system("pause"); system("cls"); } voidfp() { S1=0;S2=0;S3=0;S4=0;a1=0;a2=0;a3=0;a4=0; for(k=0;k { if(strcmp(p[k].ke,"内科")==0) { if(atoi(p[k].year)<=14) { S1++; p[k].room=1; }ear)>14&&atoi(p[k].year)<=25) { if(strcmp(p[k].sex,"男")==0) { S2++; p[k].room=2; }oom=3;oom=4;ame,p[k].room);} if(strcmp(p[k].ke,"外科")==0) {a1=a1+1;printf("病人%s被分配在%s诊室\n",p[k].name,p[k].ke);} if(strcmp(p[k].ke,"骨科")==0) {a2=a2+1;printf("病人%s被分配在%s诊室\n",p[k].name,p[k].ke);} if(strcmp(p[k].ke,"皮肤科")==0) {a3=a3+1;printf("病人%s被分配在%s诊室\n",p[k].name,p[k].ke);} if(strcmp(p[k].ke,"口腔科")==0) {a4=a4+1;printf("病人%s被分配在%s诊室\n",p[k].name,p[k].ke);} } system("pause"); system("cls"); } voidstatistic() { for(k=0;k { printf("第%2d名患者姓名: %s挂号编号: %s诊室: %s诊室\n",k+1,p[k].name,p[k].num,p[k].ke); } printf("内科第一诊室%2d人\n",S1); printf("内科第二诊室%2d人\n",S2); printf("内科第三诊室%2d人\n",S3); printf("内科第四诊室%2d人\n",S4); printf("外科诊室%2d人\n",a1); printf("骨科诊室%2d人\n",a2); printf("皮肤科诊室%2d人\n",a3); printf("口腔科诊室%2d人\n",a4); system("pause"); system("cls"); } voidtype_statistic() { intyear,high=0,low=0; man=0;woman=0; for(k=0;k { if(strcmp(p[k].fee,"普通门诊")==0) sum=sum+5; if(strcmp(p[k].fee,"专家门诊")==0) sum=sum+10; if(strcmp(p[k].sex,"男")==0)man++; elsewoman++; } printf("今日总挂号门诊费为: %d\n",sum); printf("请输入一个界限年龄: "); scanf("%d",&year); for(k=0;k { if(atoi(p[k].year)>=year)high++; elselow++; } printf("共有%2d位患者就诊.\n",g); printf("其中男性患者有%2d位,",man); printf("女性患者有%2d位.\n",woman); printf("年纪大于等于%d的患者有%2d位,",year,high); printf("年纪小于%d的患者有%2d位.\n",year,low); system("pause"); system("cls"); } voidmain() { introduce(); run(); } intchange(charch)[6]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 医院 候诊 管理 系统