# 學生成績計算
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp10
{
internal class Program
{
static void Main(string[] args)
{
double[] scores = { 78, 56, 90 };
Student josh = new Student("Josh.Wang", 18, scores);
Console.WriteLine($"HI,{josh.Name} 您的年紀是:{josh.Age} 國英數成績分別是:{string.Join(", ", josh.Subjects)}");
josh.TotalScore();
josh.Average();
josh.Best();
josh.Low();
Console.ReadKey();
}
}
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public double[] Subjects { get; set; }
public Student(string name, int age, double[] subjects)
{
Name = name;
Age = age;
Subjects = subjects;
}
public void TotalScore()
{
double total = Subjects.Sum();
Console.WriteLine("您的總分是:" + total);
}
public void Average()
{
double average = Subjects.Average();
Console.WriteLine("您的平均成績是:" + average);
Pass(average);
}
public void Pass(double sum)
{
if (sum >= 60) Console.WriteLine("此次測驗及格。");
else Console.WriteLine("此次測驗不及格。");
}
public void Best()
{
double bestScore = Subjects.Max();
int bestIndex = Array.IndexOf(Subjects, bestScore);
string bestSubject = GetSubjectName(bestIndex);
Console.WriteLine($"最高分的科目是: {bestSubject},分數為: {bestScore}");
}
public void Low()
{
double lowScore = Subjects.Min();
int lowIndex = Array.IndexOf(Subjects, lowScore);
string lowSubject = GetSubjectName(lowIndex);
Console.WriteLine($"最低分的科目是: {lowSubject},分數為: {lowScore}");
}
private string GetSubjectName(int index)
{
string[] subjectNames = { "國文", "英文", "數學" };
return subjectNames[index];
}
}
}