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