0

私は大学一年生で、プログラミングの宿題に問題があります。講師から受け取った宿題は、Java でプログラムを作成して、学生の情報を取得し、学生が受講する科目数を選択できるようにし、点数と単位時間を入力し、その後に計算式を追加することでした。成績と科目の成績ポイント。プログラムの最後に、プログラムは学生情報 (名前、ID など) と、入力されたすべての科目の合計科目成績ポイント、すべての科目の合計クレジット時間、および累積成績ポイント平均を出力できます。 (CGPA)。

ただし、ここには3つの問題があります

  1. ユーザーが入力したい件名の数を読み取るために設定したループに問題があります。
  2. "Grade = " + subjectGrade); を印刷しようとしたとき。私のコンパイラは、初期化されていないと言っています。同じことが GradePoint と subjectCreditHour にも当てはまります。
  3. また、科目の成績合計点、総単位時間数、および 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 です。

今後の改善のために、訂正、批判、アドバイスを歓迎します。前もって感謝します!

4

3 に答える 3

1

1) ユーザーが入力したい件名の数を読み取るために設定したループに問題があります。

コメントで@Nishanによってすでに回答されています。に置き換えるだけfor (int i=1;i >= subjects; i++)ですfor (int i=1;i <= subjects; i++)


2)「Grade =」+ subjectGrade)を印刷しようとしたとき; 私のコンパイラは、初期化されていないと言っています。同じことが GradePoint と subjectCreditHour にも当てはまります。

すでに回答済み。


3) そして、プログラムに科目の成績合計点、合計単位時間数、および CGPA を計算させる方法がわかりませんでした。ユーザーが必要とするサブジェクトの数によっては、プログラムにユーザーの入力を取り入れてそれらを合計する方法を理解できないためです

必要なアキュムレータがあるので、すでに正しい道を進んでいます。

double subjectGradePoint = 0d;
double CGPA = 0d;
double totalSubjectGP = 0d;
int totalCreditHour = 0;

ループ内とネストされたブロックの後に、各反復で変数と変数を更新if-elseする必要があります。subjectGradePointtotalSubjectGPtotalCreditHour

subjectGradePoint = GradePoint * CreditHour;
totalSubjectGP += subjectGradePoint;
totalCreditHour += CreditHour;

最後に、ループ計算の後CGPA:

CGPA = totalSubjectGP / totalCreditHour;
于 2013-10-16T12:57:56.830 に答える
0

Java 変数は使用前に初期化する必要があります

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=0;
    int subjectMark;
    String subjectGrade="";
    double GradePoint=0;

    double subjectGradePoint=0;
    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  

}

}

于 2013-10-16T12:16:40.777 に答える