以下是一个用C#设计的学生成绩管理程序的示例代码,可以输入多个学生的信息,包括学号、姓名和多门课程的名称、学分和成绩,计算每个学生的GPA并按GPA从高到低进行排序。\n\ncsharp\nusing System;\nusing System.Collections.Generic;\n\nclass Student\n{\n public int StudentId { get; set; }\n public string Name { get; set; }\n public List<Course> Courses { get; set; }\n\n public Student(int id, string name)\n {\n StudentId = id;\n Name = name;\n Courses = new List<Course>();\n }\n\n public double CalculateGPA()\n {\n double totalCredit = 0;\n double totalGradePoints = 0;\n\n foreach (Course course in Courses)\n {\n if (course.Grade <= 59)\n totalGradePoints += 0;\n else if (course.Grade <= 69 && course.Grade >= 60)\n totalGradePoints += 1.0;\n else if (course.Grade <= 79 && course.Grade >= 70)\n totalGradePoints += 2.0;\n else if (course.Grade <= 89 && course.Grade >= 80)\n totalGradePoints += 3.0;\n else if (course.Grade <= 100 && course.Grade >= 90)\n totalGradePoints += 4.0;\n\n totalCredit += course.Credit;\n }\n\n return totalGradePoints / totalCredit;\n }\n}\n\nclass Course\n{\n public string Name { get; set; }\n public double Credit { get; set; }\n public int Grade { get; set; }\n\n public Course(string name, double credit, int grade)\n {\n Name = name;\n Credit = credit;\n Grade = grade;\n }\n}\n\nclass Program\n{\n static void Main()\n {\n List<Student> students = new List<Student>();\n\n Console.WriteLine('请输入学生信息:');\n while (true)\n {\n Console.Write('学号:');\n int id = int.Parse(Console.ReadLine());\n\n Console.Write('姓名:');\n string name = Console.ReadLine();\n\n Student student = new Student(id, name);\n\n while (true)\n {\n Console.Write('课程名:');\n string courseName = Console.ReadLine();\n\n Console.Write('学分:');\n double credit = double.Parse(Console.ReadLine());\n\n Console.Write('成绩:');\n int grade = int.Parse(Console.ReadLine());\n\n Course course = new Course(courseName, credit, grade);\n student.Courses.Add(course);\n\n Console.Write('继续添加课程吗?(Y/N): ');\n string continueAdding = Console.ReadLine();\n if (continueAdding.ToUpper() != 'Y')\n break;\n }\n\n students.Add(student);\n\n Console.Write('继续添加学生吗?(Y/N): ');\n string continueAddingStudent = Console.ReadLine();\n if (continueAddingStudent.ToUpper() != 'Y')\n break;\n }\n\n students.Sort((s1, s2) => s2.CalculateGPA().CompareTo(s1.CalculateGPA()));\n\n Console.WriteLine('\n按GPA从高到低排序的学生列表:');\n foreach (Student student in students)\n {\n Console.WriteLine($'学号:{student.StudentId},姓名:{student.Name},GPA:{student.CalculateGPA()}');\n }\n }\n}\n\n\n这个程序首先会询问您要输入的学生信息,然后会逐个询问每个学生的课程信息(课程名、学分和成绩)。当您不再想继续添加学生或课程时,可以输入'N'来退出循环。最后,程序会按照学生的GPA值从高到低对学生进行排序,并输出排序后的学生列表。\n\n程序说明:\n\n* Student类:存储每个学生的信息,包括学号、姓名和课程列表。\n* Course类:存储每门课程的信息,包括课程名、学分和成绩。\n* CalculateGPA()方法:计算学生的GPA,根据课程成绩和学分计算加权平均分。\n* Main()方法:程序的主入口,负责接收用户输入,创建学生和课程对象,计算GPA并排序输出。\n\n使用方法:\n\n1. 运行程序。\n2. 按照提示输入学生信息,包括学号、姓名和多门课程的信息。\n3. 输入“N”退出循环,程序会计算GPA并按GPA从高到低排序输出学生列表。\n\n注意:\n\n* GPA的计算方法符合一般大学的GPA计算规则,具体规则可能略有差异。\n* 该程序仅供学习参考,实际应用中可能需要根据具体需求进行调整和完善。\n


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

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