使用csharp键盘接收n位同学姓名和成绩,输出分数最高的同学的姓名和分数,输出他们的平均分和高于平均分的同学姓名
时间: 2024-09-27 13:06:28 浏览: 3
在C#中,你可以通过控制台应用程序来实现这个功能。下面是一个简单的步骤示例:
1. 定义一个学生类(Student),包含姓名(Name)和成绩(Score)属性。
```csharp
public class Student
{
public string Name { get; set; }
public int Score { get; set; }
}
```
2. 创建一个方法来接收输入并存储学生的数据,直到达到指定的N位同学。
```csharp
static void Main(string[] args)
{
Console.Write("请输入学生数量(N位同学):");
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.WriteLine($"请输入第{i + 1}位同学的成绩:");
int score = Convert.ToInt32(Console.ReadLine());
students.Add(new Student { Name = name, Score = score });
}
```
3. 计算最高分、平均分以及高于平均分的学生列表。
```csharp
// 寻找最高分
var maxScoreStudent = students.OrderByDescending(s => s.Score).First();
Console.WriteLine($"最高分学生:{maxScoreStudent.Name}, 分数:{maxScoreStudent.Score}");
// 计算平均分
double averageScore = students.Average(s => s.Score);
Console.WriteLine($"平均分:{averageScore}");
// 找出高于平均分的学生
List<Student> aboveAverageStudents = students.Where(s => s.Score > averageScore).ToList();
Console.WriteLine("高于平均分的学生有:");
foreach (Student student in aboveAverageStudents)
{
Console.WriteLine($"{student.Name}, 分数:{student.Score}");
}
// 程序主循环结束前等待用户按下任意键退出
Console.ReadKey();
}
```