0

以下のクラスで、パート a およびパート b とラベル付けされた次のメソッドを完了する必要があります。このクラスは、配列 Grades の GPA を計算し、AP クラスの Grades のボーナスを追加することになっています。P は AP グレードを示します。たとえば、「BP」は AP グレード、「B-」は通常のグレードです。パート a では、"CP" に対して 1.7122 の結果が得られるはずであり、パート b では、成績の配列全体を処理して 3.455333 の結果を得る必要があります.....

どのパーツがパーツ a とパーツ b であるかを教えてもらい、コメントを使用してラベルを付けました。また、コードの残りの部分が結果を計算するために部分 a と b に行くべきだと思うラベル付けについてもコメントしました。

誰かがこれを行う方法と、どの方法を使用する必要があるかを説明できますか?

これが私のコードです(形式が正しくないことはわかっていますが、JCreatorにはありませんが、ここに正しくコピーできませんでした):

public class GPAFreeResponse 
{
    private String[] grades    = {"A P", "B+P", "B-P"};
    private String[] ltrGrades = {"A ", "A-", "B+", "B ", "B-",
                                  "C+", "C ", "C-", "D ", "E "};
    private double[] dGrades   = {4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 
                                  2.0, 1.7, 1.3, 1.0, 0.0};
    private double[] bonusPts  = {.0488,.0488,.0366,.0366,.0366,
                                  .0122,.0122,.0122,.0061,.0061, 0.0};
    private double dGrade;

    public GPAFreeResponse()
    {
        dGrade= calculateGrade("C-P") + calculateBonus("C-P"); // part a
        System.out.println("Part 9a): " + dGrade);
        dGrade = calculateGPA();                // part b
        System.out.println("Part (b): " + dGrade);
    }

    public double calculateGPA()                        // part b
    {
        double dResult = 0.0;
        double dTotalQP = 0.0;
        double dBonusPt = 0.0;

        //more code goes here

        return dResult;
    }

    public double calculateGrade(String str)            // part a
    {
        double dResult = 0.0;

        // more stuff here

        return dResult;
    }

    public double calculateBonus(String str)            // part a
    {
        double dResult = 0.0;

        // and more stuff here

        return dResult;
    }

    public static void main(String[] args)
    {
        //create an instance of GPA
        new GPAExtra();
    }    
}
4

1 に答える 1

1

あなたがどれだけ Java を知っているかわかりませんが、これは宿題なので、疑似コードで書き、Java に翻訳するのはあなたに任せます。本当に行き詰まっている場合はお知らせください。特定のコードを提供させていただきます。

それでは、calculateGrade から始めましょう。やりたいことは、入力の最初の 2 文字に一致する要素が見つかるまで、ltrGrades のすべての要素をループすることです。これにより、必要な文字グレードのインデックスが得られます。次に、dGrades の同じインデックスで値を返すだけです。そう、

initialise string firstTwo as subtring of str from 0 to 1 // you'll have to work out how to actually implement this
repeat with ( i from 0 to the length of ltrGrades )
    if ( firstTwo is equal to the i'th element of ltrGrades ) then
        return the i'th element of dGrades
//catch case where it wasn't found
return 0.0

それが機能するようになったら、またはまったく不明な場合はお知らせください。

編集:これが最も簡単な方法ではないと誰かが言う前に、私はあなたが探している基本的なアルゴリズム機能を説明しているだけです. おそらく、配列内の文字列を見つけるメソッドを使用して改善できます

編集 2: ここでは、個々のセクションのそれぞれを達成する方法の内訳を示します。

まず、str の部分文字列を取得します。部分文字列に関する情報についてはhttp://www.tutorialspoint.com/java/java_string_substring.htmを確認してください。

String firstTwo = str.substring( 0,2 );

次に、ltrGrades を反復処理するので、次のようになります。

for ( int i=0; i<ltrGrades.length; i++ ) {

次に、ltrGrades の i 番目の要素が必要な部分文字列であるかどうかを確認するには、

if ( firstTwo == lrtGrades[ i ] ) {

最後に、そうであれば、dGrades の i 番目の要素を返すので、

return dGrades[ i ]

記憶が曖昧なので間違っていたらすみませんが、多少の誤差はあると思いますがご了承ください。それがすべて一緒に機能するようになったら、私に知らせてください。

于 2013-03-27T00:22:54.897 に答える