第7章实验作业

                                                                                         7.面对对象程序设计

 一、实验目的和要求

1、了解面向对象的基本概念(对象、类、构造方法);

2、学会类的定义和使用;

3、掌握属性的创建和修改;

4、掌握继承的基本语法。

二、实验环境 软件版本:Python 3.10 64_bit

三、实验过程 

实例1

(1)

class Geese: #创建大雁类
'''大雁类'''
def __init__(self, beak, wing, claw): #构造方法
print("我是大雁类!我有一下特征:")
print(beak) #输出的特征
print(wing) #输出翅膀的特征
print(claw) #输出爪子的特征
def fly(self,state): #定义飞行方法
print(state)
'''****************************************调用方法***************************'''
beak_1 = "的基部较高,长度和头部的长度几乎相等" # 的特征
wing_1 = "翅膀长而尖" #翅膀的特征
claw_1 = "爪子是蹼状的" #爪子的特征
wildGoose = Geese(beak_1,wing_1,claw_1) #创建大雁类的实例
wildGoose.fly("我飞行的时候,一会儿排成个人字,一会排成个一字")

(2)

 

 实例2

(1)

class Geese:
'''大雁类'''
neck = "脖子较长" #类属性(脖子)
wing = "振翅频率高" #类属性(翅膀)
leg = "腿位于身体的中心支点,行走自如" #类属性(腿)
number = 0 #编号
def __init__(self): #构造方法
Geese.number += 1 #将编号加1
print("\n我是第"+str(Geese.number)+"只大雁,我属于雁类!我有以下特征:")
print(Geese.neck) #输出脖子的特征
print(Geese.wing) #输出翅膀的特征
print(Geese.leg) #输出腿的特征
# 创建4个雁类的对象(相当于有4只大雁)
list1 = []
for i in range(4): #循环4次
list1.append(Geese()) #创建一个雁类的实例
print("一共有"+str(Geese.number)+"只大雁")
(2)

 

 实例3

(1)

class TVshow: #定义电视节目类
list_film = ["战狼2","红海行动","西游记女儿国","熊出没·变形记"]
def __init__(self,show):
self._show = show
@property #将方法转换为属性
def show(self): #定义show()方法
return self._show #返回私有属性的值
@show.setter #设置setter方法,让属性可修改
def show(self,value):
if value in TVshow.list_film: #判断是否在列表中
self._show = "您选择了《"+value+"》,稍后将播放" #返回修改的值
else:
self._show = "您点播的电影不存在"
tvshow = TVshow("战狼2") #创建类的实例
print("正在播放:《",tvshow.show,"》") #获取属性值
print("您可以从",tvshow.list_film,"中选择要点播的电影")
tvshow.show = "抓妖记2" #修改属性值

print(tvshow.show) #获取属性值

(2)

 

 实例4

(1)

class Fruit: #定义水果类(基类)
color = "绿色" #定义类属性
def harvest(self,color):
print("水果是:"+color + "的!") #输出的是形式参数color
print("水果已经收获······")
print("水果原来是:"+Fruit.color +"的!"); #输出的数类属性color
class Apple(Fruit): #定义苹果类(派生类)
color = "红色"
def __init__(self):
print("我是苹果")
class Orange(Fruit):
color = "橙色"
def __init__(self):
print("\n我是橘子")
apple = Apple() #创建类的实例(苹果)
apple.harvest(apple.color) #调用基类的harvest()方法
orange = Orange() #创建类的实例(橘子)
orange.harvest(orange.color) #调用基类的harvest()方法

(2)

 

 实例 5

(1)

class Fruit: #定义水果类(基类)
def __init__(self,color = "绿色"):
Fruit.color = color #定义类属性
def harvest(self,color):
print("水果是:"+self.color + "的!") #输出的是形式参数color
print("水果已经收获······")
print("水果原来是:"+Fruit.color +"的!"); #输出的数类属性color
class Apple(Fruit): #定义苹果类(派生类)
color = "红色"
def __init__(self):
print("我是苹果")
super().__init__() #调用基类的__init__()方法
class Sapodilla(Fruit): #定义人参果类(派生类)
def __init__(self,color):
print("\n我是人参果")
super().__init__(color)
#重写harvest()方法的代码
def harvest(self,color):
print("人参果是:"+color + "的!") #输出的是形式参数color
print("人参果已经收获······")
print("人参果原来是:"+Fruit.color +"的!"); #输出的是类属性color
apple = Apple() #创建类的实例(苹果)
apple.harvest(apple.color) #调用基类的harvest()方法
sapodilla = Sapodilla("白色") #创建类的实例(人参果)
sapodilla.harvest("金黄色带紫色条纹") #调用基类的harvest()方法

 (2)

 

 shizhan1

(1)

class Phone:
def __init__(self):
self.language = "英语"
print("智能手机的默认语言为"+self.language)
phone = Phone()
phone.language = "中文"
print("将智能手机的默认语言设置为"+phone.language )

(2)

 

 shizhan2

(1)

class ID:
def __init__(self,num="4013735633800642",secret="123456"):
ID.secret = secret
print("信用卡"+num+'默认密码为'+ID.secret)
def harvest(self,num):
print("重置信用卡"+num+"的默认密码为"+self.secret)
class NewID(ID):
secret = "168779"
num="4013735633800642"
def __init__(self):
super().__init__()
newid = NewID()
newid.harvest(newid.num)

(2)

 

 shizhan3

(1)

class SaleHandler: #定义销售类
'''销售管理类'''
def __init__(self): #定义字典{key:value[列表]}
self.__sale_data = {"1":[('T0001','笔记本电脑'),('T0002','华为荣耀6X'),('T0003','iPad'),
('T0004','华为荣耀V9'),('T0005','MacBook')],
"2":[('T0001','笔记本电脑'),('T0002','华为荣耀6X'),('T0003','iPad'),
('T0004','华为荣耀V9'),('T0005','MacBook')],
"3":[('T0001','笔记本电脑'),('T0002','华为荣耀6X'),('T0003','iPad'),
('T0004','华为荣耀V9'),('T0005','MacBook')]}
def outputSaleList(self,query_month): #query_month ?
'''根据输入月份,查询商品明细'''
if query_month in self.__sale_data:
print("%s月份商品销售明细如下:"%query_month) # %query_month ?
for item in self.__sale_data[query_month]:
print("商品编号:%s\t商品名称:%s"%item)
else:
print("该月份没有销售数据或输入月份有误!")
print("—"*10+"销售明细"+"—"*10)
sh = SaleHandler()
while(True): #循环结构
month = input("请输入要查询的月份(比如1、2、3等):")
if month =='0': #跳出循环的值
break
sh.outputSaleList(month)

(2)

shizhan4

(1)

import time
timenow = time.strftime("%Y.%m.%d",time.localtime())
print("\n欢迎使用自动售票机~~")
print("\n请选择正在上映的电影:1、《长津湖》\t2、《战狼2》\t3、《红海行动》")
dy = input("已选电影:")
print("\n请选择电影播放场次:1、9:30\t2、10:40\t3、12:00")
cc = input("电影场次:")
print("\n请选择座位剩余座位:10-10,10-02,10-03,10-04")
zw = input("选择座位:")
print("\n正在出票。。。")
print("电影:",dy)
print("播出时间:",timenow,cc)
print("座位:",zw)
print("\n出票完成,请别忘记取票")

(2)

 

posted @ 2022-11-01 19:01  BLUETXY  阅读(52)  评论(0)    收藏  举报