使用 C# 设计学生成绩管理程序

本程序实现了一个简单的学生成绩管理系统,允许用户输入多个学生的学号、姓名和一门课程的成绩,并根据学生的课程成绩和学分计算 GPA。最后,程序会根据 GPA 值对学生进行排序,并输出排序结果。

程序功能

  • 输入学生信息:学号、姓名、课程名、课程学分、课程成绩
  • 计算 GPA:根据课程成绩的范围,计算对应的 GPA 值
  • 排序学生:按 GPA 值对学生进行降序排序
  • 输出排序后的学生信息

程序代码

```csharp using System; using System.Collections.Generic;

// 学生类 public class Student { public int StudentId { get; set; } public string Name { get; set; } public double GPA { get; set; } }

// 课程类 public class Course { public string Name { get; set; } public int Credits { get; set; } public int Grade { get; set; } }

// 成绩管理类 public class GradeManager { private List students = new List(); private Course[] courses = new Course[1];

// 计算 GPA
private double CalculateGPA(int grade)
{
    if (grade <= 59)
        return 0;
    if (grade <= 69 && grade >= 60)
        return 1.0;
    if (grade <= 79 && grade >= 70)
        return 2.0;
    if (grade <= 89 && grade >= 80)
        return 3.0;
    if (grade <= 100 && grade >= 90)
        return 4.0;
    return 0;
}

// 添加学生信息
public void AddStudent(int studentId, string name, int courseIndex, int grade)
{
    Student student = new Student
    {
        StudentId = studentId,
        Name = name,
        GPA = CalculateGPA(grade) * courses[courseIndex].Credits
    };
    students.Add(student);
}

// 排序学生
public void SortStudents()
{
    students.Sort((s1, s2) => s2.GPA.CompareTo(s1.GPA));
}

// 输出学生信息
public void PrintStudents()
{
    Console.WriteLine("学生信息:");
    Console.WriteLine("学号	姓名	GPA");
    foreach (Student student in students)
    {
        Console.WriteLine("{0}	{1}	{2:F2}", student.StudentId, student.Name, student.GPA);
    }
}

}

public class Program { public static void Main(string[] args) { GradeManager manager = new GradeManager();

    // 添加课程信息
    manager.courses[0] = new Course { Name = "计算机科学", Credits = 3, Grade = 0 };

    // 添加学生信息
    manager.AddStudent(1, "张三", 0, 85); // 课程成绩
    manager.AddStudent(2, "李四", 0, 92); // 课程成绩
    manager.AddStudent(3, "王五", 0, 78); // 课程成绩

    // 计算 GPA 和排序
    manager.SortStudents();

    // 输出学生信息
    manager.PrintStudents();

    Console.ReadKey();
}

}

<h2>程序分析</h2>
<p>该程序主要由三个类组成:</p>
<ul>
<li><b>Student 类</b>:代表一个学生,包含学号、姓名和 GPA 属性。</li>
<li><b>Course 类</b>:代表一门课程,包含课程名、课程学分和课程成绩属性。</li>
<li><b>GradeManager 类</b>:负责管理学生信息和课程信息,包括添加学生信息、计算 GPA、排序学生和输出学生信息等功能。</li>
</ul>
<p>程序的实现思路如下:</p>
<ol>
<li>创建 Student 类和 Course 类,定义学生和课程的属性。</li>
<li>创建 GradeManager 类,使用 List 和数组存储学生和课程信息。</li>
<li>在 GradeManager 类中实现 CalculateGPA 方法,根据课程成绩计算 GPA 值。</li>
<li>在 GradeManager 类中实现 SortStudents 方法,根据学生的 GPA 值对学生信息进行排序。</li>
<li>在主程序中,创建一个 GradeManager 对象,添加学生信息和课程信息,然后调用 SortStudents 方法对学生信息进行排序,最后调用 PrintStudents 方法输出排序后的学生信息。</li>
</ol>
<h2>心得</h2>
<p>通过这个项目,我学到了如何使用 C# 语言设计一个简单的学生成绩管理程序。通过定义类和使用对象,我可以更好地组织和管理程序中的数据,实现程序的功能。同时,我熟悉了 List 和数组的操作,以及排序算法的实现。通过这个项目的实践,我对 C# 的语法和面向对象的编程思想有了更深入的理解,并提升了自己的编程能力。</p>

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

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