美文网首页
面向对象

面向对象

作者: 夜中光 | 来源:发表于2019-01-16 10:46 被阅读0次
    #学生成绩管理系统
    # 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])
    
    
    

    相关文章

      网友评论

          本文标题:面向对象

          本文链接:https://www.haomeiwen.com/subject/vjjcdqtx.html