I have the first and last parts of this figured out (I think) but having trouble
ID: 3798779 • Letter: I
Question
I have the first and last parts of this figured out (I think) but having trouble with the InputGrades section. Any help would be appreciated.
CollegeCourse.java
public class CollegeCourse
{
private String courseID;
private int credits;
private char grade;
public String getID()
{
return courseID;
}
public int getCredits()
{
return credits;
}
public char getGrade()
{
return grade;
}
public void setID(String idNum)
{
courseID = idNum;
}
public void setCredits(int cr)
{
credits = cr;
}
public void setGrade(char gr)
{
grade = gr;
}
}
InputGrades.java
import javax.swing.*;
public class InputGrades
{
public static void main(String[] args)
{
//Problem area
Student[] students = new Student[10];
int x, y, z;
String courseEntry, entry = "", message;
int idEntry, credits;
char gradeEntry = ' ';
boolean isGoodGrade = false;
char[] grades = {'A', 'B', 'C', 'D', 'F'};
for(x = 0; x < students.length; ++x)
{
//Problem area
Student stu = new Student();
entry = JOptionPane.showInputDialog(null, "For student #" +
(x + 1) + ", enter the student ID");
idEntry = Integer.parseInt(entry);
stu.setID(idEntry);
for(y = 0; y < 5; ++y)
{
courseEntry = JOptionPane.showInputDialog(null,
"For student #" + (x + 1) + ", enter course #" +
(y + 1));
entry = JOptionPane.showInputDialog(null,
"For student #" + (x + 1) +
", enter credits for course #" + (y + 1));
credits = Integer.parseInt(entry);
isGoodGrade = false;
while(!isGoodGrade)
{
entry = JOptionPane.showInputDialog(null,
"For student #" + (x + 1) +
", enter grade for course #" + (y + 1));
gradeEntry = entry.charAt(0);
for(z = 0; z < grades.length; ++z)
{
if(gradeEntry == grades[z])
isGoodGrade = true;
}
}
CollegeCourse temp = new CollegeCourse();
temp.setID(courseEntry);
temp.setCredits(credits);
temp.setGrade(gradeEntry);
stu.setCourse(temp, y);
}
students[x] = stu;
}
for(x = 0; x < students.length; ++x)
{
message = "Student #" + (x + 1) + " ID #" +
students[x].getID();
for(y = 0; y < 5; ++y)
{
CollegeCourse temp = new CollegeCourse();
temp = students[x].getCourse(y);
message = message + " " + temp.getID() +
" " + temp.getCredits() + " credits. Grade is " +
temp.getGrade();
JOptionPane.showMessageDialog(null,message);
}
System exit(0);
}
}
}
stuID.java
public class stuID
{
private int stuID;
private CollegeCourse[] course = new CollegeCourse[5];
public int getID()
{
return stuID;
}
public CollegeCourse getCourse(int x)
{
return this.course[x];
}
public void setID(int idNum)
{
stuID = idNum;
}
public void setCourse(CollegeCourse c, int x)
{
course[x] = c;
}
}
Explanation / Answer
// CollegeCourse.java
public class CollegeCourse
{
private String courseID;
private int credits;
private char grade;
public String getID()
{
return courseID;
}
public int getCredits()
{
return credits;
}
public char getGrade()
{
return grade;
}
public void setID(String idNum)
{
courseID = idNum;
}
public void setCredits(int cr)
{
credits = cr;
}
public void setGrade(char gr)
{
grade = gr;
}
}
// InputGrades.java
import javax.swing.*;
public class InputGrades
{
public static void main(String[] args)
{
//Problem area
Student[] students = new Student[10];
int x, y, z;
String courseEntry, entry = "", message;
int idEntry, credits;
char gradeEntry = ' ';
boolean isGoodGrade = false;
char[] grades = {'A', 'B', 'C', 'D', 'F'};
for(x = 0; x < students.length; ++x)
{
//Problem area
Student stu = new Student();
entry = JOptionPane.showInputDialog(null, "For student #" +
(x + 1) + ", enter the student ID");
idEntry = Integer.parseInt(entry);
stu.setID(idEntry);
for(y = 0; y < 5; ++y)
{
courseEntry = JOptionPane.showInputDialog(null,
"For student #" + (x + 1) + ", enter course #" +
(y + 1));
entry = JOptionPane.showInputDialog(null,
"For student #" + (x + 1) +
", enter credits for course #" + (y + 1));
credits = Integer.parseInt(entry);
isGoodGrade = false;
while(!isGoodGrade)
{
entry = JOptionPane.showInputDialog(null,
"For student #" + (x + 1) +
", enter grade for course #" + (y + 1));
gradeEntry = entry.charAt(0);
for(z = 0; z < grades.length; ++z)
{
if(gradeEntry == grades[z])
isGoodGrade = true;
}
}
CollegeCourse temp = new CollegeCourse();
temp.setID(courseEntry);
temp.setCredits(credits);
temp.setGrade(gradeEntry);
stu.setCourse(temp, y);
}
students[x] = stu;
}
for(x = 0; x < students.length; ++x)
{
message = "Student #" + (x + 1) + " ID #" +
students[x].getID();
for(y = 0; y < 5; ++y)
{
CollegeCourse temp = new CollegeCourse();
temp = students[x].getCourse(y);
message = message + " " + temp.getID() +
" " + temp.getCredits() + " credits. Grade is " +
temp.getGrade();
JOptionPane.showMessageDialog(null,message);
}
System.exit(0);
}
}
}
// Student.java
public class Student // there was your error. The class has to be named Student, not stuID
{
private int stuID;
private CollegeCourse[] course = new CollegeCourse[5];
public int getID()
{
return stuID;
}
public CollegeCourse getCourse(int x)
{
return this.course[x];
}
public void setID(int idNum)
{
stuID = idNum;
}
public void setCourse(CollegeCourse c, int x)
{
course[x] = c;
}
}