设计一个学生类student,它具有的私有数据成员是:注册号、姓名、数学、英语、计算机成绩;具有的公有成员函数是:求三门课总成绩的函数sum,求三门课平均成绩的函数average,显示学生数据信息的函数print;获取学生注册号的函数get_reg_num;设置学生数据信息的函数set_stu_inf。 编制主函数,说明一个student类对象的数组,并进行全班学生信息的输入与设置,然后求出每一个学生的总成绩,平均成绩,全班学生总成绩的最高分,全班学生的总平均分,并在输入一个注册号后,输出该学生有关的全部数据信息。
时间: 2023-06-07 15:07:50 浏览: 136
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
好的,我会根据你的要求回答你的问题。以下是设计一个学生类student,以及实现要求的代码:
```python
class Student:
def __init__(self, reg_num, name, math_score, eng_score, comp_score):
self.__reg_num = reg_num
self.__name = name
self.__math_score = math_score
self.__eng_score = eng_score
self.__comp_score = comp_score
def sum(self):
return self.__math_score + self.__eng_score + self.__comp_score
def average(self):
return self.sum() / 3.0
def print_info(self):
print("注册号:{}".format(self.__reg_num))
print("姓名:{}".format(self.__name))
print("数学成绩:{}".format(self.__math_score))
print("英语成绩:{}".format(self.__eng_score))
print("计算机成绩:{}".format(self.__comp_score))
print("总成绩:{}".format(self.sum()))
print("平均成绩:{}".format(self.average()))
def get_reg_num(self):
return self.__reg_num
def set_stu_inf(self, reg_num, name, math_score, eng_score, comp_score):
self.__reg_num = reg_num
self.__name = name
self.__math_score = math_score
self.__eng_score = eng_score
self.__comp_score = comp_score
def main():
# 定义一个学生对象的数组,并进行学生信息的输入与设置
stu_list = []
n = int(input("请输入班级学生数:"))
for i in range(n):
print("请输入第{}个学生的信息:".format(i+1))
reg_num = input("注册号:")
name = input("姓名:")
math_score = float(input("数学成绩:"))
eng_score = float(input("英语成绩:"))
comp_score = float(input("计算机成绩:"))
# 实例化一个学生对象,并将其添加到学生对象数组中
stu = Student(reg_num, name, math_score, eng_score, comp_score)
stu_list.append(stu)
# 求出每一个学生的总成绩、平均成绩,全班学生总成绩的最高分和总平均分
sum_scores = []
for stu in stu_list:
sum_scores.append(stu.sum())
stu.print_info()
max_score = max(sum_scores)
avg_score = sum(sum_scores) / len(stu_list)
print("全班学生总成绩的最高分为:{}".format(max_score))
print("全班学生的平均成绩为:{}".format(avg_score))
# 输入一个注册号,输出该学生有关的全部数据信息
reg_num = input("请输入学生的注册号:")
for stu in stu_list:
if stu.get_reg_num() == reg_num:
stu.print_info()
break
else:
print("没有该学生的信息")
if __name__ == '__main__':
main()
```
以上是实现要求的程序代码,你可以在本地编译并运行程序。需要注意的是,仅供参考,不保证代码完全正确。如果你有任何问题和疑惑,可以在评论区向我提问。
阅读全文