私は大学一年生で、プログラミングの宿題に問題があります。講師から受け取った宿題は、Java でプログラムを作成して、学生の情報を取得し、学生が受講する科目数を選択できるようにし、点数と単位時間を入力し、その後に計算式を追加することでした。成績と科目の成績ポイント。プログラムの最後に、プログラムは学生情報 (名前、ID など) と、入力されたすべての科目の合計科目成績ポイント、すべての科目の合計クレジット時間、および累積成績ポイント平均を出力できます。 (CGPA)。
ただし、ここには3つの問題があります
- ユーザーが入力したい件名の数を読み取るために設定したループに問題があります。
- "Grade = " + subjectGrade); を印刷しようとしたとき。私のコンパイラは、初期化されていないと言っています。同じことが GradePoint と subjectCreditHour にも当てはまります。
- また、科目の成績合計点、総単位時間数、および CGPA をプログラムに計算させる方法がわかりませんでした。ユーザーが必要とするサブジェクトの数によっては、プログラムにユーザーの入力を取り込み、それらを合計する方法がわかりません。
私のコードは次のようになります:
package javaquiz1;
import java.util.Scanner;
/**
*
* @author jerem_000
*/
public class JavaQuiz1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner (System.in);
String name;
int ID;
int tel;
String email;
int subjects;
String subjectName;
int subjectCreditHour;
int subjectMark;
String subjectGrade;
double GradePoint;
double subjectGradePoint;
double CGPA;
double totalSubjectGP;
int totalCreditHour;
System.out.print("Please input student's name : ");
name = input.nextLine();
System.out.print("Please input student's ID : ");
ID = input.nextInt();
System.out.print("Please input student's telephone number : ");
tel = input.nextInt();
System.out.print("Please input student's email : ");
email = input.next();
System.out.print("Please input number of subjects : ");
subjects = input.nextInt();
for (int i = 1; i >= subjects ; i++) { //I'm having an issue with this loop
System.out.println("Subject " + i + " : Please input the following"); //I placed the variable i there in order to make the program print something like "Subject 1 , Subject 2, Subject 3 etc". Depending on the user's number of subjects input
System.out.print("Subject name : ");
subjectName = input.next();
System.out.print("Credit Hour : ");
subjectCreditHour = input.nextInt();
System.out.print("Mark : ");
subjectMark = input.nextInt();
if ( subjectMark >= 80 ) {
subjectGrade = "A";
GradePoint = 4.0;
} else if (subjectMark < 80) {
subjectGrade = "B+";
GradePoint = 3.5;
} else if (subjectMark < 70) {
subjectGrade = "B";
GradePoint = 3.0;
} else if (subjectMark < 65) {
subjectGrade = "C+";
GradePoint = 2.5;
} else if (subjectMark < 55) {
subjectGrade = "C";
GradePoint = 2.0;
} else if (subjectMark < 50) {
subjectGrade = "D";
GradePoint = 1.0;
} else {
subjectGrade = "F";
GradePoint = 0.0;
}
}
System.out.println("Grade = " + subjectGrade);
System.out.println("Subject Grade Point = " + (GradePoint * subjectCreditHour)); //I'm having a problem with the subjectGrade, GradePoint, and subjectCreditHour, it says variable might have not been initialized
System.out.println("Name : " + name);
System.out.println("ID : " + ID);
System.out.println("Tel : " + tel);
System.out.println("email : " + email);
System.out.print("Total subject Grade Points = " );
System.out.print("Total Credit Hours = " );
System.out.print("Cumulative Grade Point Average ="); //On this 3 system.out.prints, I can't seem to think of a way to read the Grade Point, Total Credit Hours, and CGPA, and add them all together
}
}
また、プログラムがどのようにあるべきかについての出力例もあります。
Please input student's name : James Cook
Please input student's ID : 0106578
Please input student's tel : 010783938
Please input student's e-mail : jcook@gmail.com
Please input number of subjects : 3
Subject 1 : Please input the following
Subject name : Fundamentals of Programming
Credit Hour : 4
Mark : 78
Grade : B+
Subject Grade Point : 14.0
Subject 2 : Please input the following
Subject name : English
Credit Hour : 3
Mark : 85
Grade : A
Subject Grade Point : 12.0
Subject 3 : Please input the following
Subject name : Computer Fundamentals
Credit Hour : 3
Mark : 78
Grade : B+
Subject Grade Point : 10.5
Name : James Cook
ID : 0106578
tel : 010783938
e-mail : jcook@gmail.com
Total subject Grade Point = 36.5
Total Credit Hours = 10
CGPA = 3.65
科目の成績ポイントを計算する式は、subjectGradePoint = GradePoint * CreditHour です。
CGPA (累積成績平均点) を計算する式は、CGPA = totalSubjectGP / totalCreditHours です。
今後の改善のために、訂正、批判、アドバイスを歓迎します。前もって感謝します!