以下是一个使用 C# 设计的学生成绩管理程序的示例代码:\n\ncsharp\nusing System;\nusing System.Collections.Generic;\n\nclass Student\n{\n public string StudentId { get; set; }\n public string Name { get; set; }\n public List<Course> Courses { get; set; }\n\n public Student(string studentId, string name)\n {\n StudentId = studentId;\n Name = name;\n Courses = new List<Course>();\n }\n\n public double CalculateGPA()\n {\n double totalCredits = 0;\n double weightedSum = 0;\n\n foreach (var course in Courses)\n {\n totalCredits += course.Credits;\n weightedSum += course.Credits * course.Grade;\n }\n\n if (totalCredits == 0)\n return 0;\n\n return weightedSum / totalCredits;\n }\n}\n\nclass Course\n{\n public string Name { get; set; }\n public double Credits { get; set; }\n public double Grade { get; set; }\n\n public Course(string name, double credits, double grade)\n {\n Name = name;\n Credits = credits;\n Grade = grade;\n }\n}\n\nclass Program\n{\n static void Main(string[] args)\n {\n List<Student> students = new List<Student>();\n\n // 输入学生信息\n Console.WriteLine('请输入学生信息(输入exit结束输入):');\n while (true)\n {\n Console.Write('学号:');\n string studentId = Console.ReadLine();\n if (studentId == 'exit')\n break;\n\n Console.Write('姓名:');\n string name = Console.ReadLine();\n\n Student student = new Student(studentId, name);\n students.Add(student);\n\n // 输入学生选修课程信息\n Console.WriteLine('请输入学生选修课程信息(输入exit结束输入):');\n while (true)\n {\n Console.Write('课程名:');\n string courseName = Console.ReadLine();\n if (courseName == 'exit')\n break;\n\n Console.Write('学分:');\n double credits = double.Parse(Console.ReadLine());\n\n Console.Write('成绩:');\n double grade = double.Parse(Console.ReadLine());\n\n Course course = new Course(courseName, credits, grade);\n student.Courses.Add(course);\n }\n }\n\n // 按GPA对学生进行排序\n students.Sort((s1, s2) => s2.CalculateGPA().CompareTo(s1.CalculateGPA()));\n\n // 输出学生信息和GPA\n Console.WriteLine('学生排序结果:');\n foreach (var student in students)\n {\n Console.WriteLine($'学号:{student.StudentId}, 姓名:{student.Name}, GPA:{student.CalculateGPA()}');\n }\n }\n}\n\n\n此程序中,首先创建了Student类和Course类来表示学生和课程。Student类包含学生的学号、姓名和课程列表,Course类包含课程名、学分和成绩。在Student类中,还定义了一个CalculateGPA方法来计算学生的GPA。\n\n在Main方法中,首先创建了一个空的学生列表。然后,通过循环依次输入学生的学号、姓名和选修课程信息,将学生信息添加到学生列表中。在输入选修课程信息时,可以输入多门课程,直到输入'exit'退出输入。\n\n最后,使用Sort方法对学生列表按照GPA进行排序,并输出学生的学号、姓名和GPA。排序使用了Lambda表达式,根据学生的GPA进行降序排序。\n\n请注意,本示例代码中没有进行输入验证和异常处理,请根据实际情况进行适当的修改和完善。


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

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