mirror of
https://github.com/dotnet/intro-to-dotnet-web-dev.git
synced 2025-12-06 05:32:03 +01:00
* started adding C# content * begin adding csharp project code * add csharp project code * added codespaces instructions * add license files * add license files * add csharp project 6
119 lines
4.2 KiB
C#
119 lines
4.2 KiB
C#
/*
|
|
This C# console application is designed to:
|
|
- Use arrays to store student names and assignment scores.
|
|
- Use a `foreach` statement to iterate through the student names as an outer program loop.
|
|
- Use an `if` statement within the outer loop to identify the current student name and access that student's assignment scores.
|
|
- Use a `foreach` statement within the outer loop to iterate though the assignment scores array and sum the values.
|
|
- Use an algorithm within the outer loop to calculate the average exam score for each student.
|
|
- Use an `if-elseif-else` construct within the outer loop to evaluate the average exam score and assign a letter grade automatically.
|
|
- Integrate extra credit scores when calculating the student's final score and letter grade as follows:
|
|
- detects extra credit assignments based on the number of elements in the student's scores array.
|
|
- divides the values of extra credit assignments by 10 before adding extra credit scores to the sum of exam scores.
|
|
- use the following report format to report student grades:
|
|
|
|
Student Grade
|
|
|
|
Sophia: 92.2 A-
|
|
Andrew: 89.6 B+
|
|
Emma: 85.6 B
|
|
Logan: 91.2 A-
|
|
*/
|
|
|
|
int examAssignments = 5;
|
|
|
|
string[] studentNames = new string[] { "Sophia", "Andrew", "Emma", "Logan" };
|
|
|
|
int[] sophiaScores = new int[] { 90, 86, 87, 98, 100, 94, 90 };
|
|
int[] andrewScores = new int[] { 92, 89, 81, 96, 90, 89 };
|
|
int[] emmaScores = new int[] { 90, 85, 87, 98, 68, 89, 89, 89 };
|
|
int[] loganScores = new int[] { 90, 95, 87, 88, 96, 96 };
|
|
|
|
int[] studentScores = new int[10];
|
|
|
|
string currentStudentLetterGrade = "";
|
|
|
|
// display the header row for scores/grades
|
|
Console.Clear();
|
|
Console.WriteLine("Student\t\tGrade\n");
|
|
|
|
/*
|
|
The outer foreach loop is used to:
|
|
- iterate through student names
|
|
- assign a student's grades to the studentScores array
|
|
- sum assignment scores (inner foreach loop)
|
|
- calculate numeric and letter grade
|
|
- write the score report information
|
|
*/
|
|
foreach (string name in studentNames)
|
|
{
|
|
string currentStudent = name;
|
|
|
|
if (currentStudent == "Sophia")
|
|
studentScores = sophiaScores;
|
|
|
|
else if (currentStudent == "Andrew")
|
|
studentScores = andrewScores;
|
|
|
|
else if (currentStudent == "Emma")
|
|
studentScores = emmaScores;
|
|
|
|
else if (currentStudent == "Logan")
|
|
studentScores = loganScores;
|
|
|
|
int sumAssignmentScores = 0;
|
|
decimal currentStudentGrade = 0;
|
|
int gradedAssignments = 0;
|
|
|
|
/*
|
|
the inner foreach loop sums assignment scores
|
|
extra credit assignments are worth 10% of an exam score
|
|
*/
|
|
foreach (int score in studentScores)
|
|
{
|
|
gradedAssignments += 1;
|
|
|
|
if (gradedAssignments <= examAssignments)
|
|
sumAssignmentScores += score;
|
|
else
|
|
sumAssignmentScores += score / 10;
|
|
}
|
|
|
|
currentStudentGrade = (decimal)(sumAssignmentScores) / examAssignments;
|
|
|
|
if (currentStudentGrade >= 97)
|
|
currentStudentLetterGrade = "A+";
|
|
else if (currentStudentGrade >= 93)
|
|
currentStudentLetterGrade = "A";
|
|
else if (currentStudentGrade >= 90)
|
|
currentStudentLetterGrade = "A-";
|
|
else if (currentStudentGrade >= 87)
|
|
currentStudentLetterGrade = "B+";
|
|
else if (currentStudentGrade >= 83)
|
|
currentStudentLetterGrade = "B";
|
|
else if (currentStudentGrade >= 80)
|
|
currentStudentLetterGrade = "B-";
|
|
else if (currentStudentGrade >= 77)
|
|
currentStudentLetterGrade = "C+";
|
|
else if (currentStudentGrade >= 73)
|
|
currentStudentLetterGrade = "C";
|
|
else if (currentStudentGrade >= 70)
|
|
currentStudentLetterGrade = "C-";
|
|
else if (currentStudentGrade >= 67)
|
|
currentStudentLetterGrade = "D+";
|
|
else if (currentStudentGrade >= 63)
|
|
currentStudentLetterGrade = "D";
|
|
else if (currentStudentGrade >= 60)
|
|
currentStudentLetterGrade = "D-";
|
|
else
|
|
currentStudentLetterGrade = "F";
|
|
|
|
// Student Grade
|
|
// Sophia: 92.2 A-
|
|
|
|
Console.WriteLine($"{currentStudent}\t\t{currentStudentGrade}\t{currentStudentLetterGrade}");
|
|
}
|
|
|
|
// required for running in VS Code (keeps the Output windows open to view results)
|
|
Console.WriteLine("\n\rPress the Enter key to continue");
|
|
Console.ReadLine();
|