定义一个类Student,属性有name、age、weight、height、course。要求继承类People。定义成员方法total_score(self,course)计算总成绩。course为列表类型,元素为语文、数学、英语和理综。设计一个程序要求可以显示菜单1、计算总成绩,2、计算BMI。选择1则在控制台输入学生姓名、语文、数学、英语和理综,输出总成绩。选择2则在控制台输入姓名、年龄、体重、身高(米),然后输出BMI并且给出合理建议。 Python代码
时间: 2023-07-10 12:40:05 浏览: 127
可以参考以下代码实现:
```python
class People:
def __init__(self, name, age, weight, height):
self.name = name
self.age = age
self.weight = weight
self.height = height
def bmi(self):
return round(self.weight / (self.height ** 2), 2)
def advice(self):
bmi = self.bmi()
if bmi < 18.5:
return "您的体重过轻,请注意营养均衡。"
elif bmi < 24:
return "您的体重正常,继续保持。"
elif bmi < 28:
return "您的体重过重,请注意控制饮食。"
else:
return "您的体重肥胖,建议您进行减肥。"
class Student(People):
def __init__(self, name, age, weight, height, course):
super().__init__(name, age, weight, height)
self.course = course
def total_score(self):
return sum(self.course)
def main():
while True:
print("请输入数字选择功能:1、计算总成绩,2、计算BMI,0、退出")
choice = input()
if choice == "0":
break
elif choice == "1":
name = input("请输入学生姓名:")
course = []
for c in ["语文", "数学", "英语", "理综"]:
course.append(int(input(f"请输入{name}的{c}成绩:")))
student = Student(name, 0, 0, 0, course)
print(f"{name}的总成绩为:{student.total_score()}")
elif choice == "2":
name = input("请输入学生姓名:")
age = int(input("请输入学生年龄:"))
weight = float(input("请输入学生体重(千克):"))
height = float(input("请输入学生身高(米):"))
student = People(name, age, weight, height)
print(f"{name}的BMI指数为:{student.bmi()},{student.advice()}")
if __name__ == '__main__':
main()
```
运行程序后,会显示以下菜单:
```
请输入数字选择功能:1、计算总成绩,2、计算BMI,0、退出
```
输入相应数字即可选择对应功能。如果选择1,则需要输入学生的姓名和各科成绩,程序会输出总成绩。如果选择2,则需要输入学生的姓名、年龄、体重和身高,程序会输出BMI指数和相应建议。如果输入0,则程序退出。
阅读全文