私は学生であり、課題に関するヘルプを探しています。タスクは次のとおりです。CollegeCourseクラスを作成します。クラスには、コースID(「CIS 210」など)、クレジット時間(たとえば3)、および文字グレード(「A」など)のフィールドが含まれています。Javaを渡すクラス配列を配列に
フィールドごとにget()メソッドとset()メソッドをインクルードします。 ID番号と5つのCollegeCourseオブジェクトの配列を含むStudentクラスを作成します。 Student ID番号のget()およびset()メソッドを作成します。また、StudentのCollegeCoursesの1つを返すget()メソッドを作成します。このメソッドは整数引数を取り、その位置にCollegeCourseを返します(0〜4)。次に、Student's CollegeCoursesの1つの値を設定するset()メソッドを作成します。このメソッドは、CollegeCourseとCollegeCourseの位置(0〜4)を表す整数の2つの引数をとります。
私はコース配列にデータを取得しようとしている2番目のforループでランタイムエラーが発生しています。 CourseIDとHoursの両方を同じ行に入力するように求めています。エラーに遭遇しても、エラーは発生していますが、同時にすべての配列変数を取得しようとしているようです。ここに3つのクラスを含む私のコードです。正しい方向に私を送ってくれる人の助けを借りて感謝します。 input.nextInt()
後
public class CollegeCourse {
private String courseId;
private int creditHours;
private char grade;
public CollegeCourse(String id, int hours, char grade)
{
courseId=id;
creditHours = hours;
this.grade = grade;
}
public void setCourseId(String id)
{
courseId = id;//Assign course id to local variable
}
public String getCourseId()
{
return courseId;//Provide access to course id
}
public void setHours(int hours)
{
creditHours = hours;//Assign course id to local variable
}
public int getHours()
{
return creditHours;//Provide access to course id
}
public void setGrade(char grade)
{
this.grade = grade;//Assign course id to local variable
}
public char getGrade()
{
return grade;//Provide access to course id
}
}
学生クラス
public class Student {
final int NUM_COURSES = 5;
private int studentId;
private CollegeCourse courseAdd;//Declares a course object
private CollegeCourse[] courses = new CollegeCourse[NUM_COURSES];
//constructor using user input
public Student(int studentId)
{
this.studentId=studentId;
}
public void setStudentId(int id)
{
studentId = id;//Assign course id to local variable
}
public int getStudentId()
{
return studentId;//Provide access to course id
}
public void setCourse(int index, CollegeCourse course)
{
courses[index] = course;
}
public CollegeCourse getCourse(int index)
{
return courses[index];
//do I need code to return the courseId hours, grade
}
}
InputGradesクラス
import java.util.Scanner;
public class InputGrades {
public static void main(String[] args) {
final int NUM_STUDENTS = 2;
final int NUM_COURSES = 3;
Student[] students = new Student[NUM_STUDENTS];
int s;//subscript to display the students
int c;//subscript to display courses
int stId;
int csIndex;
String courseId = "";
int hours = 0;
//String gradeInput;
char grade = 'z';
CollegeCourse course = new CollegeCourse(courseId,hours, grade);//not sure if I am handling this correctly
Scanner input = new Scanner(System.in);
for(s = 0; s<NUM_STUDENTS; ++s)
{
students[s] = new Student(s);
System.out.print("Enter ID for student #" + (s+1) + ":");
stId = input.nextInt();
input.nextLine();
students[s].setStudentId(stId);
for(c=0; c < NUM_COURSES; ++c)
{
csIndex=c;
System.out.print("Enter course ID #" + (c+1) + ":");
courseId = input.nextLine();
course.setCourseId(courseId);
System.out.print("Enter hours:");
hours = input.nextInt();
input.nextLine();
course.setHours(hours);
String enteredGrade = "";
while(enteredGrade.length()!=1) {
System.out.print("Enter grade:");
enteredGrade = input.nextLine();
if(enteredGrade.length()==1) {
grade = enteredGrade.charAt(0);
} else {
System.out.println("Type only one character!");
}
}
course.setGrade(grade);
students[s].setCourse(csIndex, course);
}
}
for(s = 0; s<NUM_STUDENTS; ++s)
{
System.out.print("\nStudent# " +
students[s].getStudentId());
System.out.println();
for(c=0;c<NUM_COURSES;++c)
System.out.print(students[s].getCourse(c) + " ");
System.out.println();
}
}
}
あなたのエラーが何であるか、この質問を参照してください? – xro7
どのような例外がスローされますか? –
エラーの完全なStactraceを投稿して、それが起こっている行を示すことができますか?それは多くの助けになります – Gumbo