(高职)7.4 面向对象精选案例ppt课件.pptx
7.4 面向对象精选案例PYTHON 程序设计丁辉 商俊燕 范晓玲第七章 面向对象程序设计u7.1 面向对象程序设计基础面向对象程序设计基础u7.2 继承继承u7.3 多态多态u7.4 面向对象精选案例面向对象精选案例u小结小结2022年5月9日37.4 面向对象精选案例 2022年5月9日4【例7-1】请分别用面向过程程序设计和面向对象程序设计方法实现学生姓名和成绩信息的输入和输出。 (1)信息的存储采用字典方式;()信息的存储采用字典方式;(2)定义一个输入函数,一个输出函数。)定义一个输入函数,一个输出函数。#定义一个函数输入学生的信息def input_studentinfor(): #定义一个字典,存放学生信息 stud=name:,score: num=int(input(请输入学生数:) for i in range(num): studname.append(input(请输入姓名:) studscore.append(float(input(请输入成绩:) return stud#定义一个函数,输出学生的信息def output_studentinfor(*stud): #输出学生信息的表头 for k in stud.keys(): print(k,end= ) print() #获取学生数 num=len(studname) #输出每个学生的具体信息 for i in range(num): print(studnamei, ,studscorei) if _name_ = _main_: stud = input_studentinfor() output_studentinfor(*stud)面向过程面向过程的方法的方法2022年5月9日5#定义一个Student类class Student(object): def _init_(self,name,score): self.name=name self.score=score def output_studentinfor(self): print(self.name, ,self.score)#输入信息def input_infor(): stu= num=int(input(请输入学生数:) for i in range(num): name=input(请输入姓名:) score=float(input(请输入分数:) #创建每个学生对象 student=Student(name,score) #将每个学生追加到列表里 stu.append(student) return stu面向对象面向对象的方法的方法采用面向对象程序设计方法,关键就是如何合理地定义和组织类合理地定义和组织类。首先抽象出学生Student类,然后定义学生类的name和score属性,以及将学生信息输出显示的方法,再根据类来创建每个学生实例,将学生实例存入列表中。#输出信息def output_infor(*stu): num=len(stu) print(num) print(name, ,score) for i in range(num): stui.output_studentinfor()if _name_=_main_: stu=input_infor() output_infor(*stu)7.4 面向对象精选案例 2022年5月9日6【例7-2】请用面向对象的方法编程计算圆和矩形的面积。要求定义的一个形状基类,圆和矩形是子类。import math#定义一个基类class Shape: def area(self): return 0.0#定义子类圆class Circle(Shape): def _init_(self, r=0.0): self.r = r def area(self): return math.pi * self.r * self.r#定义子类矩形 class Rectangle(Shape): def _init_(self, a, b): self.a, self.b = a, b def area(self): return self.a * self.bif _name_=_main_: #计算半径为5的圆的面积 c=Circle(5) print(半径=,c.r, 面积=,c.area() #计算矩形的面积 r=Rectangle(12.5,5.6) print(矩形的边长分别是:,r.a,r.b, 面积是:,r.area() 形状基数的定义,由于不同形状所具有的属性不相同,因此形状基类只定义了一个只定义了一个area()方法方法。各子类中分别定义各自形状的特征属性,并且在各子类中分别重载重载area()方法。7.4 面向对象精选案例 2022年5月9日7