《超市选址课程设计报告》由会员分享,可在线阅读,更多相关《超市选址课程设计报告(12页珍藏版)》请在金锄头文库上搜索。
1、计算机科学与技术学院课程设计成绩单课程名称:数据结构课程设计 指导教师:李顺新姓名彭伟华性别男学号202113137131班级计科1103综合成绩成绩等级 程序运行情况占总成绩20%能正确运行 根本能正确运行 能运行但结果不完善20分 15分 10分程序功能的完善程度占总成绩10%完善 根本完善 不完善10分 8分 5分程序结构的合理性占总成绩10%合理 根本合理 不太合理10分 8分 5分对问题的辩论情况占总成绩40%概念正确有创新 能正确答复所有问题 根本能正确答复40分 35分 30分局部问题答复概念不清晰20分学生的工作态度与独立工作能力占总成绩10%工作态度认真能独立完成任务 工作态
2、度认真但独立性较差10分 8分工作态度根本认真但缺乏独立性5分设计报告的标准性占总成绩10% 符合标准 根本符合标准 标准性较差10分 8分 5分优秀:90分100分 良好:80分89分 中等:7079分 及格:6069分 不及格0分59分 武汉科技大学计算机科学与技术学院制表 计算机科学与技术学院课 程 设 计 报 告课程名称: 数据结构课程设计 专 业: 计算机科学与技术 班 级: 2021级03班 学 号: 202113137131 姓 名: 彭 伟 华 指导老师: 李 顺 新 2021年9月20日计算机科学与技术专业课程设计任务书设计题目小区便利店选址问题学生姓名彭伟华所在院系计算机科
3、学与技术专业、班级计科1103主要内容:对于某一小区便利店,其他各栋楼到其的距离不同,同时各栋楼的居民数也各不相同,不考虑各居民去超市的频率,请为便利店选址,要求实现总体最优,方便更多的住户购物。 【提示】1便利店无论选址何处,八栋楼的居民均可直接到达,即八栋楼与便利店均相邻,且距离为直线距离;2八栋楼的居民人数为权重,应该方便大多数人,实现总体最优。学生应完成的工作:l 设计友好的用户界面l 数据设计合理,模块划分清晰l 程序能正确无错误地运行,提交完整源代码l 写出符合要求的课程设计报告书参考文献阅读:1 ?数据结构C语言版? 严蔚敏 清华大学出版社.2 ?数据结构题集C语言版? 严蔚敏
4、清华大学出版社.3 ?c语言程序设计? 谭浩强 清华大学出版社. 4?数据结构与算法分析? 张铭 电子工业出版社 5 ?DATA STRUCTURE WITH C+? William Ford,William Topp 清华大学出版社工作方案:第1-2天:课题分析与总体设计第3-7天:程序设计,调度与测试第8-9天:设计总结,完成课程设计报告书第10天: 检查考核任务下达日期:2021 年 9 月 10 日任务完成日期:2021 年 9 月 20 日 学生签名: 便利店选址摘要:该课题是为小区内的某一便利店选址,要求实现总体最优,这是带权的最小生成树的问题,小区平面图采用邻接矩阵表示,设计小区
5、的平面图是一有向网,边表示各单位到便利店的路径,边上的权值表示路径的长度。关键词:权 邻接矩阵 有向网1 引 言1.1课题背景便利店的选址问题是一个很复杂的决策过程,既需要定性分析,又需要定量计算。选址问题主要取决于店铺位置的地形特点及其周围的人口状况、城市设施状况、交通条件、地租本钱和竞争环境等,正确的选址决策能在减少投资运行本钱的同时提高经济效益。近几年,由于选址数据的愈加复杂以及计算机技术的迅速开展,人们开始利用计算机的强大计算能力对选址数据进行分析计算,从而决定最正确的选址方案。1.2课程设计目的数据结构是计算机学科实践性很强的一门核心课程。课程设计是加强学生实践能力的一个强有力手段,
6、要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成CC+程序并上机调试的根本方法,还要求学生在完成程序设计的同时能够写出比拟标准的设计报告。严格实施课程设计这一环节,对于学生根本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。1.3 课程设计任务对于某一小区便利店,其他各栋楼到其的距离不同,同时各栋楼的居民数也各不相同,不考虑各居民去超市的频率,请为便利店选址,要求实现总体最优,方便更多的住户购物。 【提示】1便利店无论选址何处,八栋楼的居民均可直接到达,即八栋楼与便利店均相邻,且距离为直线距离;2八栋楼的居民人数为权重,应该方便大多数人,实现总体最优。通过该题目
7、的设计过程,可以加深理解图数据结构,掌握某些根本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。1.4 系统开发平台1、题目:便利店选址2、开发工具: Microsoft Visual C+6.03、操作系统:Windows 72 系统结构分析2.1需求分析核心问题: 求最短路径(选址的要求就是便利店到各单位权值之和最少)数据模型逻辑结构: 带权有向图 (权值计算: 距离*人数)存储结构: typedef struct string vexsMAX_VERTEX_SIZE; int arcsMAX_VERTEX_SIZEMAX
8、_VERTEX_SIZE; int vexnum;/ ,arcnum;MGraph; 核心算法: Floyd算法(弗洛伊德算法-每一对顶点之间的最短路径) 输入数据: 单位个数、各单位地址、各单位人数输出数据: 便利店地址值总体思路:如果便利店所选地址为x,y,那么先求出各单位到该地址的含参直线距离,在保证总体最优权值最小的情况下计算出便利店地址的精确值。 2.2方案选择 1直角距离选址模型使总体最优的的便利店选址问题可表述为:minZ=CjQj|X-Xa|+|Y-Ya|可将问题分解成两个单独最小化问题:minZ= minZ1+ minZ2minZ1=minCjQj|X-Xa|minZ2=mi
9、nCjQj|Y-Ya|2)欧式距离选址模型两点之间的欧式距离定义如下:Dj=(X-Xa)*(X-Xa)+(Y-Ya)*(Y-Ya)使总体最优的便利店选址问题可表述为:minZ=CjQj(X-Xa)* (X-Xa)+(Y-Ya)* (Y-Ya)分别求Z对Xa和Ya的偏导数,令所得方程等于零,求Xa和Ya的值:Xa=(CjQjXj/Dj)/ (CjQj/Dj)Ya=(CjQjYj/Dj)/ (CjQj/Dj)3)修正距离选址模型在方案2所得结果的根底上,采用迭代法求解更精确的结果。Dj=k(X-Xa)* (X-Xa)+(Y-Ya)* (Y-Ya) minZ=kCjQj(X-Xa)* (X-Xa)+
10、(Y-Ya)* (Y-Ya)由于本课题所给数据比拟简单,通过综合比拟分析,本课题决定采用方案1。3 应用程序设计3.1流程图设计开始Main输入根本信息GreatMgraphGh建立邻接矩阵的存储结构Floyd算法NYAij=INF,i!=ji到j不存在路径输出i-j的路径和路径长度FloyedGh输出超市的最正确地址:i结束3.2源程序#include #include using namespace std; struct building double x; double y; double value; ; building bd1000; int n;/n栋楼 double minx
11、,maxx,miny,maxy;/记录各栋楼的区域 double midx,mmidx,midy,mmidy; double result_x,result_y,sum = 100000;/最后结果 double dis(double x,double y)/计算距离 double sum= 0; for(int i = 0;i 0.01) while(maxy-miny)0.01) if(dis(midx,midy) dis(midx,mmidy) miny = midy; else maxy = mmidy; midy = (miny + maxy)/2; mmidy = (midy + maxy)/2; ; if(dis(midx,midy) dis(mmidx,midy) minx