语言:C#。题目:3.键盘接收n位同学姓名和成绩,输出分数最高的同学的姓名和分数,输出他们的平均分和高于平均分的同学姓名。完整代码
时间: 2024-10-09 19:03:07 浏览: 16
在C#中,为了实现这个功能,我们可以创建一个简单的控制台应用程序。首先,我们需要定义一个结构体来存储学生的信息,包括姓名和成绩。然后,我们将输入的学生信息存入一个动态数组或列表中,并计算最高分、平均分以及高于平均分的学生名单。
以下是完成此任务的一个简化的C#代码示例:
```csharp
using System;
using System.Collections.Generic;
class Student
{
public string Name { get; set; }
public int Score { get; set; }
}
class Program
{
static void Main()
{
Console.Write("请输入学生人数: ");
int n = Convert.ToInt32(Console.ReadLine());
List<Student> students = new List<Student>();
for (int i = 0; i < n; i++)
{
Console.WriteLine($"请输入第{i + 1}名学生的姓名: ");
string name = Console.ReadLine();
Console.Write($"请输入第{i + 1}名学生的成绩: ");
int score = Convert.ToInt32(Console.ReadLine());
students.Add(new Student { Name = name, Score = score });
}
// 找出最高分学生
Student maxScoreStudent = students.OrderByDescending(s => s.Score).First();
double averageScore = CalculateAverage(students);
Console.WriteLine($"最高分学生是:{maxScoreStudent.Name}, 分数:{maxScoreStudent.Score}");
// 输出平均分
Console.WriteLine($"平均分为:{averageScore:F2}");
// 高于平均分的学生列表
List<Student> aboveAverageStudents = GetAboveAverage(students, averageScore);
Console.WriteLine("高于平均分的学生有:");
foreach (Student student in aboveAverageStudents)
{
Console.WriteLine($"{student.Name}: {student.Score}");
}
Console.ReadKey();
}
private static double CalculateAverage(List<Student> students)
{
int totalScore = 0;
foreach (Student student in students)
{
totalScore += student.Score;
}
return (double)totalScore / students.Count;
}
private static List<Student> GetAboveAverage(List<Student> students, double average)
{
return students.Where(s => s.Score > average).ToList();
}
}
```
在这个程序中,用户会被提示输入每位同学的姓名和成绩。然后,我们计算最高分学生、平均分并找出高于平均分的学生。`CalculateAverage`和`GetAboveAverage`方法分别用于计算总分和筛选高分学生。
阅读全文