
Patrick B. answered 05/05/21
Math and computer tutor/teacher
class StudentGradeRec
{
protected String studentName;
protected double grades[];
protected int numGrades;
public StudentGradeRec( String nameStr, int numGrades)
{
studentName = new String(nameStr);
grades = new double[numGrades];
this.numGrades = numGrades;
}
public String GetStudentName() { return(studentName); }
public double IndexerGetGradeAtIndex(int iIndexPos)
{
double GradeReturn=-1;
if (iIndexPos>=0 && iIndexPos<numGrades)
{
GradeReturn = grades[iIndexPos];
}
return(GradeReturn);
}
public int IndexerSetGradeAtIndex(int iIndexPos, double grade)
{
int iReturn=0;
if (iIndexPos>=0 && iIndexPos<numGrades)
{
grades[iIndexPos]=grade;
}
else
{
iReturn=-1;
}
return(iReturn);
}
public double GetGradeAverage()
{
double sumGrade=0;
double gradeAvg=-1;
for (int iLoop=0; iLoop<numGrades; iLoop++)
{
sumGrade += grades[iLoop];
}
if (numGrades>0) { gradeAvg = sumGrade/numGrades; }
return(gradeAvg);
}
//deep copies
public StudentGradeRec( StudentGradeRec studentGradeRec)
{
this.studentName = new String(studentGradeRec.studentName);
this.numGrades = studentGradeRec.numGrades;
this.grades = new double[this.numGrades];
for (int iLoop=0; iLoop<this.numGrades; iLoop++)
{
this.grades[iLoop] = studentGradeRec.grades[iLoop];
}
}
public void Dump(String msgStr)
{
if (msgStr!=null)
{
System.out.println("*******************************************");
System.out.println(msgStr);
}
System.out.println(" Student Name :>" + studentName + "<");
for (int iLoop=0; iLoop<numGrades; iLoop++)
{
System.out.println(grades[iLoop]);
}
}
}
/************************************************************************************/
class Gradebook
{
protected StudentGradeRec gradebook[];
protected int numStudents;
public Gradebook ( int n)
{
numStudents = n;
gradebook = new StudentGradeRec[n];
for (int iLoop=0; iLoop<n; iLoop++)
{
gradebook[iLoop]=null;
}
}
public int GetNumStudents() { return(numStudents); }
public StudentGradeRec IndexerGetStudentGradeRecAtIndex( int iIndexPos)
{
StudentGradeRec studentGradeRecReturn=null;
if ( iIndexPos>=0 && iIndexPos < numStudents)
{
studentGradeRecReturn = gradebook[iIndexPos];
}
return(studentGradeRecReturn);
}
public int IndexerSetStudentGradeRecAtIndex(int iIndexPos, StudentGradeRec studentGradeRec)
{
int iReturn=0;
if ( iIndexPos>=0 && iIndexPos < numStudents)
{
gradebook[iIndexPos] = new StudentGradeRec(studentGradeRec);
}
else
{
iReturn=-1;
}
return(iReturn);
}
}
/*************************************************************/
import java.io.*;
import java.util.Scanner;
class StudentGradeMain
{
protected Gradebook Gradebook;
public static final String filename = "E:\\grades.dat";
protected int Read()
{
int iReturn=0;
int numStudents=-1;
int numGrades = -1;
String inbuff;
try
{
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader) ;
inbuff = bufferedReader.readLine();
String tokens[] = inbuff.split(",");
numStudents = Integer.parseInt(tokens[0].trim());
numGrades = Integer.parseInt(tokens[1].trim());
System.out.println(" # of students = " + numStudents);
System.out.println(" # of grade = " + numGrades);
Gradebook = new Gradebook(numStudents);
for (int studentLoop=0; studentLoop<numStudents; studentLoop++)
{
inbuff = bufferedReader.readLine();
tokens = inbuff.split(",");
Gradebook.gradebook[studentLoop] = new StudentGradeRec(tokens[0],numGrades);
for (int gradeLoop=0; gradeLoop<numGrades; gradeLoop++)
{
Gradebook.gradebook[studentLoop].IndexerSetGradeAtIndex(gradeLoop,Double.parseDouble(tokens[gradeLoop+1].trim()));
}
Gradebook.gradebook[studentLoop].Dump("student rec # " + (studentLoop+1) + " of " + numStudents);
}
bufferedReader.close();
}
catch (IOException ex)
{
iReturn=-1;
System.out.println(" ERROR READING/OPENING input file ");
}
return(iReturn);
}
public void Go()
{
Scanner scanner = new Scanner(System.in);
Read();
int iMenuChoice = -1;
while (iMenuChoice!=0)
{
while (iMenuChoice<0 || iMenuChoice>3)
{
System.out.println("*****************************************");
System.out.println(" <1> Failing Students (average<60) ");
System.out.println(" <2> Honor Roll Students (average>=90) ");
System.out.println(" <3> FULL GRADE REPORT ");
System.out.println("******************************************");
System.out.print(" Please input selection or ZER0 to quit :>");
iMenuChoice = scanner.nextInt();
}
if (iMenuChoice!=0)
{
int N = Gradebook.GetNumStudents();
for (int iLoop=0; iLoop<N; iLoop++)
{
StudentGradeRec curStudentGradeRec = Gradebook.gradebook[iLoop];
double gradeAvg = curStudentGradeRec.GetGradeAverage();
String studentName = curStudentGradeRec.GetStudentName();
if (
(iMenuChoice == 3) ||
( (iMenuChoice==2) && (gradeAvg>=90)) ||
( (iMenuChoice==1) && (gradeAvg<60))
)
{
System.out.println(studentName + " " + gradeAvg);
}
} //for
iMenuChoice=-1;
}
else
{
break;
}
} //while
} //Go
public static void main(String args[])
{
StudentGradeMain x = new StudentGradeMain();
x.Go();
}
}
Karanbir S.
I Got short and sweet. using System; public class Program { public static double[] arrayAvg(double[, ] a) { double[] tempArray = new double[a.GetLength(0)]; double sum = 0; for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < a.GetLength(1); j++) { sum = sum + a[i, j]; } double avg = sum / (a.GetLength(1)); tempArray[i] = avg; sum = 0; } return tempArray; } public static void Main() { Console.WriteLine("How many students do you have?"); int students = int.Parse(Console.ReadLine()); string[] names = new string[students]; Console.WriteLine("Type your students names, pressing enter after each one"); for (int i = 0; i < names.Length; i++) { names[i] = Console.ReadLine(); Console.Clear(); } Array.Sort(names); Console.WriteLine("How many grades for each student?"); int numofgrades = int.Parse(Console.ReadLine()); double[, ] grades = new double[students, numofgrades]; for (int i = 0; i < grades.GetLength(0); i++) { Console.WriteLine("Please enter the grades for " + names[i]); for (int j = 0; j < grades.GetLength(1); j++) grades[i, j] = double.Parse(Console.ReadLine()); } double[] myavg = arrayAvg(grades); Console.WriteLine("Here's your gradebook!"); for (int i = 0; i < students; i++) { Console.Write(names[i] + ": "); for (int j = 0; j < numofgrades; j++) Console.Write(grades[i, j] + " "); Console.Write("Final Average: " + myavg[i]); Console.WriteLine(); } Console.WriteLine("The following students failed: "); for(int i = 0; i05/07/21