面向对象

#学生成绩管理系统
# 1.根据姓名查看学生所有成绩
# 2.查看所有人的某学科成绩
# 3.查看总平均分
# 4.查看某人的某学科成绩
# 5.根据姓名删除学生信息
class MagStuScore():

    def __init__(self, name, age, chinese, math, english):
        self.name = name
        self.age = age
        self.chinese = chinese
        self.math = math
        self.english = english

    def introduce(self):
        print('姓名: %s | 年龄: %s | 语文成绩: %s | 数学成绩: %s | 英语成绩: %s'
                % (self.name, self.age, self.chinese, self.math, self.english))

    def avg_score(self):
            print('%s的平均成绩是%s分'
                  % (self.name, int((self.chinese + self.math + self.english) // 3)))

class Manage():

    def __init__(self, *args):
        self.students = list(args)

    def name_score(self, name):
        for stu in self.students:
            if stu.name == name:
                print('%s的语文: %s, 数学: %s, 英语: %s'
                        % (stu.name, stu.chinese, stu.math, stu.english))

    def subj_score(self, subject):
        print('所有人的%s成绩' % subject)
        for stu in self.students:
            print(stu.name, stu.__dict__[subject])

    def sum_avg(self):
        sum_chinese = 0
        sum_math = 0
        sum_english = 0
        count = 0
        for stu in self.students:
            sum_chinese += stu.chinese
            sum_math += stu.math
            sum_english += stu.english
            count += 1

        print('语文的平均成绩: %s' % (sum_chinese // count),
            '数学的平均成绩: %s' % (sum_math // count),
            '英语的平均成绩: %s' % (sum_english // count))

    def name_subj_score(self, name, subject):
        for stu in self.students:
            if stu.name == name:
                print(stu.__dict__[subject])

    def del_stu(self, name):
        for stu in self.students:
            if stu.name == name:
                self.students.remove(stu)

stu1 = MagStuScore('小明', 12, 89, 90, 88)
stu2 = MagStuScore('小胡', 13, 99, 100, 80)
stu3 = MagStuScore('小华', 14, 90, 90, 90)

stu1.introduce()

manage = Manage(stu1, stu2, stu3)
manage.name_score('小华')
manage.subj_score('chinese')
manage.sum_avg()
manage.name_subj_score('小明', 'english')
manage.del_stu('小胡')
print([i.name for i in manage.students])


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容