C# 学生成绩管理系统:GPA计算和排序 - 代码示例
使用 C# 设计一个学生成绩管理程序,该程序可以输入多个学生信息,包括学号、姓名、课程名、课程学分和课程成绩。程序会根据学生的课程成绩计算 GPA,并按 GPA 从高到低对学生进行排序。
GPA 的计算规则如下:
if (CourseArray[i].Grade <= 59)
GPA = 0;
if (CourseArray[i].Grade <= 69 && CourseArray[i].Grade >= 60)
GPA = 1.0;
if (CourseArray[i].Grade <= 79 && CourseArray[i].Grade >= 70)
GPA = 2.0;
if (CourseArray[i].Grade <= 89 && CourseArray[i].Grade >= 80)
GPA = 3.0;
if (CourseArray[i].Grade <= 100 && CourseArray[i].Grade >= 90)
GPA = 4.0;
分析:
-
该程序需要设计一个学生类,包含学号、姓名、课程名、课程学分和课程成绩等属性。
-
用户可以通过输入多个学生的信息来创建学生对象,并将这些学生对象存储在一个学生数组中。
-
然后,需要根据学生的课程成绩计算 GPA。根据给出的条件,可以使用一系列的 if 语句来判断成绩所对应的 GPA 值。
-
计算完每个学生的 GPA 后,可以使用某种排序算法(如冒泡排序或快速排序)对学生数组按照 GPA 值进行排序。
-
最后,将排序后的学生数组输出,即可得到按 GPA 值从高到低排序的学生信息。
代码示例:
using System;
using System.Collections.Generic;
class Student
{
public string StudentNumber { get; set; }
public string Name { get; set; }
public string CourseName { get; set; }
public int CourseCredit { get; set; }
public int Grade { get; set; }
public double GPA { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Student> studentList = new List<Student>();
// 输入学生信息
Console.WriteLine('请输入学生信息(输入exit退出):');
string input;
while ((input = Console.ReadLine()) != 'exit')
{
string[] info = input.Split(' ');
Student student = new Student
{
StudentNumber = info[0],
Name = info[1],
CourseName = info[2],
CourseCredit = int.Parse(info[3]),
Grade = int.Parse(info[4])
};
studentList.Add(student);
}
// 计算 GPA 并排序
foreach (Student student in studentList)
{
if (student.Grade <= 59)
student.GPA = 0;
else if (student.Grade <= 69)
student.GPA = 1.0;
else if (student.Grade <= 79)
student.GPA = 2.0;
else if (student.Grade <= 89)
student.GPA = 3.0;
else
student.GPA = 4.0;
}
studentList.Sort((s1, s2) => s2.GPA.CompareTo(s1.GPA));
// 输出排序结果
Console.WriteLine('按 GPA 值从高到低排序的学生信息:');
foreach (Student student in studentList)
{
Console.WriteLine($'{student.StudentNumber} {student.Name} {student.CourseName} {student.GPA}');
}
}
}
以上代码实现了一个简单的学生成绩管理程序,通过输入学生信息,计算 GPA 并按 GPA 值从高到低排序输出。你可以根据实际需求进行修改和完善。
原文地址: http://www.cveoy.top/t/topic/pMwt 著作权归作者所有。请勿转载和采集!