








高中信息技术沪教版(2019)选修1 数据与数据结构3.程序实现评优课ppt课件
展开第二单元 初识数据结构
项目三 探索商品基本信息表的实现
——线性表的应用
第三课时 程序实现
❑教材分析
本节的主要内容是程序实现。通过 Python语言实现线性表的顺序存储和链式存储,证算法的正确性。对照程序,学生从数据结构的视角审视基于数组、链表的程序,解释程序中数据的组织形式,描述数据的逻辑结构及插入和删除操作,评判其中数据结构运用的合性,在此过程中培养学生的计算思维能力。探索商品基本信息表的实现,不仅能加深学对数据结构基本概念,以及线性表顺序存储和链式存储过程的理解更重要的是能够熟练地运用所学到的线性数据结构知识解决生活中的真实问题,在编写程序过程中进行自主和协作探究,从而培养学生的数字化学习和创新能力。
❑教学目标
1.编程实现线性表的顺序存储和链式存储;
❑教学重点
1.编程实现。
❑教学难点
1.线性表顺序存储程序实现。
2.线性表链式存储程序实现。
❑教学方法
体验法、讲授法、讨论法、示例法
❑教学准备
计算机教室、多媒体设备、多媒体广播软件、教学课件、安装Python编程的相关软件、学生上机练习的程序文件,学生工作单等。
❑教学过程
一、新课导入
复习数组的插入和删除过程并导入本课的内容——算法的实现。
二、程序实现
根据上述算法,可以编写程序实现“商品信息表”的数据插入与删除。
用 Python语言实现顺序存储结构类型可以采用定义类的方式。商品信息定义如下:
class goods:
def _init_(self,bar_code=”,name=" ,s_number=0,price=0):
self. Bar_code=bar_code #条形码
self. name=name #品名
self.s_number=s_ number #库存数量
self. price=price #售价
思考与讨论
如果要加入生产日期,该如何定义?
小贴士
数组在不同高级语言定义是不同的,有的可以使用记录类型即结构类型的数组存储数据元素(将多种数据类型集合在一个用户自定义的数据类型中)。在 Python中可以用列表嵌套、定义类类型的对象列表等方式。为了方便理解算法思想,这里采用定义类类型的对象列表模拟数组的方式。
三、课堂活动
1.若采用数组,请参考配套资源中的“商品表(数组)py,完成以下程序,实现“商品信息表”的数据插入和删除,并上机运行。
数据插入程序 | 数据删除程序 |
#表任意位置插入操作: def insert_ sq(self,i,elem): if not isinstance(i,int): raise TypeError If i <0 or i>self.num: #num是商品个数 raise IndexError Self.data.append(goods) For j in range(self.num,i-1): ____________________ ______________________ ______________________ | #删除表任意位置上的元素操作: def delete_sq(self,i): if not isinstance(i,int): raise TypeError if i <0 or i>=self.num: raise IndexError if self.num>0: for j in range(i,self.num-1): ____________________ del self.data[self.num-1] ____________________ |
2.若采用链表,请参考配套资源中的“商品表(链表).py”,完成以下实现“商信息表”的数据插入和数据删除的程序。
数据插入程序 | 数据删除程序 |
#定义将元素icm插入表中作为第 index个元素: def insert_lk(self, index, item): if index<0 or index >self. getlength0: print (‘index error.‘) return if index ==0: q= Node(item, self. Head) self. head =q else: post=self. head #post为指针前驱 p= self. head. next j=1 while p!=0 and j<index: post=p _____________ _____ if index==j: q=node(item,p) ____________ ____________
| #定义删除表中第 index个元素的方法: def delete_lk(self,index): if self.is_empty() or index<0 or index>self. getlength0: print (‘linklist is empty.‘) return if index ==0: self. head =self. head.next else: post=self. Head p= self. head. Next j=1 while p!=0 and j<index: post=p _____________ _____ if index==j: _____
|
高中信息技术3.采用索引查找法查找商品精品ppt课件: 这是一份高中信息技术3.采用索引查找法查找商品精品ppt课件,文件包含项目九第三课时pptx、项目九第三课时doc等2份课件配套教学资源,其中PPT共41页, 欢迎下载使用。
沪教版(2019)2.体验使用二分查找法查找商品精品ppt课件: 这是一份沪教版(2019)2.体验使用二分查找法查找商品精品ppt课件,文件包含项目九第二课时pptx、项目九第二课时doc等2份课件配套教学资源,其中PPT共44页, 欢迎下载使用。
高中信息技术沪教版(2019)选修1 数据与数据结构3.尝试使用选择排序法实现商品销量排序精品课件ppt: 这是一份高中信息技术沪教版(2019)选修1 数据与数据结构3.尝试使用选择排序法实现商品销量排序精品课件ppt,文件包含项目八第三课时pptx、项目八第三课时doc等2份课件配套教学资源,其中PPT共37页, 欢迎下载使用。