C# 泛型绩点计算器代码示例
C# 泛型绩点计算器代码示例
以下是一个使用 C# 泛型编写的绩点计算器代码示例:csharpusing System;using System.Collections.Generic;
public class GradeCalculator
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.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 类可以用于任何类型的成绩,例如字母等级或百分比等级。
原文地址: http://www.cveoy.top/t/topic/fMtZ 著作权归作者所有。请勿转载和采集!