资源简介 中小学教育资源及组卷应用平台第二单元挑战实现学校学生健康情况登记表的操作?教材分析本节的主要内容是实现学校学生健康情况登记表的操作。本项目开展的学习、讨论和实践,让学生对学校学生健康情况登记表进行操作,根据所学的数据结构知识,实现学生信息的添加和删除操作。提升信息意识,提高数据素养,肩负起信息社会责任,从容应对数据时代的各项挑战。?教学目标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.给源程序添加注释,保存并打印出程序及运行结果。#完整代码如下:classstudent(object):#学生健康的类定义def_init_(self,name="",sex="",age=0,grade="",health=””):self.name=nameself.sex=sexself.age=ageself.grade=gradeself.health=healthclassSeqListobject):#线性表的数组实现def_init_(self,max=10):self.max=max#默认顺序表最多容纳10个元素#初始化顺序表数组self.num=0self.data=[None]self.maxdefgetLoc(self,value):#根据学生的名字,找学生所在的位置n=0forjinrange(self.num):ifself.data[j].nameisvalue:returnjifj==self.num:return-1#如果遍历顺序表还未找到value值相同的元素,则返回1表示顺序表中没有value值的元素definsert_sq(self,i,elem):#数组任意位置插入操作:ifnotisinstance(i,int):raiseTypeErrorifi<0andi>self.num:raiseIndexError#self.data.append(student)forjinrange(self.num,i-I,-1):Self.data[j]=self.Data[j-1]self.data[i]=elemself.num+=1#print(“插入完成”)defdelete_sq(self,i):#删除某一位置的操作ifnotisinstance(i,int):raiseTypeErrorifi<0andi>=self.num:raiseIndexErrorforjinrange(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]delself.data[self.num-1]self.num-=1print("删除完成”)defprintlist(self):#输出操作foriinrange(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("常龙”)ifx!=-1:seq.Insert_sq(x,s5)#调用插入函数,插入常龙同学else:print("插入位置出错”)seqprintlist()Ifx!=-1:Seq.delete_sq(seq.getloc(“李林”))#调用除函数,删除林同学Else:Print(“插入位置出错")seq.printList()四、交流评价与反思以自己熟悉的信息表达工具(如演示文稿等)制作电子作品,通过网络或课堂展示交流自己的程序,并对他人的程序进行评价。21世纪教育网www.21cnjy.com精品试卷·第2页(共2页)HYPERLINK"http://21世纪教育网(www.21cnjy.com)"21世纪教育网(www.21cnjy.com)(共21张PPT)实现学校学生健康情况登记表的操作信息技术沪教版选择性必修1第二单元挑战一、新课导入二、项目任务四、交流评价与反思三、项目指引一、新课导入复习本单元所学知识,引出本单元挑战的主题——实现学校学生健康情况登记表的操作。二、项目任务现有某学校的学生健康情况登记表如表2-6所,表中每个学生的情况为一个记录它由姓名、性别、年龄、班级和健康状况等5个数据项组成。姓名性别年龄班级健康状况李林男17高二6班良好汤晨女16高二6班良好王平平男17高二6班一般陈小莉女17高二6班良好…………………………若用数组存储表中数据,假设班级人员变化,新进来“常龙”同学(男生、17岁,高二6班、健康状况良好),需要添加在“王平平”和“陈小莉”之间;又由于“李林”转学,需要将他的记录删除,请编程实现相应的操作。三、项目指引0102给出程序设计的基本思想、原理和算法描述。画出流程图,并编写程序。编写删除操作函数。0102编写插入操作函数03实现以下功能①调用插入操作函数,在上表中“王平平”和“陈小莉”之间插入“常龙”同学②调用删除操作函数,删除表中“李林”同学③输出最终的表03给源程序添加注释,保存并打印出程序及运行结果。#完整代码如下:classstudent(object):#学生健康的类定义def_init_(self,name="",sex="",age=0,grade="",health=””):self.name=nameself.sex=sexself.age=ageself.grade=gradeself.health=healthclassSeqListobject):#线性表的数组实现def_init_(self,max=10):self.max=max#默认顺序表最多容纳10个元素#初始化顺序表数组self.num=0self.data=[None]self.max03给源程序添加注释,保存并打印出程序及运行结果。defgetLoc(self,value):#根据学生的名字,找学生所在的位置n=0forjinrange(self.num):ifself.data[j].nameisvalue:returnjifj==self.num:return-1#如果遍历顺序表还未找到value值相同的元素,则返回1表示顺序表中没有value值的元素definsert_sq(self,i,elem):#数组任意位置插入操作:ifnotisinstance(i,int):raiseTypeErrorifi<0andi>self.num:raiseIndexError#self.data.append(student)forjinrange(self.num,i-I,-1):self.data[j]=self.Data[j-1]03给源程序添加注释,保存并打印出程序及运行结果。self.data[i]=elemself.num+=1#print(“插入完成”)defdelete_sq(self,i):#删除某一位置的操作ifnotisinstance(i,int):raiseTypeErrorifi<0andi>=self.num:raiseIndexErrorforjinrange(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]delself.data[self.num-1]self.num-=1print("删除完成”)03给源程序添加注释,保存并打印出程序及运行结果。defprintlist(self):#输出操作foriinrange(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)03给源程序添加注释,保存并打印出程序及运行结果。seq.printlist()x=seq.getloc("陈小莉”)s5=student("常龙”)ifx!=-1:seq.Insert_sq(x,s5)#调用插入函数,插入常龙同学else:print("插入位置出错”)seqprintlist()Ifx!=-1:seq.delete_sq(seq.getloc(“李林”))#调用除函数,删除林同学else:print(“插入位置出错")seq.printList()四、交流评价与反思以自己熟悉的信息表达工具(如演示文稿等)制作电子作品,通过网络或课堂展示交流自己的程序,并对他人的程序进行评价。谢谢21世纪教育网(www.21cnjy.com)中小学教育资源网站有大把高质量资料?一线教师?一线教研员?欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!详情请看:https://www.21cnjy.com/help/help_extract.php 展开更多...... 收起↑ 资源列表 第二单元挑战.doc 第二单元挑战.pptx