Claude JS Class
by kulimusoda
JavaScript
// 要求:
// 1. 創建一個 Student 類別
// 2. 包含 name、age 和 grades(成績陣列)屬性
// 3. 添加 calculateAverage() 方法計算平均成績
// 4. 添加靜態方法 compareStudents(),比較兩個學生的平均成績
// 5. 創建多個學生實例,比較他們的成績
// 你的程式碼實作:
class Student {
constructor(name, age, grades) {
this.name = name
this.age = age
this.grades = grades
}
calculateAverage() {
if (this.grades.length === 0) {
throw new Error(`${this.name}沒有成績紀錄`)
}
let total = 0
this.grades.forEach((item) => (total += item))
return total/this.grades.length
}
static compareStudents(stu1, stu2) {
const avg1 = stu1.calculateAverage().toFixed(2)
const avg2 = stu2.calculateAverage().toFixed(2)
if (avg1 > avg2) {
return `${stu1.name}的平均成績比較高(${avg1})`
} else if (avg1 < avg2) {
return `${stu2.name}的平均成績比較高(${avg2})`
} else {
return `${stu1.name}跟${stu2.name}的成績相同`
}
}
}
try {
const peter = new Student("Peter", 20, [90, 80, 70])
const amy = new Student('Amy',22,[])
console.log(peter.calculateAverage())
console.log(amy.calculateAverage())
console.log(Student.compareStudents(peter,amy))
} catch (err) {
console.log(err.message)
}