C# 学生成绩管理程序:计算 GPA 并排序 - 代码示例和分析
使用 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
// 计算 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 著作权归作者所有。请勿转载和采集!