C#如何将成绩百分比转换为字母等级?

时间:2017-08-22 20:52:07

标签: c#

Noob在这里。我编写了一个程序,允许用户输入他们想要输入数组的等级数,然后让他们输入他们选择的索引数的等级。我试图根据输入的成绩输出总分百分比,并输出实际的字母等级,但我无法弄清楚我要编码转换为字母等级的代码。任何帮助表示赞赏。

代码:

from abc import abstractmethod, ABCMeta

class Model(metaclass=ABCMeta):
    @abstractmethod
    def foo(self):
        """This method should implement how to foo the model."""

4 个答案:

答案 0 :(得分:0)

你可以创建一个函数来从你计算的平均值中得到你的字母等级:

static char GetLetterGrade(double score)
{
    if (score >= 90.0)
    {
        return 'A';
    }

    if (score >= 80.0)
    {
        return 'B';
    }

    if (score >= 70.0)
    {
        return 'C';
    }

    if (score >= 60.0)
    {
        return 'D';
    }

    return 'F';
}

答案 1 :(得分:0)

首先,你最好做一些更多的作业(而不是计算印刷语句中的成绩)所以我在下面列出了这一点。一旦你在var中有了百分比,你就可以使用if / else或switch来获得字母等级。

ffmpeg -i input.mov -filter_complex "[0:v]scale=-2:720,format=yuv420p[v];[0:a]amerge=inputs=$(ffprobe -loglevel error -select_streams a -show_entries stream=codec_type -of csv=p=0 input.mov | wc -l)[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 23 -preset medium -c:a libmp3lame -ar 44100 -ac 2 output.mov

答案 2 :(得分:0)

我会使用一个开关,为每个字母指定一系列值

答案 3 :(得分:-1)

以最简单的方式......我会创建一个词典:

Key - Value
10 - A
9 - A
8 - B
7 - C
6 - D
5 - F
4 - F
3 - F
2 - F
1 - F
0 - F

现在您已设置此词典,您可以将等级纳入您的方法,除以10,发言并找到与该值相关联的条目。

public class Grades
{
    Dictionary<int, char> GradeValues { get; set; }

    public Grades()
    {
        GradeValues.Add(10, 'A');
        GradeValues.Add(9, 'A');
        GradeValues.Add(8, 'B');
        ...
        GradeValues.Add(0, 'F');
    } 
    public char GetGrade(int grade)
    {
        char value = GradeValues[int.Floor(grade/10)];
        if (value == null)
            return 'F';
        return value;
    }
}

话虽如此,可能有更好的方法来解决这个问题。

编辑:这假设您没有将88等级传递给该方法时发生B级或其他等级。

如果陈述或案例也很有效,但我更喜欢这种开发方法。当您想要更改成绩时,更容易扩展。您不必更新方法。您只需要在构造函数中更新字典。

编辑2:我看到有人对每个答案都进行了低估。我赞成其他答案,因为它们都是有效的......

您可以使用该分数的等级从0到100填写整个字典。