版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构-医院选址问题数据结构-医院选址问题全文共19页,当前为第1页。数据结构-医院选址问题全文共19页,当前为第1页。课程设计报告书课程名称数据结构设计题目社区医院选址问题专业班级***************************学号****姓名***指导教师****数据结构数据结构-医院选址问题全文共19页,当前为第2页。数据结构-医院选址问题全文共19页,当前为第3页。数据结构-医院选址问题全文共19页,当前为第3页。1设计目的:数据结构是计算机科学与技术、信息管理专业的重要的专业基础课,是计算机系统软件和应用软件开发的重要理论和技术。本次课程设计内容主要用到图的结构。所以课程设计目要求掌握图的理论、图的邻接矩阵存储方式、顶点对这间的最短路径算法设计、及图在实践中的简单应用。2设计任务:已知有向图,图中各顶点代表居民区,有向边代表交通路线。权表示路程(公里)。要在居民区建立一家医院。要求各居民区到医院的路径尽可能短,请设计医院建在哪个居民区比较合适。 0341 40341 4 3 13 13 12 12 62 52 15数据结构数据结构-医院选址问题全文共19页,当前为第4页。3设计内容:图中各顶点代表居民区,边上的权代表各居民区的路程。要解决选地址问题,必须确定最短路径。求各顶点到其它顶点的最短路径,并求各居民区之间往返路径的和。对各居民区的最短路径和进行比较,和最小的则为首选地址。问题的实现,采用顶点对之间最短路径算法,对各居民区的最短路径进行计算。1:求出邻接矩阵2:求出邻接表3:求出最短路径的邻接矩阵4:求各顶点到其它顶点的最短路径的和5:求出其它顶点到各顶点的最短路径的和6:求出往返最短路径的和7:对各居民区的最短路径和进行比较,和最小的则为首选地址。4结果分析:数据结构-医院选址问题全文共19页,当前为第5页。数据结构-医院选址问题全文共19页,当前为第5页。输出邻接矩阵 for(i=0;i<n;i++) { for(intj=0;j<n;j++) { cout<<t.arcs[i][j]<<""; } cout<<endl; } cout<<endl;输出邻接表 for(i=0;i<n;i++) { for(j=0;j<n;j++) {数据结构-医院选址问题全文共19页,当前为第6页。数据结构-医院选址问题全文共19页,当前为第6页。 { intnext=t.path[i][j]; cout<<j; cout<<"<--"<<i<<""<<t.a[i][j]<<""; } } cout<<endl; }输出最短路径的邻接矩阵for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<t.a[i][j]<<""; } cout<<endl;数据结构-医院选址问题全文共19页,当前为第7页。数据结构-医院选址问题全文共19页,当前为第7页。输出点到所有点的路程的和 for(i=0;i<n;i++) { sum1[i]=0; for(intj=0;j<n;j++) { if(i!=j) { cout<<t.a[i][j]<<":"; intnext=t.path[i][j]; cout<<j;数据结构-医院选址问题全文共19页,当前为第8页。数据结构-医院选址问题全文共19页,当前为第8页。{ cout<<"<--"<<next; next=t.path[i][next]; } cout<<"<--"<<i<<endl; sum1[i]+=t.a[i][j]; } } cout<<"点"<<i<<"到所有点的路程和为:"<<sum1[i]<<endl; }数据结构数据结构-医院选址问题全文共19页,当前为第9页。逆输出所有点到点路径的和for(i=0;i<n;i++) { sum2[i]=0; for(j=0;j<n;j++) { if(i!=j) { cout<<t.a[j][i]<<":"; intnext=t.path[j][i]; cout<<i;数据结构-医院选址问题全文共19页,当前为第10页。数据结构-医院选址问题全文共19页,当前为第10页。 { cout<<"<--"<<next; next=t.path[j][next]; } cout<<"<--"<<j<<endl; } sum2[i]+=t.a[j][i]; } cout<<"所有的点到"<<i<<"路程和为:"<<sum2[i]<<endl; }输出所有点往返路程的和for(into=0;o<n;o++) { sum3[o]=sum1[o]+sum2[o]; cout<<"点"<<o<<"的往返路程的和为:"<<sum3[o]<<endl; }数据结构-医院选址问题全文共19页,当前为第11页。数据结构-医院选址问题全文共19页,当前为第11页。 for(inth=0;h<n;h++) { if(sum3[h]<=min) { min=sum3[h]; l=h; } } cout<<"比较可得最短的路程为"<<min<<"应该在点"<<l<<"哪里建立医院。"<<endl;对各居民区的最短路径和进行比较,和最小的则为首选地址5总结:数据结构-医院选址问题全文共19页,当前为第12页。通过这次的课程设计我了解到了,C++程序设计是一种要求特别细腻的工作,一个逗号或空格都能影响整个程序的工作运行,要求我们非常细心。深深了解到细节决定程序的成败。它让我记住了学习C++需要认真负责的态度去对待。通过一个星期以来的程序设计使我的专业知识更加巩固了,填补了以前不懂得知识盲点。编程需要兴趣和动手实践,毛泽东也曾说过实践是检验真理的唯一标准,开发出新的程序,创新思维也非常重要。通过这次的程序设计使我更加喜爱编程这项工作,虽然很辛苦但是把程序完成之后的那份喜悦。是外人难以感受的。数据结构-医院选址问题全文共19页,当前为第12页。参考文献[1]肖宏启,刘昌明.数据结构(C语言版)[M].第1版.北京:电子工业出版社,2010附录:程序代码#include<iostream.h>constintn=5;constinte=10;intsum1[5];intsum2[5];intsum3[5];intj=0;intmin;intl;#definemax32767classGraph{数据结构-医院选址问题全文共19页,当前为第13页。数据结构-医院选址问题全文共19页,当前为第13页。 intarcs[n+1][n+1];inta[n+1][n+1]; intpath[n+1][n+1]; voidfloyd(Graph&t,constintn); };voidGraph::floyd(Graph&t,constintn){ for(inti=0;i<n;i++) for(intj=0;j<n;j++) { t.a[i][j]=t.arcs[i][j]; if((i!=j)&&(a[i][j]<max)) t.path[i][j]=i; elset.path[i][j]=0; } for(intk=0;k<n;k++) { for(i=0;i<n;i++) for(intj=0;j<n;j++) if(t.a[i][k]+t.a[k][j]<t.a[i][j]) { t.a[i][j]=t.a[i][k]+t.a[k][j]; t.path[i][j]=t.path[k][j]; } } for(i=0;i<n;i++) {数据结构-医院选址问题全文共19页,当前为第14页。数据结构-医院选址问题全文共19页,当前为第14页。 { if(i!=j) { intnext=t.path[i][j]; cout<<j; cout<<"<--"<<i<<""<<t.a[i][j]<<""; } } cout<<endl; } cout<<endl; for(i=0;i<n;i++) { for(j=0;j<n;j++) { cout<<t.a[i][j]<<""; } cout<<endl; } cout<<endl;for(i=0;i<n;i++) { sum1[i]=0; for(intj=0;j<n;j++) { if(i!=j) { cout<<t.a[i][j]<<":";数据结构-医院选址问题全文共19页,当前为第15页。数据结构-医院选址问题全文共19页,当前为第15页。 cout<<j; while(next!=i){ cout<<"<--"<<next; next=t.path[i][next]; } cout<<"<--"<<i<<endl; sum1[i]+=t.a[i][j]; } } cout<<"点"<<i<<"到所有点的路程和为:"<<sum1[i]<<endl; } for(i=0;i<n;i++) { sum2[i]=0; for(j=0;j<n;j++) { if(i!=j) { cout<<t.a[j][i]<<":"; intnext=t.path[j][i]; cout<<i; while(next!=j) { cout<<"<--"<<next; next=t.path[j][next]; } cout<<"<--"<<j<<endl;数据结构-医院选址问题全文共19页,当前为第16页。数据结构-医院选址问题全文共19页,当前为第16页。 sum2[i]+=t.a[j][i]; } cout<<"所有的点到"<<i<<"路程和为:"<<sum2[i]<<endl; } for(into=0;o<n;o++) { sum3[o]=sum1[o]+sum2[o]; cout<<"点"<<o<<"的往返路程的和为:"<<sum3[o]<<endl; } min=sum3[0]; for(inth=0;h<n;h++) { if(sum3[h]<=min) { min=sum3[h]; l=h; } } cout<<"比较可得在点"<<l<<"那里建立医院"<<min<<"为最短的路程"<<endl;}voidmain(){ 数据结构-医院选址问题全文共19页,当前为第17页。数据结构-医院选址问题全文共19页,当前为第17页。 for(i=0;i<n;i++) for(j=0;j<n;j++) if(i==j)t.arcs[i][j]=0; elset.arcs[i][j]=max; for(intk=0;k<e;k++) { cin>>i>>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46399-2025纤维级聚对苯二甲酰对苯二胺(PPTA)粉体
- 2025年CMT特许市场技术分析师资格考试备考题库及答案解析
- 商铺燃气使用安全协议2025
- 人工智能算法授权合同协议2025
- 全职工作任务交接合同协议
- 汽车租赁使用协议2025年条款
- 农产品销售合同2025年协议条款
- 酒店2025年住宿服务合同
- 2025年工会工作与民主管理考试试题及答案
- 园林土方工程合同范本
- 2025年标准个人房屋买卖合同正式版
- 物理期中达标测试练习卷-2025-2026学年物理八年级上学期(沪科版2024)
- 走近邢台课件
- 2025年低压电工操作证复审必考试题及答案
- 个人财产作抵押担保合同7篇
- GB/T 6728-2025结构用冷弯型钢
- 线上线下混合教学模式优化方案
- 《老年服务礼仪与沟通技巧》全套教学课件
- 迟发性运动障碍
- 保险销售从业人员基础知识培训考试试题(附含答案)
- 公益岗位面试题及答案
评论
0/150
提交评论