下面是一个示例的C#学生成绩管理程序,根据学生选修的课程及课程学分和课程成绩计算GPA,并按GPA值对学生进行排序:\n\ncsharp\nusing System;\nusing System.Collections.Generic;\n\npublic class Student\n{\n public string Name { get; set; }\n public List<Course> Courses { get; set; }\n\n public double CalculateGPA()\n {\n double totalCredits = 0;\n double totalGradePoints = 0;\n\n foreach (Course course in Courses)\n {\n totalCredits += course.Credits;\n totalGradePoints += course.GradePoints * course.Credits;\n }\n\n return totalGradePoints / totalCredits;\n }\n}\n\npublic class Course\n{\n public string Name { get; set; }\n public double Credits { get; set; }\n public double GradePoints { get; set; }\n}\n\npublic class Program\n{\n public static void Main(string[] args)\n {\n List<Student> students = new List<Student>();\n\n // 添加学生和他们的课程及成绩信息\n Student student1 = new Student\n {\n Name = "张三",\n Courses = new List<Course>\n {\n new Course { Name = "数学", Credits = 3, GradePoints = 4 },\n new Course { Name = "英语", Credits = 2, GradePoints = 3.5 },\n new Course { Name = "物理", Credits = 4, GradePoints = 3 },\n }\n };\n\n Student student2 = new Student\n {\n Name = "李四",\n Courses = new List<Course>\n {\n new Course { Name = "数学", Credits = 4, GradePoints = 3.5 },\n new Course { Name = "英语", Credits = 3, GradePoints = 4 },\n new Course { Name = "物理", Credits = 2, GradePoints = 3 },\n }\n };\n\n students.Add(student1);\n students.Add(student2);\n\n // 根据GPA值对学生进行排序\n students.Sort((s1, s2) => s2.CalculateGPA().CompareTo(s1.CalculateGPA()));\n\n // 打印排序后的学生信息\n foreach (Student student in students)\n {\n Console.WriteLine(student.Name + " 的GPA为:" + student.CalculateGPA());\n }\n }\n}\n\n\n这个程序中,我们创建了一个Student类来表示学生,其中包含学生的姓名和选修的课程列表。每个课程由Course类表示,其中包含课程名称、学分和绩点。在Student类中,我们定义了一个CalculateGPA方法来计算学生的GPA,该方法遍历学生的课程列表,累加每门课程的学分和绩点乘积,并将其除以总学分数得到平均分。\n\n在Program类中,我们创建了两个学生对象,并为他们添加了选修的课程及成绩信息。然后,我们将学生对象添加到一个列表中,并使用Sort方法对列表中的学生对象进行排序,排序的依据是学生的GPA值。最后,我们使用循环打印排序后的学生信息,包括姓名和对应的GPA值。


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

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