- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《离散数学》课程设计报告北京地铁计价系统的实现 毕业设计
目 录
一、 地铁计价系统的实现 2
1. 设计目的 2
2. 设计内容 2
3. 实验步骤 3
4. 部分代码附录 7
5. 实验结果和结论 19
指导教师意见 20
地铁计价系统的实现
设计目的
掌握dijkstra算法的思想;
掌握javascript数据类型之javascript对象;
采用模块化的思想编写程序;
学会用浏览器的调试功能检查代码;
掌握整个网页设计过程元素调用的问题,可以将各个元素正确调用;
学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力;
为后续计算机课程的学习打下坚实基础;
设计内容
本次设计基于html+css+javascript设计了一款网页端的地铁计价系统,通过使用javascript对象存储数据,js调用数据和计算,html,css美化前端样式,js实现交互功能等,实现了一个完整的,实用的网页端地铁计价系统。
实验步骤
整体架构
网页前端index.html由HTML编写,用一个subway-out的大容器承载全部元素,然后将这个容器细分为三大块,也就是使用三个form表单,分别实现起始线路与站点选择,终点线路与站点选择,提交按钮、票价显示和路程显示;HTML美化通过bootstrap和jquery实现,这里不再赘述。
前端交互,线路存储,票价计算及输出等由station.js实现。
station.js结构
线路数据通过一个stationData变量实现,这个变量中存储了1~15号线路的全部站点,并且通过stationData[ ]进行访问。
站点间距离数据通过chartData存储,这个变量中按照类似二维数组的格式存储相邻站点间距离,并且在station.js文件调用时通过dijkstra.addEdges(chartData)初始化到dijkstra算法中。
函数getStartStation和getEndStation用于获取用户选择线路完毕后获取选项option的value值,根据value值向二级select元素中添加stationData线路数据。实现select选项卡的级联。
函数getSubwayData用于实现用户点击时获取表单内容(即获取select元素内text元素),然后distance中输出根据dijkstra算法中shortest函数得到的距离数,同时输出时使用toFixed(1) 控制输出位数为1位(js中数字为浮点形式);然后将计算的distance传入caleFare函数中计算费用并输出。
函数caleFare实现票价计算:6公里以内3元、12公里以内4元、32公里以内每超出12公里10公里1元、超出32公里的部分没20公里1元,上不封顶;前两部分判断直接return,后两部分则需要调用函数math.ceil向上取整功能。
dijkstra算法
dijkstra = function ()将dijkstra实例化为一个函数。函数内包括5部分:
addChart将station.js中的chartData进行拆分导入:
获取参数的length作为循环总数,通过chart[i]索引二维数组并赋予变量edge,此时edge是包含两个站点和距离的一维数组。通过edge[i]索引edge中元素并作为参数传入函数addEdge中;
addEdge则是建立图表的函数。它包括三个参数:origin,target,distance代表起始、终点、权重。通过三个参数,建立坐标为origin,target、值为distance的图表。
shortest函数是最重要的算法部分:通过station.js中dijkstra.shortest(origin,target)传入起点和终点,并返回最短的路径;
函数首先判断传入的数据是否在chart中,如果不在,则返回一个∞;
定义两个对象dist,vistited和一个数字numVertex,直接使用for in结构遍历图表,先认为全部的路径值都是∞,同时获取最大数numVertex用于下层的循环控制。在用语句dist[origin] = 0使得到原点的距离为0;
接下来进行for循环:;循环中定义一个minDist最短路径为∞,再定义一个最小值v = 0;使用for in结构遍历dist[ ],且v不存在于已经考虑过的点中 ,判断最短路径minDist是否大于dist[v],如果大于则将dist[v]中的值赋予minDist,同时将v赋予minV;如果小于则不进行操作。
接下来if判断minV是否仍然为void 0,是则跳出循环。如果minV和目标target相等,则返回最短路径minDist;否则继续,令对象visited[minV]存储bool值true
您可能关注的文档
- 州广南村别墅项目策划案本科论文.doc
- 州泸赛德水泥有限公司4600td熟料新型干法水泥生产线工程职业病危害预评价报告书本科论文.doc
- 州朔分公司城网改造中低压工程技术招标书本科论文.doc
- 州梅陶瓷产业发展规划报告本科论文.doc
- 州苏-爱丁堡设计学校英雄联盟大赛策划书本科论文.doc
- 州苏电脑清洗部商业谋划方案书本科论文.doc
- 州濮专业园区总体发展规划说明报告书本科论文.doc
- 州襄区棉花生产示范基地建设项目配套工程安全监理计划本科论文.doc
- 州泰祥晟石化有限公司年产润滑油技术改造项目二次公示本科论文.doc
- 州徐佰阳门业有限公司年产1200套实木复合门项目自查评估报告本科论文.doc
- 唐山市冀东物贸集团有限责任公司校园招聘模拟试题附带答案详解带答案.docx
- 唐山市冀东物贸集团有限责任公司校园招聘模拟试题附带答案详解完整版.docx
- 唐山市冀东物贸集团校园招聘模拟试题附带答案详解完整.docx
- 商业步行街改造工程2025年无障碍设施评估与初步设计报告.docx
- 唐山市冀东物贸集团有限责任公司校园招聘模拟试题附带答案详解完美版.docx
- 唐山市冀东物贸集团有限责任公司校园招聘模拟试题附带答案详解汇编.docx
- 唐山市冀东物贸集团校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版一套.docx
- 唐山市冀东物贸集团有限责任公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版汇.docx
- 2025年绿色环保建材推广应用项目可行性研究报告.docx
- 血液净化行业2025年市场需求与供应分析报告.docx
文档评论(0)