1. 程式人生 > >寫一個班級的類, 儲存班裡人數,統計班級裡各學科的總分的最高分、各學科的平均分; 寫班級裡的學生類,儲存學生所有成績, 計算某個學生的全部課程的平均分、全部課程的總分、全部課程的最高分

寫一個班級的類, 儲存班裡人數,統計班級裡各學科的總分的最高分、各學科的平均分; 寫班級裡的學生類,儲存學生所有成績, 計算某個學生的全部課程的平均分、全部課程的總分、全部課程的最高分

#班級類
class Class_NO(object):
    def __init__(self,name):
        self.grade_class_name=name
        self.students=[]
        
    def set_grade_class_name(self,name):
        self.grade_class_name=name
        
    def get_grade_class_name(self):
        return self.grade_class_name
        
    def
add_student(self,student): self.students.append(student) def get__classNo_max_total_score(self): student_total_score=[] for i in self.students: student_total_score.append(i.get_student_total_score()) ########## #print (student_total_score) max_student_total_score=max(student_total_score)
return max_student_total_score def get_classNo_chinese_avg_score(self): student_chinese_score=[] for i in self.students: student_chinese_score.append(i.get_chinese_score()) return sum(student_chinese_score)/len(self.students) def get_classNo_math_avg_score(self): student_math_score
=[] for i in self.students: student_math_score.append(i.get_math_score()) return sum(student_math_score)/len(self.students) #學生類 class Student(object): def __init__(self,name,grade_class_no): self.name=name self.grade_class_no=grade_class_no self.__chinese_score=None self.__math_score=None self.__total_score=None def set_chinese_score(self,score): if score>=0 and score<=100 and isinstance(score,(int,float)): self.__chinese_score=score else: print ("你輸入的分數不是數字型別,或者不在0-100分數的範圍內") def get_chinese_score(self): return self.__chinese_score def set_math_score(self,score): if score>=0 and score<=100 and isinstance(score,(int,float)): self.__math_score=score else: print ("你輸入的分數不是數字型別,或者不在0-100分數的範圍內") def get_math_score(self): return self.__math_score def get_student_total_score(self): self.__total_score=self.__chinese_score+self.__math_score return self.__total_score def get_student_avg_score(self): return sum([self.__chinese_score,self.__math_score])/2 def get_student_max_score(self): return max(self.__chinese_score,self.__math_score) if __name__ == "__main__": s = Student("zita","三年二班") s.set_chinese_score(100) s.set_math_score(80) print ("%s的平均分是:%s"%(s.name,s.get_student_avg_score()),",","%s的總分是:%s"%(s.name,s.get_student_total_score()),",","%s的最高分是:%s"%(s.name,s.get_student_max_score())) t = Student("tim","三年二班") t.set_chinese_score(88) t.set_math_score(62) print ("%s的平均分是:%s"%(t.name,t.get_student_avg_score()),",","%s的總分是:%s"%(t.name,t.get_student_total_score()),",","%s的最高分是:%s"%(t.name,t.get_student_max_score())) c=Class_NO("三年二班") c.add_student(s) c.add_student(t) print ("%s總分最高分是:%s"%(c.get_grade_class_name(),c.get__classNo_max_total_score())) print ("%s語文學科平均分是:%s"%(c.get_grade_class_name(),c.get_classNo_chinese_avg_score())) print ("%s數學學科平均分是:%s"%(c.get_grade_class_name(),c.get_classNo_math_avg_score()))

 執行結果:

E:\workspace-python\test>py -3 c.py
zita的平均分是:90.0 , zita的總分是:180 , zita的最高分是:100
tim的平均分是:75.0 , tim的總分是:150 , tim的最高分是:88
三年二班總分最高分是:180
三年二班語文學科平均分是:94.0
三年二班數學學科平均分是:71.0