C# 泛型绩点计算器 - 灵活计算不同类型成绩
C# 泛型绩点计算器代码示例
想要用 C# 计算平均绩点 (GPA)? 这篇博客提供了一个使用泛型的灵活解决方案。
以下是代码示例: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 Exception('Invalid grade'); } }
return totalPoints / totalCredits; }}
public class Program{ public static void Main(string[] args) { // 使用字符串类型的成绩 GradeCalculator
List<string> grades = new List<string> { 'A', 'B', 'C', 'A', 'B' };
double gpa = stringGradeCalculator.CalculateGPA(grades); Console.WriteLine('GPA: ' + gpa);
// 使用整数类型的成绩 GradeCalculator<int> intGradeCalculator = new GradeCalculator<int>(); intGradeCalculator.AddGradePoint(90, 4.0); intGradeCalculator.AddGradePoint(80, 3.0); intGradeCalculator.AddGradePoint(70, 2.0); intGradeCalculator.AddGradePoint(60, 1.0); intGradeCalculator.AddGradePoint(0, 0.0);
List<int> intGrades = new List<int> { 90, 80, 70, 90, 80 };
double intGpa = intGradeCalculator.CalculateGPA(intGrades); Console.WriteLine('GPA: ' + intGpa); }}
代码说明:
-
GradeCalculator<T>类: * 使用泛型T来处理不同类型的成绩(例如,字符串或整数)。 *AddGradePoint方法添加成绩和对应的绩点。 *CalculateGPA方法计算给定成绩列表的 GPA。 -
Main方法: * 演示如何使用GradeCalculator类计算字符串和整数类型的成绩的 GPA。
这个示例展示了 C# 泛型的强大功能,可以创建灵活且可复用的代码来处理不同类型的数据。
原文地址: https://www.cveoy.top/t/topic/fMtN 著作权归作者所有。请勿转载和采集!