Convert to C# import java.io.*; import java.text.NumberFormat; // for number for
ID: 3739719 • Letter: C
Question
Convert to C#
import java.io.*;
import java.text.NumberFormat; // for number formatting
public class ClassAverageBR
{
public static void main(String[] args) throws IOException
{
//declare and initialize variables
int score;
int sumOfScoresByStudent = 0;
int sumOfAllScores = 0;
double classAverage;
BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
String studentName;
String scoreStr;
String studentNameMessage = "Enter the name of the student:";
String numOfStudentStr = "Enter the number of students: ";
String numOfScoresStr = "Enter the number of scores to be entered per student: ";
String outputTable = "Names, scores, average scores, and letter grades: ";
NumberFormat numFormatter = NumberFormat.getNumberInstance();
numFormatter.setMinimumFractionDigits(1);
numFormatter.setMaximumFractionDigits(1);
//get input from user
System.out.println(numOfStudentStr);
int numOfStudents = Integer.parseInt(dataIn.readLine());
System.out.println(numOfScoresStr);
int numOfScores = Integer.parseInt(dataIn.readLine());
//declare arrays
int[][] scores = new int[numOfStudents][numOfScores];
String[] students = new String[numOfStudents];
double[] avgScores = new double[numOfStudents];
char[] letterGrades = new char[numOfStudents];
//get more user input, load arrays, and process data
for (int i = 0; i<numOfStudents; i++) // i loop is for students
{
System.out.println(studentNameMessage);
studentName = dataIn.readLine();
students[i] = studentName;
//add student to output string
outputTable += students[i] + " Scores: ";
for (int j = 0; j<numOfScores; j++) // j loop is for scores
{
System.out.println("Enter score " + (j + 1) + " for " + students[i] + ": ");
score = Integer.parseInt(dataIn.readLine());
scores[i][j] = score; // assign score to array
outputTable += scores[i][j] + " "; // add score to output
sumOfScoresByStudent += score; // accumulate for student
sumOfAllScores += score; // accumulate for all students
}// end j loop
avgScores[i] = (double) sumOfScoresByStudent / numOfScores;
letterGrades[i] = findGrade(avgScores[i]); // call findGrade method
// add average and grade to output
outputTable += "Avg: " + numFormatter.format(avgScores[i]) + " " + "Grade: " + letterGrades[i] + " ";
sumOfScoresByStudent = 0; // reset accumulator for a new student
}//end i loop
classAverage = (double) sumOfAllScores / (numOfStudents* numOfScores);
outputTable += " Overall class average =" + numFormatter.format(classAverage);
// display output
System.out.println(outputTable);
}// end main
// method for finding letter grade
public static char findGrade(double averageScore)
{
char theGrade;
if (averageScore >= 90)
theGrade = 'A';
else if (averageScore >= 80)
theGrade = 'B';
else if (averageScore >= 70)
theGrade = 'C';
else if (averageScore >= 60)
theGrade = 'D';
else
theGrade = 'F';
return theGrade;
}// end findGrade
}// end class
Explanation / Answer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassAverageBR
{
class ClassAverageBR
{
static void Main(string[] args)
{
//declare and initialize variables
int score;
int sumOfScoresByStudent = 0;
int sumOfAllScores = 0;
double classAverage;
string studentName;
string scoreStr;
string studentNameMessage = "Enter the name of the student:";
string numOfStudentStr = "Enter the number of students: ";
string numOfScoresStr = "Enter the number of scores to be entered per student: ";
string outputTable = "Names, scores, average scores, and letter grades: ";
// NumberFormat numFormatter = NumberFormat.getNumberInstance();
// numFormatter.setMinimumFractionDigits(1);
// numFormatter.setMaximumFractionDigits(1);
//get input from user
Console.WriteLine (numOfStudentStr);
int numOfStudents = Convert.ToInt32(Console.ReadLine ());
Console.WriteLine (numOfScoresStr);
int numOfScores = Convert.ToInt32(Console.ReadLine());
//declare arrays
int[,] scores = new int[numOfStudents,numOfScores];
string[] students = new String[numOfStudents];
double[] avgScores = new double[numOfStudents];
char[] letterGrades = new char[numOfStudents];
//get more user input, load arrays, and process data
for (int i = 0; i < numOfStudents; i++) // i loop is for students
{
Console.WriteLine (studentNameMessage);
studentName = Console.ReadLine() ;
students[i] = studentName;
//add student to output string
outputTable += students[i] + " Scores: ";
for (int j = 0; j < numOfScores; j++) // j loop is for scores
{
Console.WriteLine ("Enter score " + (j + 1) + " for " + students[i] + ": ");
score = Convert.ToInt32(Console.ReadLine() ) ;
scores[i,j] = score; // assign score to array
outputTable += scores[i,j] + " "; // add score to output
sumOfScoresByStudent += score; // accumulate for student
sumOfAllScores += score; // accumulate for all students
}// end j loop
avgScores[i] = (double)sumOfScoresByStudent / numOfScores;
letterGrades[i] = findGrade(avgScores[i]); // call findGrade method
// add average and grade to output
outputTable += "Avg: " + String.Format("{1:n}",avgScores[i]) + " " + "Grade: " + letterGrades[i] + " ";
sumOfScoresByStudent = 0; // reset accumulator for a new student
}//end i loop
classAverage = (double)sumOfAllScores / (numOfStudents * numOfScores);
outputTable += " Overall class average =" + String.Format("{1:n}", classAverage);
// display output
Console.WriteLine (outputTable);
}// end main
// method for finding letter grade
public static char findGrade(double averageScore)
{
char theGrade;
if (averageScore >= 90)
theGrade = 'A';
else if (averageScore >= 80)
theGrade = 'B';
else if (averageScore >= 70)
theGrade = 'C';
else if (averageScore >= 60)
theGrade = 'D';
else
theGrade = 'F';
return theGrade;
}
}
}