以下是使用C#设计的学生成绩管理程序,包括计算GPA和按GPA排序的功能:

using System;
using System.Collections.Generic;
using System.Linq;

public class Student
{
    public string Name { get; set; }
    public List<Course> Courses { get; set; }

    public Student(string name)
    {
        Name = name;
        Courses = new List<Course>();
    }

    public void AddCourse(Course course)
    {
        Courses.Add(course);
    }

    public double CalculateGPA()
    {
        double totalCredits = 0;
        double totalGradePoints = 0;

        foreach (var course in Courses)
        {
            totalCredits += course.Credits;
            totalGradePoints += course.Credits * course.Grade;
        }

        return totalGradePoints / totalCredits;
    }
}

public class Course
{
    public string Name { get; set; }
    public int Credits { get; set; }
    public double Grade { get; set; }

    public Course(string name, int credits, double grade)
    {
        Name = name;
        Credits = credits;
        Grade = grade;
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        List<Student> students = new List<Student>();

        // 添加学生及其选修的课程及成绩
        Student student1 = new Student("张三");
        student1.AddCourse(new Course("数学", 3, 85));
        student1.AddCourse(new Course("英语", 4, 92));
        student1.AddCourse(new Course("物理", 3, 78));
        students.Add(student1);

        Student student2 = new Student("李四");
        student2.AddCourse(new Course("数学", 3, 90));
        student2.AddCourse(new Course("英语", 4, 88));
        student2.AddCourse(new Course("物理", 3, 95));
        students.Add(student2);

        // 计算每个学生的GPA
        foreach (var student in students)
        {
            double gpa = student.CalculateGPA();
            Console.WriteLine($"{student.Name} 的GPA为:{gpa}");
        }

        // 按GPA排序学生
        var sortedStudents = students.OrderByDescending(s => s.CalculateGPA()).ToList();

        Console.WriteLine("\n按GPA排序的学生列表:");
        foreach (var student in sortedStudents)
        {
            Console.WriteLine($"{student.Name} 的GPA为:{student.CalculateGPA()}");
        }
    }
}

在上面的程序中,我们定义了两个类StudentCourseStudent类表示学生,包含学生的姓名和选修的课程列表;Course类表示课程,包含课程的名称、学分和成绩。

Student类中,我们实现了AddCourse()方法用于添加学生的选修课程,以及CalculateGPA()方法用于计算学生的GPA。GPA的计算公式为每门课程的学分乘以该门课程的成绩,然后将所有课程的学分和成绩乘积相加,再除以总学分数。

Program类中,我们创建了两个学生对象,并为每个学生添加选修的课程及成绩。然后通过调用CalculateGPA()方法计算每个学生的GPA,并输出结果。

最后,我们使用LINQ中的OrderByDescending()方法对学生列表进行排序,按照GPA的值从高到低排序,并输出排序后的学生列表及其对应的GPA值

用C#设计学生成绩管理程序。根据学生选修的课程及课程学分和课程成绩计算GPA最后按GPA的值对学生进行排序。=

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

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