ZZULI-医院导航系统

2024-03-20 04:30
文章标签 医院 导航系统 zzuli

本文主要是介绍ZZULI-医院导航系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅简介:与大家一起加油,希望文章能够帮助各位!!!!
💬保持学习、保持热爱、认真分享、一起进步!!!

 试验任务:

请设计一个简单的医院导航系统,该医院主要有以下部门:门诊部(A)、住院部(B)、急诊部(C)、药房(D)、收费室(E)、化验室(F)、放射科(G)、手术室(H)、B超室(I)、行政楼(J),各部门之间的路径及距离如图1所示。

 

要求:

(1)请利用C/C++/Java语言定义数据类型;

(2)请利用邻接矩阵或邻接表创建带权图,以表示该医院各部门之间的关系;

(3)提供各部门信息查询,如输入“急诊部”,显示“急诊部”相关信息的介绍;

(4)输入任意部门A和部门B的名称,为患者提供从A到B的最短路径|。

思路:

  1. 数据定义:

    • 使用数组来存储部门的名称、介绍信息以及邻接矩阵来表示部门之间的距离和路径。
    • 部门信息使用两个数组 department 和 briefly 分别存储部门名称和介绍信息。
    • 邻接矩阵 distances 用于存储部门间的路径距离,其中使用最大值表示不连通。
  2. 用户交互:

    • 提供了一个菜单式的用户交互界面,用户可以选择查询部门信息或者查询两个部门之间的最短路径。
    • 用户输入被简单地使用 scanf 函数获取,也可以根据需要增加一些异常输入的处理。
  3. 查询部门信息:

    • 通过 Select_Department 函数实现了根据用户输入查询部门信息的功能。
  4. 查询最短路径:

    • 使用 Dijkstra 算法来计算最短路径,通过 Dijkstra 函数实现最短路径的查询。

 完整代码如下:

#include<stdio.h>
#include<string.h>
#define NUM 10
#define MAX 100
#define max_len 9999int step = 1;char department[NUM][10]={"门诊部", "住院部", "急诊部", "药房", "收费室","化验室", "放射科", "手术室", "B超室", "行政楼"};char briefly[NUM][100]={"门诊部提供各种门诊服务","住院部提供住院治疗服务","急诊部提供紧急治疗服务","药房提供各种医疗用药","收费室负责收费业务","化验室提供各种化验服务","放射科提供各种放射检查服务","手术室提供各种手术治疗服务","B超室提供各种B超检查服务","行政楼提供行政服务"};// 邻接矩阵来表示医院各部门之间的距离和路径,max_len表示不连通int distances[NUM][NUM] = {{0,max_len, 100,max_len,190, 150, max_len, max_len, max_len, max_len},{max_len, 0	,max_len, max_len, max_len, 60, 130, 50, 100,max_len},{100	, max_len, 0, 120, max_len, max_len, max_len, max_len, max_len, 80},{max_len,max_len,120, 0	,50, max_len, max_len, max_len,max_len, max_len},{max_len, max_len, max_len, 50, 0,150, max_len, max_len,max_len, max_len},{150, 60, max_len, max_len,150, 0, max_len, 100, max_len, max_len},{max_len, 130,max_len, max_len, max_len, max_len, 0, 100, 30,160},{max_len, 50	, max_len, max_len, max_len, 100, 100, 0, max_len, max_len},{max_len, max_len, max_len, max_len, max_len, max_len, 30, max_len, 0, max_len},{90,max_len, 80, max_len, max_len, max_len,160, max_len, max_len	, 0}};
void Select_Department () { printf("请输入要查询的部门信息\n");char name[10];int i;scanf("%s",name);for ( i=0; i<10 && strcmp(name, department[i]); i++);if (i == 10) printf("输入错误,即将返回首页");else printf("%s:%s\n",department[i],briefly[i]);
} 
int PrintMinDist(int dist[], int prev[], int val) {if (prev[val] == -1) {printf("%s ", department[val]);return 0;}else {int length = PrintMinDist(dist, prev, prev[val]);printf("-> %s ", department[val]);return length + distances[prev[val]][val];}
}
//辅助函数,找到距离集合U最近的节点
int findMinV (int dist[], bool U[], int v) {int min = max_len,min_index;for (int i=0; i<v; i++) {//没有被访问 if (!U[i]){//找到最小的距离 if (min > dist[i]) {min = dist[i];min_index = i;}}}return min_index;
} 
void Dijkstra (int graph[][NUM], int start, int v,int end) {// 存储起始顶点到各顶点的最短距离int dist[v];// 记录顶点是否已被访问bool visited[v];// 记录路径上的前一个顶点int prev[v];//初始化数组for (int i=0; i<v; i++) {//初始化所有顶点距离为无穷的 dist[i] = max_len;//设置所有顶点为未访问状态visited[i] = false;//设置所有节点的前一个节点为-1,表示未知prev[i] = -1; } //设置起始顶点到自身顶点距离为0 dist[start] = 0;//查找最短路径for (int count = 0; count<v-1; count++) {//找到未访问节点中距离最小的节点,第一次查找一定是起始顶点 int u = findMinV(dist,visited,v);//标记顶点已访问visited[u] = true;//更新未访问顶点的最短距离和前一个顶点for (int n=0; n<v; n++) {//如果顶点n未被访问并且通过u可以到达n且路径更短if (!visited[n] && graph[u][n] != max_len && dist[u] + graph[u][n] < dist[n]) {//更新最短距离dist[n] = dist[u] + graph[u][n];//更新路径上的前一个结点prev[n] = u; }} }printf("最短路径:");int length = PrintMinDist(dist, prev, end);printf("\n最短路径长度为:%d\n", length);
}
void Select_min () {printf("请输入要查询起始两部门的名称 PS(A B)\n");char a[10],b[10];scanf("%s %s",a,b);int i,j;for ( i=0; i<10 && strcmp(a, department[i]); i++);for ( j=0; j<10 && strcmp(b, department[j]); j++);if (i == 10 || j == 10) {printf("输入错误,即将返回首页");return;}Dijkstra(distances,i,NUM,j);
}
int main () {bool IsTrue = true;while (IsTrue){printf("\n1. 查询部门信息\n");printf("2. 查询两地点最短路径\n");printf("3. 退出程序\n");int n;scanf("%d",&n);switch (n) {case 1:Select_Department();break;case 2:Select_min();break;case 3:IsTrue = !IsTrue;break;default :printf("请重新输入要执行的操作\n");}}return 0;
}

以上均是个人的理解,如果有不对的地方请各位大佬帮忙斧正!!

追光的人,终会光芒万丈!!

这篇关于ZZULI-医院导航系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828283

相关文章

医院检验系统LIS源码,LIS系统的定义、功能结构以及样本管理的操作流程

本文将对医院检验系统LIS进行介绍,包括LIS系统的定义、功能结构以及样本管理的操作流程方面。 LIS系统定义 LIS系统(Laboratory Information System)是一种专门为临床检验实验室开发的信息管理系统,其主要功能包括实验室信息管理、样本管理、检验结果管理、质量控制管理、数据分析等。其主要作用是管理医院实验室的各项业务,包括样本采集、检验、结果录入和报告生成等。Li

springboot社区医院管理系统

基于springboot+vue实现的社区医院管理系统(源码+L文+ppt)4-051 4 系统总体设计   此次社区医院管理系统通过springboot框架。springboot适合快速构建Web应用。springboot将B/S设计模式中的视图分成了View模块和Template模块两部分,将动态的逻辑处理交给View处理,页面通过Template来实现。Model和Te

SSM疫情医院管理系统实训项目总结

项目中我主要负责的是爬虫板块,用的是jsoup通过对html标签的获取到数据再把数据放到echarts图表中,网站是实时统计全球、美国、中国的疫情确诊人数死亡人数以及治愈人数,这个操作我没有用到与数据库交互的相关操作所以只写了controller层的在controller中获取到数据通过对各个标签的筛选用html()把标签中的数据提取到String中,然后通过request将List<String

智慧医院是什么?建设智慧医院的关键步骤

智慧医院是什么? 智慧医院是一种新型的医疗机构,它利用先进的信息技术、数据分析和智能化系统,优化医院的管理和服务流程,提高医疗质量和效率。在智慧医院中,所有的运营和管理环节都可以通过数据驱动的方式来实现优化,从而使医院的服务更精准、更高效。 智慧医院不仅仅是引入电子病历、远程医疗、健康监测等数字化技术,更是通过大数据分析来提升医院的管理水平。例如,通过可视化数据报表,医院可以实时掌握药品的使用

程序设计—Python医院管理系统 项目源码28334

摘 要 近年来,医疗信息化的快速发展使得医院管理系统成为医疗机构提高管理效率和服务质量的重要工具。在这一背景下,医院管理系统的研发备受瞩目。本文旨在采用Python语言、Python语言MySQL数据库开发一个医院管理系统。Python作为一种简洁而功能强大的编程语言,具有优秀的数据处理和科学计算能力,为医院管理系统的开发提供了可靠的基础。Django框架则提供了快速开发和灵活部署的特性,使系统

springboot宠物智慧医院-计算机毕业设计源码99362

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3微信开发者工具 1.4小程序框架以及目录结构介绍 1.5论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3

如何打造基于Java SpringBoot和Vue的医院门诊智能预约平台?四步实现高效就医流程,整合MySQL数据库,优化用户体验。

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目、 源码、对代码进行完整讲解、文档撰写、ppt制作。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~ Java实战项目

朔州大医院的多联机集控系统

医院的多联机集控系统是一种先进的空调管理系统,它通过集中控制多个室内机与一台或多台室外机相连,实现对医院内部空调系统的智能化、高效化管理。 项目案例:朔州大医院    朔州市大医院是省、市重点工程,总占地面积314亩,总建筑面积206309平方米,位于朔州市开发区广安东街(朔州市九小东侧),总规划床位数1500张,按三级甲等医院设计建设,是一所集医疗、教育、科研、预防、康复、养老为一体的

破局医疗数据安全:天空卫士“登录”东北医院信息网络大会

2024年8月24日至25日,以“科技赋能,重塑未来医疗”为主题的2024东北医院信息网络大会在长春隆重举行。作为数据安全领域的领军企业,天空卫士应邀参会,为与会者带来专门针对医疗行业的先进数据安全解决方案。医疗行业数据风险分析随着信息技术的快速发展和国家政策的大力支持,我国医疗行业正在经历一场深刻的数字化转型。2020年爆发的新冠疫情进一步加速了数字医疗的推进。如各类医疗信息数据已成为各大医疗机

智慧医院,促进医疗事业的可持续发展

智能医院是一家利用先进信息技术将数字化、智能化手段与医疗服务相结合的医疗机构,提供高质量、高效率、高附加值的医疗服务。数字孪生、安全管理、设备运行维护、病房管理和身体管理是智能医院建设的重要方向。 首先,数字孪生作为智能医院建设的核心技术之一,可以虚拟模拟和实时监控医疗设备和病房布局,提高患者的医疗体验和医疗效果。通过数字孪生技术,医院可以提供更准确的医疗服务,根据不同患者的需求进行个性化调