私はすでに作成したプロジェクトにビルドしています。これは辞書/リストを使用する私の最初の試みです。これは非常に広範な質問です。私が持っている本は辞書をまったく使っていないため、オンラインでのユーザー入力で辞書の例を見つけることができません。私は、ユーザーに多数の学生と多数の試験を求め、次に各試験のスコアを入力させ、試験の得点に基づいて各生徒の平均成績を出力する多次元配列を使用してプログラムを作成しました。私は今、配列の代わりに辞書とリストを使用して、同じことを達成したい。私はどこから始めるべきか分からない。誰でもこれがどのように機能するのか説明できますか?C#辞書とリストをユーザー入力と共に使用するにはどうすればよいですか?
class MainClass
{
public static void Main(string[] args)
{
int TotalStudents = 0;
int TotalGrades = 0;
Console.WriteLine("Enter the number of students: ");
TotalStudents = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the number of exams: ");
TotalGrades = Convert.ToInt32(Console.ReadLine());
int[,] scoresArray = new int[TotalStudents, TotalGrades];
for (int r = 0; r < TotalStudents; r++)
for (int c = 0; c < TotalGrades; c++)
{
Console.Write("Please enter exam score {0} for student {1}: ", c + 1, r + 1);
scoresArray[r, c] = Convert.ToInt32(Console.ReadLine());
}
for (int r = 0; r < scoresArray.GetLength(0); r++)
{
int studentSum = 0;
int testCount = 0;
for (int c = 0; c < scoresArray.GetLength(1); c++)
{
studentSum += scoresArray[r, c];
testCount++;
}
string gradeLetter = "";
double average = studentSum/testCount;
Console.WriteLine("\nStudent " + (r + 1).ToString() + " Average Score: " + average.ToString());
if (average >= 90)
{
gradeLetter = "A";
}
else if (average >= 80 && average < 90)
{
gradeLetter = "B";
}
else if (average >= 70 && average < 80)
{
gradeLetter = "C";
}
else if (average >= 60 && average < 70)
{
gradeLetter = "D";
}
else
{
gradeLetter = "F";
}
Console.WriteLine("Student " + (r + 1).ToString() + " will recieve a(n) " + gradeLetter + " in the class.\n");
}
Console.Write("\nPress the [ENTER] key to exit.");
Console.ReadLine();
}
}
ヒント:* student *をスコア*のリストにマッピングする辞書を作成します。 –
このコードはコンパイルされません。コンパイルに必要な完全なコードだけを投稿してください。 – Sach
'Dictionary>'ここで、stringは学生IDであり、リスト 'List 'はテストのスコアです。文字列の値はキーであり、値はリストです。 –