粤教版(2019)必修一 第三章设计从A市到B市耗时最少的旅行路线方案

2024-08-14
| 8页
| 363人阅读
| 1人下载
普通

资源信息

学段 高中
学科 信息技术
教材版本 高中信息技术粤教版必修1 数据与计算
年级 -
章节 项目范例 设计从A市到B市耗时最少的旅行路线方案
类型 教案
知识点 -
使用场景 同步教学-新授课
学年 2024-2025
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 DOCX
文件大小 212 KB
发布时间 2024-08-14
更新时间 2024-08-14
作者 匿名
品牌系列 -
审核时间 2024-08-14
下载链接 https://m.zxxk.com/soft/46828232.html
价格 1.00储值(1储值=1元)
来源 学科网

内容正文:

第三章 算法基础 从A市到B市耗时最少的旅行路线方案设计报告 —— 以从广州市到长春市为例 一、引言 随着科学技术的快速发展,我国铁路、航空、桥梁建设得到了快速发 展,这给我们的交通出行提供了多种选择,如铁路运输、航空运输、汽车 客运等给我们的出行带了许多的便利。 二、设计目的 (一)项目情景 小张是广州市某中学高三的学生,国庆节到了,小张要去探访在长春 市就读的好友,为了节约成本而且更多地欣赏沿途风光,并且能够一睹北 京市容,小张决定以北京作为中转站,乘高铁前往长春。现请你帮他设计 一个以高铁为交通工具、以北京为中转站的从广州市到长春市耗时最少的 旅行方案。 (二)设计目的 通过对“耗时最少的旅行方案”设计,体验计算机解决问题的过程, 理解和概述算法的概念与特征,学会运用恰当的描述方法和控制结构表示 简单算法,懂得描述程序设计语言产生与发展的过程,了解不同种类程序 设计语言的特点。 三、需求分析 要设计一个以高铁为交通工具,以北京为中转站的从广州市到长春市 耗时最少的旅行方案,首先必须知道广州市到北京市的高铁有哪些班次、 · 1 · 学科网(北京)股份有限公司 北京市到长春市的高铁有哪些班次。 然后分析从广州市到长春市高铁的可行旅行方案有哪些?在可行的旅 行方案中,找出从广州市到长春市耗时最少的旅行方案。 四、需要的工具与方法 在设计广州市到长春市耗时最少的旅行方案时,可以编写计算机程序 来解决问题。编写计算机程序解决问题的基本过程是:分析问题、设计算 法、编写程序、程序调试与运行。 算法描述常用的方法有:自然语言描述法、流程图描述法、伪代码描 述法。 算法描述过程中用到的三种基本结构是:顺序结构、分支结构、循环 结构。 本项目中,用到的工具有:Python程序设计语言、思维导图等;用到的 方法有:自然语言描述法,用顺序结构、分支结构、循环结构三种基本结 构描述算法的方法等。 五、设计方案 1.问题分析 本项目要求设计一个以高铁为交通工具,以北京为中转站的从广州市 到长春市耗时最少的旅行方案。首先我们通过网络获取广州市到北京市、 北京市到长春市的高铁班次信息。(本章所展示的高铁班次信息仅为项目 分析提供数据支持,查询时间不同,高铁班次信息或有差异,请以实际查 询为准。) (1)广州市到北京市的高铁班次信息如图3-1所示。 ·2 · 学科网(北京)股份有限公司 图 3-1 广州市到北京市的高铁班次信息 (2)北京市到长春市的高铁班次信息如图3-2所示。 图 3-2 北京市到长春市的高铁班次信息 ·3 · 学科网(北京)股份有限公司 然后,我们将获取的信息经过数据清洗后,形成结构化的数据存储为 Excel文件,广州至北京高铁班次查询结果如图3-3所示。 图 3-3 广州市至北京市高铁班次查询结果图 北京市至长春市高铁班次查询结果如图3-4所示。 图 3-4 北京市至长春市高铁班次查询结果图 2.设计算法 以北京市为中转站从广州市到长春市耗时最少的旅行方案问题,根据 获取的广州市到北京市、北京市到长春市的高铁班次信息,采用以下的方 法找出耗时最少的联运班次方案,算法如下: ·4 · 学科网(北京)股份有限公司 分别算出从广州市至北京市各班次所用的时间。 分别算出从北京市到长春市各班次所用的时间。 (2)找到能够从广州市经北京市到达长春市的联运班次,共 k 条 线路。 (3)从 k 条联运班次线路中找出耗时最少的为最佳旅行路线。 3.编写程序 根据所设计的算法,编写程序,程序的核心代码如下。 ( # 导入xlrd 模块 # 以下3行初始化列表 )import xlrd ms=[] ra=[] rb=[] data = xlrd.open_workbook("B1.xls") # Excel文件名 B1.xls table_1 = data.sheet_by_name("Sheet1") # 取出 Excel 文件中的数据表 Sheet1 table_2 = data.sheet_by_name("Sheet2") # 取出 Excel 文件中的数据表 Sheet2 ( # 读 取数据表Sheet1 的每一行记录数据,记为rs1 # 读 取数据表Sheet2 的每一行记录数据,记为rs2 #旅行 方 案耗时最小值初始化 #枚 举 rs 1(即数据表 Sheet 1)中每一行记录 )rs1 = table_1.nrows rs2 = table_2.nrows m= 99 for i in range(1,rs1): t14 = table_1.cell(i,4).value #读取数据表第4列的数据(由广州出发到达北京的时间) t15 = table_1.cell(i,5).value #读取数据表第5列的数据(由广州出发到达北京的时间) if t15=="第二天": t14=t14+24 t12 = t14-table_1.cell(i,2).value #计算由广州出发到达北京所用的时间(到达时间-出发时间) for j in range(1,rs2): ·5 · 学科网(北京)股份有限公司 #枚举rs2(即数据表sheet2)中的每一行记录 t22 = table_2.cell(j,2).value #读取从北京出发的时间 if t22>t14 : #如果从北京出发的时间大于到达北京的时间 m1=t12+(t22-t14)+(table_2.cell(j,4).value-t22) #算出到达长春所用的时间 if m>m1: #如果当前值比最小值还小 m=m1 # 则更新最小值 r1=i #记录这时从广州出发到达北京的数据 r2=j #记录从北京出发到达长春的数据 ms.append(m) #将最小值添加到列表中 ra.append(r1) #将取得最小值时从A出发到达中间地的记录添加到列表ra中 rb.append(r2) #将取得最小值时从中间地出发到达B市的记录添加到列表rb中 ms0=min(ms) #取出列表ms中的取最小值 ms1=ms.index(ms0) #找出中间城市编号 print("从广州出发经北京到达长春,最少耗时为:",ms0*24,"小时。 具体行程请查看文件ZHXC.XLS。") #输出结果 data = xlrd.open_workbook("B1"+".xls") #找出取最小值时中间城市对应的数据文件 table_1 = data.sheet_by_name("Sheet1") #找数据文件的数据表Sheet1 table_2 = data.sheet_by_name("Sheet2") #找数据文件的数据表Sheet2 ·6 · 学科网(北京)股份有限公司 ( import xlwt wbk = xlwt.Workbook() sheet = wbk.add_sheet("Sheet 1") )#导入模块 xlwt #创建一个工作簿文件 #创建数据表Sheet1 ( style = xlwt.XFStyle() #创建单元格格式对象 for l in range (5 ): #枚举要写出结果的列 l(1--4) sheet . write ( 0 ,l, table_1.cell(0,l).value) #将 数 据文件的数据表Sheet1的表头第l列数据写入数据表Sheet1 if l in (2,4): )#对于开始时间和到达时间,指定时间格式 style.num_format_str = "hh:mm" else: #其他单元格不设置格式 style.num_format_str = "" #写入数据时指定格式(最后一个参数) sheet.write(1,l, table_1.cell(ra[ms1],l).value,style) #将最优值时到达对应经过中间城市数据文件的数据表Sheet1的第 #l列数据写入数据表Sheet1 sheet.write(2,l, table_2.cell(rb[ms1],l).value,style) #将最优值时对应从中间城市出发数据文件的数据表Sheet1的第l #列数据写入数据表Sheet1 wbk.save("zjxc.xls") # 将结果保存到数据簿文件zjxc.xls 4.调试运行程序 扫描封底的二维码,打开配套资源中的“项目范例程序.py”,运行程 序,输入数据以图3-3、图3-4的数据为例,可以快速地找出从广州市到长 春市耗时最少的高铁旅行方案,如表3-1所示。 ·7 · 学科网(北京)股份有限公司 表 3-1 耗时最少的高铁旅行方案 交通工具 出发地 出发时间 到达地 到达时间 高铁 广州 8:25 北京 16:27 高铁 北京 16:37 长春 21:33 在本项目的算法描述中,用到了自然语言描述法,而在程序实现过程 中,程序是由上而下执行,属于顺序结构,在枚举rs1(即数据表Sheet1)中 每一行记录、以及枚举rs2(即数据表Sheet2)中的每一行记录时用到了循 环结构,在判断从北京市出发的时间是否大于到达北京市的时间、以及判 断当前值是否比最小值还小时用到了分支结构。 六、结语 通过参与并完成本项目,我们深刻体会到: 1.设计算法是用计算机解决问题的关键。 算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。 通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的 动作或指令的有穷集合。一个问题能否用计算机来解决,很大程度取决于 能否设计出解决问题的算法。 2.根据具体问题用恰当的描述方法描述算法。 描述算法的常用方法有自然语言描述算法、流程图描述算法和伪代码 描述算法。每一种描述方法各有优点与不足,要根据具体问题选用恰当的 描述方法描述算法。 3.计算机解决问题更高效。 通过本项目问题可以明显体会到用计算机解决问题的优势,当数据量 不多时,我们可以采用人工方法来处理;然而,当数据量较多时,运用计 算机解决问题可以更高效、更便捷。 在开展本项目的过程中,我们进行了自主、协作、探究学习,体验 了计算机解决问题的过程,理解了算法的概念与特征,学会了运用恰当 的描述方法和控制结构表示简单算法,了解了程序设计语言产生与发展的 过程、不同种类程序设计语言的特点,促进了信息技术学科核心素养的达 成,达成了项目学习的目的。 ·8 · 学科网(北京)股份有限公司 $$

资源预览图

粤教版(2019)必修一  第三章设计从A市到B市耗时最少的旅行路线方案
1
粤教版(2019)必修一  第三章设计从A市到B市耗时最少的旅行路线方案
2
粤教版(2019)必修一  第三章设计从A市到B市耗时最少的旅行路线方案
3
相关资源
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。