weixin_51790202 2021-12-25 14:25 采纳率: 88.2%
浏览 736
已结题

优异生查询(类和对象)

题目: 编程实现查找优异生的功能——用户输入多个学生的成绩,输出总分最高的学生姓名和各科成绩
要求: 设计一个学生类(Student),包括

1)属性:姓名(name),数学成绩(mscore),语文成绩(cscore),英语成绩(escore);

2)方法:

构造方法,来构造每个具体的学生对象
计算总成绩方法getSum(self),返回三个成绩的和
获得优异生姓名,数学成绩,语文成绩,英语成绩的方法getBest(self),返回4个结果内容(优异生姓名,数学成绩,语文成绩,英语成绩)
输入格式:
通过4行输入:

第一行输入多个学生姓名,以空格分隔

第二行输入多个数学成绩,以空格分隔

第三行输入多个语文成绩,以空格分隔

第四行输入多个英语成绩,以空格分隔

注意:学生姓名个数要和成绩个数保持一致

输出格式:
在一行中,输出总分最高的学生及其各科科目成绩,以空格分隔。

输入样例:
在这里给出一组输入。例如:

Jack Tom Jim
95 84 32
90 75 45
85 90 67
结尾无空行
输出样例:
在这里给出相应的输出。例如:

Jack 95 90 85
结尾无空行

  • 写回答

2条回答 默认 最新

  • chuifengde 2021-12-25 15:24
    关注
    class Student:
        dicScore = dict()
        def __init__(self, name, mscore, cscore, escore):
            self.name = name
            self.mscore = mscore
            self.cscore = cscore
            self.escore = escore
            Student.dicScore[self.name] = [self.mscore, self.cscore, self.escore, self.getSum()]
    
        def getSum(self):
            return self.mscore + self.cscore + self.escore
    
        @classmethod
        def getBest(self):
            value = sorted(self.dicScore.items(), key =lambda item: item[1][-1], reverse = True)[0]
            return value[0], value[1][0], value[1][1], value[1][2]
        
    names = input(">>>").split()
    mscores = list(map(int, input(">>>").split()))
    cscores = list(map(int, input(">>>").split()))
    escores = list(map(int, input(">>>").split()))
    
    for idx, name in enumerate(names):
        s = Student(name, mscores[idx], cscores[idx], escores[idx])
        
    res = s.getBest()
    print(' '.join(map(str, res)), end = '')
    
    '''--result
    >>>Jack Tom Jim
    >>>95 84 32
    >>>90 75 45
    >>>85 90 67
    Jack 95 90 85
    '''
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月25日

悬赏问题

  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?