In: Computer Science
Lab 3 Java Classes and Memory Management
Multi-file Project
public class Student
{
private String fName ;
private String lName ;
private double[] grades;
}
This class should be in the package com.csc241. Write a program that prompts a user for a total number of students and dynamically allocates memory for just that number of Student objects in a Student[]. Then continuously re-prompt the user to enter, on a studentbystudent basis,
Next,
As always, keep in mind all of the general rules of good program construction.
How many students are in your class - 3
Enter the first name of student #1 - Joe
Enter Mike’s last name - Shmo
How many grades will you be entering for Joe Shmo? – 5
Plz enter the grades for Joe Shmo
100
97
87
87
92
Grade Statistics for Joe Shmo (average=92.6 ; max/min=100/87)
Enter the first name of student #2 - Jack
Enter Jack’s last name - Schwartz
How many grades will you be entering for Jack Schwartz? – 3
Plz enter the grades for Jack Schwartz
100
90
0
Grade Statistics for Jack Schwartz (average=63.3 ; max/min=100/0)
Enter the first name of student #3 - Joan
Enter Joan’s last name - Jameson
How many grades will you be entering for Joan Jameson? – 4
Plz enter the grades for Joan Jameson
98
95
93
94
Grade Statistics for Joan Jameson (average=95.0 ; max/min=98/93)
Ensemble Statistics - Average=86.1 ; Max/Min=100/0)
Do you wish to continue (Y/N) - n
//Java code
package com.csc241;
public class Student
{
private String fName ;
private String lName ;
private double[] grades;
//Constructor
public Student()
{
fName = "None";
lName ="None";
grades = null;
}
//Overload Constructor
public Student(String fName, String lName, double[] grades) {
this.fName = fName;
this.lName = lName;
this.grades = grades;
}
//getters and setters
public String getfName() {
return fName;
}
public void setfName(String fName) {
this.fName = fName;
}
public String getlName() {
return lName;
}
public void setlName(String lName) {
this.lName = lName;
}
public double[] getGrades() {
return grades;
}
public void setGrades(double[] grades) {
this.grades = grades;
}
public double getAverage()
{
double sum =0;
for (int i = 0; i <grades.length ; i++) {
sum += grades[i];
}
double avg = sum/grades.length;
return avg;
}
public double getMax()
{
double max = grades[0];
for (int i = 0; i <grades.length ; i++) {
if(max<grades[i])
max = grades[i];
}
return max;
}
public double getMin()
{
double min = grades[0];
for (int i = 0; i <grades.length ; i++) {
if(min>grades[i])
min = grades[i];
}
return min;
}
@Override
public String toString() {
return "Grade Statistics for "+fName+" "+lName+"(average = "+String.format("%.1f",getAverage())+"; max/min = "+String.format("%.0f",getMax())+"/"+String.format("%.0f",getMin())+")";
}
}
//==================================
import com.csc241.Student;
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
//Create student object
Student student = new Student();
//For user input
Scanner input = new Scanner(System.in);
Student[] students;
System.out.print("How many students are in your class: ");
int numberOfStudents = input.nextInt();
students = new Student[numberOfStudents];
for (int i = 0; i <students.length ; i++) {
System.out.print("Enter the first name of student #"+(i+1)+": ");
student.setfName(input.next());
System.out.print("Enter "+student.getfName()+"'s last name: ");
student.setlName(input.next());
System.out.print("How many grades will you be entering for "+student.getfName()+" "+student.getlName()+"? ");
int gradeSize = input.nextInt();
double[] grades = new double[gradeSize];
System.out.print("Plz enter the grades for "+student.getfName()+" "+student.getlName()+"\n");
for (int j = 0; j <grades.length ; j++) {
grades[j] = input.nextDouble();
}
student.setGrades(grades);
students[i] = student;
System.out.println(students[i]);
}
}
}
//Output

//If you need any help regarding this solution .......... please leave a comment ...... thanks