如何使用C#编程来实现一个功能,即输入每个学生三门课程的成绩,计算并输出每个学生的总分和平均分。接着,程序应统计总分超过260分的学生人数,以及根据平均分分别计算及格(60分及以上)和不及格(低于60分)的人数?请提供相关的C#代码示例。
时间: 2024-11-13 13:25:24 浏览: 4
编写学生成绩单程序 由于计算和显示5个学科的总分和平均分;
为了实现这个功能,你可以创建一个`Student`类,包含姓名、成绩列表和一些辅助方法来计算总分和平均分。首先,我们需要定义`Course`结构体表示一门课程:
```csharp
public struct Course
{
public string Name;
public int Score;
}
```
然后,创建`Student`类:
```csharp
public class Student
{
public string Name { get; set; }
private List<Course> Scores = new List<Course>();
// 添加成绩方法
public void AddScore(string courseName, int score)
{
Scores.Add(new Course { Name = courseName, Score = score });
}
// 计算总分和平均分
public int TotalScore => Scores.Sum(course => course.Score);
public double AverageScore => Scores.Average(course => course.Score);
// 判断是否及格
public bool IsPass => AverageScore >= 60;
}
```
接下来,创建主程序来获取用户输入,处理数据,并统计结果:
```csharp
using System;
class Program
{
static void Main()
{
Console.WriteLine("请输入学生信息(按Enter结束):");
while (true)
{
Console.Write("姓名: ");
string name = Console.ReadLine();
if (string.IsNullOrEmpty(name)) break;
Student student = new Student();
student.Name = name;
for (int i = 1; ; i++)
{
Console.Write($"第{i}门课程名称(输入'q'退出): ");
string courseName = Console.ReadLine();
if (courseName.ToLower() == "q") break;
Console.Write($"第{i}门课程分数: ");
int score = int.Parse(Console.ReadLine());
student.AddScore(courseName, score);
}
Console.WriteLine($"{student.Name} 总分: {student.TotalScore}, 平均分: {student.AverageScore}");
Console.WriteLine($"及格: {student.IsPass ? "是" : "否"}, 不及格: {(student.IsPass ? "" : "是")}");
Console.WriteLine("\n");
}
// 统计总分超过260分的学生人数和及格、不及格的人数
int highScoringCount = 0;
int passCount = 0;
int failCount = 0;
foreach (var student in /*遍历所有学生*/)
{
if (student.TotalScore > 260) highScoringCount++;
if (student.IsPass) passCount++;
else failCount++;
}
Console.WriteLine($"总分超过260分的学生有{highScoringCount}人,及格学生有{passCount}人,不及格学生有{failCount}人.");
}
}
```
在`Main`函数里,你需要添加一行代码来遍历所有学生,统计高分、及格和不及格的学生人数。这通常是通过集合(如List<Student>)来完成的,但在本例中我没有直接展示如何做到这一点,因为完整的代码会更复杂一些。
阅读全文