从UML图中,它显示 getGrade(String)是类Quiz的一种方法。我的理解是字符串应该是测验的标题。但是,你如何根据你输入的标题获得测验得分?
这个问题要求我们" 使用给定的getGrade函数中的Quiz评分方案为Quiz类编写Scala代码。对于70以上的分数,等级为A. "。
以下是我的代码,但它无法正常工作。
def getGrade(title:String):String={
if(title.score >= 70)
val grade:String = A
}
答案 0 :(得分:0)
val
是一个关键字,用于创建存储的不可修改的字段或局部变量。在您的情况下,您可能应该将score
类型的Double
字段映射到String
表示,这样这是一个计算而不是存储的信息。 String
类中额外的availableScore
参数和Assignment
字段的目的是什么目的尚不清楚。这是我最好的猜测:
abstract class Assignment(val title: String, val score: Double, val availableScore: Double) {
def grade(studentName: String): String
}
class Quiz(title: String, score: Double, availableScore: Double) extends Assignment(title, score, availableScore) {
override def grade(studentName: String): String = {
val grade = score match {
case s if s >= 70 => "A"
case s if s >= 50 => "B"
// map rest ranges from score to grade
case _ => "F"
}
s"$studentName's grade for quiz '$title' is $grade"
}
}