任务要求:
(1) 通过建立恰当的类类型来表示中国婴儿类型(体长、体重、肺活量、属相)
(2) 通过建立恰当的类类型来表示美国婴儿类型(体长、体重、肺活量、保障号码)
(3) 还要建立一个基类的类型,包括如下类属性:全部婴儿的总体长、全部婴儿的总体重、全部婴儿的总肺活量,全部婴儿数量。还要定义一个初始化方法:初始化婴儿的体长、体重、肺活量,同时实现计数功能
(4) 为了实现该任务是统计要求,要在中国婴儿类中定义如下四个类属性:全部婴儿的总体长、全部婴儿的总体重、全部婴儿的总肺活量,中国婴儿数量。同时,要在中国婴儿类中定义一个初始化的实例方法:完成体长、体重、肺活量、属相的输入,同时实现中国婴儿的计数。还要在中国婴儿类中定义一个显示上述四个属性的实例方法
(5) 为了实现该任务是统计要求,要在美国婴儿类中定义如下四个类属性:全部婴儿的总体长、全部婴儿的总体重、全部婴儿的总肺活量,美国婴儿数量。同时,要在美国婴儿类中定义一个初始化的实例方法:完成体长、体重、肺活量、保障号的输入,同时实现美国婴儿的计数。还要在美国婴儿类中定义一个显示上述四个属性的实例方法
(6) 主函数功能如下:
a) 通过循环结构模拟产科医生不断接生新生儿的工作在主函数中,创建两个列表,分别存放中国籍、美国籍新生儿对象。
--------------------------------以上的步骤已经完成,就如下步骤如何实现-----------------------------------------
b) 根据采集来的数据计算如下指标:
i. 婴儿平均体重,美国婴儿平均体重,中国婴儿平均体重
ii. 婴儿平均体长,美国婴儿平均体长,中国婴儿平均体长
iii. 婴儿平均肺活量,美国婴儿平均肺活量,中国婴儿平均肺活量
c) 做出统计图形
d) 以国籍为分类,以指标名称为系列做出统计图形
e) 以指标名称为分类,以国籍为系列做出统计图形
部分代码
#基类
class baby:
#服务于计算全体婴儿的平均指标值
num=0
__total_breath_val=0
__total_length=0
__total_weight=0
#服务于每个婴儿指标的输入和统计
def __init(self,x,y,z):
self.__length=x
self.__weight=y
self.__breath=z
baby.__num+=1
baby.__total_breath_val+=z
baby.__total_length+=x
baby.__total_weight+=y
#服务于输出每个婴儿指标信息
def get(self):
print("婴儿的体长:",self.__length)
print("婴儿的体重:",self.__weight)
print("婴儿的肺活量:",self.__breath)
def fhz(self):
return baby.__num,baby.__total_breath_val,baby.__total_length,baby.__total_weight
class chinese_baby(baby):
#服务于计算中国籍婴儿的平均指标值
num=0
__total_breath_val=0
__total_length=0
__total_weight=0
def __init(self, x, y, z,k):
super().__init__(x,y,z)
self.__length = x
self.__weight = y
self.__breath = z
self.__sx=k
chinese_baby.__num += 1
chinese_baby.__total_breath_val += z
chinese_baby.__total_length += x
chinese_baby.__total_weight += y
def get(self):
super().get()
print("该婴儿的属相:",self.__sx)
print("婴儿的体长:",self.__length)
print("婴儿的体重:",self.__weight)
print("婴儿的肺活量:",self.__breath)
def fhz(self):
return chinese_baby.__num,chinese_baby.__total_breath_val,chinese_baby.__total_length,chinese_baby.__total_weight
class america_baby(baby):
# 服务于计算中国籍婴儿的平均指标值
num = 0
__total_breath_val = 0
__total_length = 0
__total_weight = 0
def __init(self, x, y, z, k):
super().__init__(x, y, z)
self.__length = x
self.__weight = y
self.__breath = z
self.__bzh = k
america_baby.__num += 1
america_baby.__total_breath_val += z
america_baby.__total_length += x
america_baby.__total_weight += y
def get(self):
super().get()
print("该婴儿的保障号:", self.__bzh)
print("婴儿的体长:", self.__length)
print("婴儿的体重:", self.__weight)
print("婴儿的肺活量:", self.__breath)
def fhz(self):
return america_baby.__num,america_baby.__total_breath_val,america_baby.__total_length,america_baby.__total_weight
if name=="__main__":
c_baby=[]
a_baby=[]
while True:
key=input("是否继续接生(y/n)")
if key=="n":
break
key=input("中国孩子还是美国孩子(c/a)")
if key=="c":
x_length=int(input("请输入体长"))
x_weight=int(input("请输入体重"))
x_breath=int(input("请输入肺活量"))
x_sx=input("请输入属相")
c_baby.append(chinese_baby(x_length,x_weight,x_breath,x_sx))
else:
x_length = int(input("请输入体长"))
x_weight = int(input("请输入体重"))
x_breath = int(input("请输入肺活量"))
x_bzh = input("请输入保障号")
a_baby.append(america_baby(x_length, x_weight, x_breath, x_bzh))