高中信息技术第二单元 初识数据结构单元挑战 实现学校学生健康情况登记表的操作公开课ppt课件
展开第二单元挑战
实现学校学生健康情况登记表的操作
❑教材分析
本节的主要内容是实现学校学生健康情况登记表的操作。本项目开展的学习、讨论和实践,让学生对学校学生健康情况登记表进行操作,根据所学的数据结构知识,实现学生信息的添加和删除操作。提升信息意识,提高数据素养,肩负起信息社会责任,从容应对数据时代的各项挑战。
❑教学目标
1.巩固数据结构知识;
2.程序设计的基本思想、原理和算法描述;
3.编写删除操作函数;
4.编写插入操作函数。
❑教学重点
1.程序设计的基本思想、原理和算法描述;
2.编写删除操作函数;
3.编写插入操作函数。
❑教学难点
1.编写操作函数;
❑教学方法
体验法、讲授法、讨论法、示例法
❑教学准备
计算机教室、多媒体设备、多媒体广播软件、教学课件、安装Python编程的相关软件、学生上机练习的程序文件,学生工作单等。
❑教学过程
一、新课导入
复习本单元所学知识,引出本单元挑战的主题——实现学校学生健康情况登记表的操作。
二、项目任务
现有某学校的学生健康情况登记表如表2-6所,表中每个学生的情况为一个记录它由姓名、性别、年龄、班级和健康状况等5个数据项组成。
表2-6学生健康情况登记表
姓名 | 性别 | 年龄 | 班级 | 健康状况 |
李林 | 男 | 17 | 高二6班 | 良好 |
汤晨 | 女 | 16 | 高二6班 | 良好 |
王平平 | 男 | 17 | 高二6班 | 一般 |
陈小莉 | 女 | 17 | 高二6班 | 良好 |
…… | …… | …… | …… | …… |
若用数组存储表中数据,假设班级人员变化,新进来“常龙”同学(男生、17岁,高二6班、健康状况良好),需要添加在“王平平”和“陈小莉”之间;又由于“李林”转学,需要将他的记录删除,请编程实现相应的操作。
三、项目指引
1.给出程序设计的基本思想、原理和算法描述。
2.画出流程图,并编写程序。
(1)编写删除操作函数。
(2)编写插入操作函数
(3)实现以下功能
①调用插入操作函数,在上表中“王平平”和“陈小莉”之间插入“常龙”同学
②调用删除操作函数,删除表中“李林”同学
③输出最终的表。
3.给源程序添加注释,保存并打印出程序及运行结果。
#完整代码如下:
class student(object): #学生健康的类定义
def _init_(self, name=" ", sex=" ", age=0, grade=" ",health=””):
self. name=name
self. sex=sex
self. age =age
self. grade=grade
self.health= health
class SeqList object):#线性表的数组实现
def _init_(self, max= 10):
self.max=max #默认顺序表最多容纳10个元素
#初始化顺序表数组
self. num= 0
self.data=[None]*self.max
def getLoc(self, value):#根据学生的名字,找学生所在的位置
n=0
for j in range( self. num):
if self.data [ j].name is value:
return j
if j == self. num:
return-1#如果遍历顺序表还未找到 value值相同的元素,则返回1表示顺序表中没有 value值的元素
def insert_sq( self,i,elem):#数组任意位置插入操作:
if not isinstance(i, int):
raise TypeError
if i<0 and i > self.num:
raise IndexError
#self.data.append(student)
for j in range( self.num, i-I,-1):
Self.data[j]= self. Data[j-1]
self.data[i]= elem
self.num += 1
# print(“插入完成”)
def delete_sq( self, i): #删除某一位置的操作
if not isinstance( i, int):
raise TypeError
if i< 0 and i >= self.num:
raise IndexError
for j in range(i, self. num-1):#此处是 self.num-1,因为循环中是j+1
#print(j,self. data[j],self.data[ j+1])
self.data[j]= self.data[j+ 1]
del self.data[ self.num-1]
self.num-= 1
print("删除完成”)
def printlist(self):#输出操作
for i in range(0, self. num):
#print( self.data[ i])
stu =self.data[i]
print( stu.name, stu.sex, stu.age, stu.grade, stu.health)
print(“-------------------输出完成------------------”)
s1= student("李林”,"男”,17,”高二(6)班”,”良好”)
s2= student(“汤晨”,"女”,16,”高二(6)班”,"良好”)
s3= student(“王平平”,"男”,17,”高二(6)班”,“一般")
s4= student("陈小莉",”女”,17,"高二(6)班","良好”)
seq=Seqlist()
seq.insert_sq(0, s1)
seq. insert_sq( I, s2)
seq. insert_sq(2,s3)
seq. insert_sq(3, s4)
seq. printlist()
x=seq.getloc("陈小莉”)
s5= student("常龙”)
if x!= -1:
seq. Insert_sq(x,s5)#调用插入函数,插入常龙同学
else:
print("插入位置出错”)
seq printlist()
If x!= -1:
Seq.delete_sq(seq.getloc(“李林”)) #调用除函数,删除林同学
Else:
Print(“插入位置出错")
seq.printList()
四、交流评价与反思
以自己熟悉的信息表达工具(如演示文稿等)制作电子作品,通过网络或课堂展示交流自己的程序,并对他人的程序进行评价。
选修1 数据与数据结构第二章 数据与链表2.2 链表优质课件ppt: 这是一份选修1 数据与数据结构第二章 数据与链表2.2 链表优质课件ppt,文件包含221链表的概念特性基本操作课件pptx、221链表的概念特性基本操作教学设计doc等2份课件配套教学资源,其中PPT共26页, 欢迎下载使用。
选修1 数据与数据结构第二章 数据与链表2.1 数组公开课课件ppt: 这是一份选修1 数据与数据结构第二章 数据与链表2.1 数组公开课课件ppt,文件包含211数组的概念特性基本操作课件pptx、211数组的概念特性基本操作教学设计doc等2份课件配套教学资源,其中PPT共26页, 欢迎下载使用。
沪教版(2019)必修2 信息系统与社会单元挑战 规划学校信息化管理系统网络一等奖ppt课件: 这是一份沪教版(2019)必修2 信息系统与社会单元挑战 规划学校信息化管理系统网络一等奖ppt课件,文件包含沪科版2019高中必修2信息技术第3单元挑战规划学校信息化管理系统网络课件pptx、沪科版2019高中必修2信息技术第3单元挑战规划学校信息化管理系统网络教案doc等2份课件配套教学资源,其中PPT共28页, 欢迎下载使用。