3
import java.util.Scanner;
public class Admit {

    // the main method has minimal dialogue and just calls the other methods with the appropriate parameters.
    public static void main(String[] args) {
        promptUser();
        System.out.println("Information for the first applicant:");
        double person1Score = getAllResults();
        System.out.println();
        System.out.println("Information for the second applicant");
        double person2Score = getAllResults();
        System.out.println("First applicant's overall score  = " + person1Score);
        System.out.println("Second applicant's overall score = " + person2Score);
        compareScores (person1Score, person2Score);

    }

    // promptUser() introduces the program and what it's used for.
    public static void promptUser() {
        System.out.println("This program compares two applicants to");
        System.out.println("determine which one seems like the stronger");
        System.out.println("applicant. For each candidate I will need");
        System.out.println("either SAT or ACT scores plus a weighted GPA.");
        System.out.println();
    }

    // getAllResults() calculates the applicant's overall score to be compared,
    // depending on whether the user submitted SAT or ACT scores.
    public static double getAllResults() {
        Scanner userInput = new Scanner(System.in);
        System.out.print("\tDo you have 1) SAT scores, or 2) ACT scores? ");
        int testType = userInput.nextInt();
        // @var vinalScore is just storing an arbitrary value for now.
        double finalScore = 0;
        if (testType == 1) {
            System.out.print("\tSAT Math? ");
            int SATMath = userInput.nextInt();
            System.out.print("\tSAT Verbal? ");
            int SATVerbal = userInput.nextInt();
            System.out.print("\tActual GPA? ");
            double yourGPA = userInput.nextDouble();
            System.out.print("\tMax GPA? ");
            double maxGPA = userInput.nextDouble();
            double testScore = calculateSATScore(SATVerbal, SATMath);
            double finalGPA = calculateGPA(yourGPA, maxGPA);
            finalScore = calculateOverallScore(testScore, finalGPA);
        }
        else if (testType == 2) {
            System.out.print("\tACT English? ");
            int ACTEng = userInput.nextInt();
            System.out.print("\tACT Math? ");
            int ACTMath = userInput.nextInt();
            System.out.print("\tACT Reading? ");
            int ACTRead = userInput.nextInt();
            System.out.print("\tACT Science? ");
            int ACTSci = userInput.nextInt();
            System.out.print("\tActual GPA? ");
            double yourGPA = userInput.nextDouble();
            System.out.print("\tMax GPA? ");
            double maxGPA = userInput.nextDouble();
            double testScore = calculateACTScore(ACTEng, ACTMath, ACTRead, ACTSci);
            double finalGPA = calculateGPA(yourGPA, maxGPA); 
            finalScore = calculateOverallScore(testScore, finalGPA);
        }
        return finalScore;
    }

    // calculateSATScore() calculates the overall SAT score taken from getAllResults().
    public static double calculateSATScore(int verbal, int math) {
        double SATScore = (2 * verbal + math) / 24;
        return SATScore;
    }

    // calculateACTScore() calculates the overall ACT score taken from getAllResults().
    public static double calculateACTScore(int eng, int math, int read, int sci) {
        double ACTScore = ((2 * read) + eng + math + sci) / 1.8;
        return ACTScore;
    }

    // calculateGPA() calculates the final GPA taken from getAllResults().
    public static double calculateGPA(double uGPA, double mGPA) {
        double finalGPA = uGPA / mGPA * 100;
        return finalGPA;
    }

    // calculateOverallScore() computes the final scores to be compared, using the
    // overall test scores and the final GPA.
    public static double calculateOverallScore(double testScore, double GPA) {
        double overallScore = testScore + GPA;
        return overallScore;
    }

    // compareScores() compares the overall scores for each applicant and then prints out
    // which applicant appears to be the better choice.
    public static void compareScores (double person1, double person2) {
        if (person1 > person2) {
            System.out.println("The first applicant seems to be better.");
        }
        else {
            System.out.println("The second applicant seems to be better.");
        }
    }
}

'Main.java:11:エラー:クラスAdmitはパブリックであり、Admit.javaパブリッククラスAdmit{'という名前のファイルで宣言する必要があるというエラーが発生し続けます。

4

2 に答える 2

3

Javaコードの例に従ってください:http://ideone.com/samples#sample_lang_10

「publicclassAdmit{」を「publicclassMain{」に変更します

あなたが使用しているように見えるので、あなたのアプリはおそらく動作しません

    Scanner userInput = new Scanner(System.in);

キーボード入力を受信し、ideone.comはSTDINのみを受け入れます。これは、スキャナーでサポートされていない可能性があります。

適切な例として、変更したコードを実行すると、次のエラーが発生します。

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at Main.getAllResults(Main.java:32)
at Main.main(Main.java:8)
于 2012-08-03T04:06:50.263 に答える
0

コードは問題なく機能します。引用するエラーは、ファイル名がクラス名と一致しないという問題です。クラスの名前はAdmitであるため、ファイルの名前はAdmit.javaにする必要があります。

于 2013-02-06T07:26:50.447 に答える