C# 泛型绩点计算器代码示例

以下是一个使用 C# 泛型编写的绩点计算器代码示例:csharpusing System;using System.Collections.Generic;

public class GradeCalculator{ private Dictionary<T, double> gradePoints;

public GradeCalculator()    {        gradePoints = new Dictionary<T, double>();    }

public void AddGradePoint(T grade, double point)    {        gradePoints.Add(grade, point);    }

public double CalculateGPA(List<T> grades)    {        double totalPoints = 0;        int totalCredits = grades.Count;

    foreach (T grade in grades)        {            if (gradePoints.ContainsKey(grade))            {                totalPoints += gradePoints[grade];            }            else            {                throw new ArgumentException('Invalid grade: ' + grade);            }        }

    return totalPoints / totalCredits;    }}

public class Program{ public static void Main(string[] args) { // 创建一个字符型的绩点计算器 GradeCalculator charCalculator = new GradeCalculator();

    // 添加字符型的绩点        charCalculator.AddGradePoint('A', 4.0);        charCalculator.AddGradePoint('B', 3.0);        charCalculator.AddGradePoint('C', 2.0);        charCalculator.AddGradePoint('D', 1.0);        charCalculator.AddGradePoint('F', 0.0);

    // 创建一个整型的绩点计算器        GradeCalculator<int> intCalculator = new GradeCalculator<int>();

    // 添加整型的绩点        intCalculator.AddGradePoint(90, 4.0);        intCalculator.AddGradePoint(80, 3.0);        intCalculator.AddGradePoint(70, 2.0);        intCalculator.AddGradePoint(60, 1.0);        intCalculator.AddGradePoint(0, 0.0);

    // 测试字符型绩点计算器        List<char> charGrades = new List<char> { 'A', 'B', 'C', 'A' };        double charGPA = charCalculator.CalculateGPA(charGrades);        Console.WriteLine('Character GPA: ' + charGPA);

    // 测试整型绩点计算器        List<int> intGrades = new List<int> { 90, 80, 70, 90 };        double intGPA = intCalculator.CalculateGPA(intGrades);        Console.WriteLine('Integer GPA: ' + intGPA);    }}

这个代码示例中,我们创建了一个泛型类 GradeCalculator<T>,用于计算绩点。我们使用一个字典 gradePoints 来存储不同等级的绩点。AddGradePoint 方法用于添加绩点到字典中。CalculateGPA 方法接受一个泛型列表 grades,计算平均绩点并返回结果。

Main 方法中,我们创建了一个字符型的绩点计算器和一个整型的绩点计算器,并分别添加了不同等级的绩点。然后,我们使用这些绩点计算器来计算不同类型的成绩列表的平均绩点。最后,将结果输出到控制台。

这段代码展示了如何使用 C# 泛型创建灵活和可重用的代码。GradeCalculator 类可以用于任何类型的成绩,例如字母等级或百分比等级。


原文地址: https://www.cveoy.top/t/topic/fMtZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录