-1

Im getting the error

cannot find symbol - variable score

can anyone point out whats going wrong in my program that is causing this?

import java.util.*;

public class Grades {
    public static void main (String[] args) {

        intro();

        Scanner console = new Scanner(System.in);

        int totalScoreMain = totalScore(score, curveNumber);
        double weightedScoreMain = weightedScore(weight, score, curveNumber);
        double weightedScore2Main = weightedScore2(weight2, sections, sumScore);

        for(int i = 1; i <= 2; exam++) {
            System.out.println("Exam i");
            exam();
        }
        homework();
    }

    public static void intro () {

        System.out.println("This program reads exam/homework scores");
        System.out.println("and reports your overall course grade.");
        System.out.println();
    }

    public static void exam () {
        System.out.print("What is its weight (0-100)?");
        double weight = console.nextInt();
        System.out.print("Score earned?");
        int score = console.nextInt();
        System.out.print("Was there a curve (1=yes, 2=no)?");
        int curve = console.nextInt();
        if (curve == 1) {
            System.out.print("How much was the curve?");
            int curveNumber = console.nextInt();
        } else if (curve == 2) {
            int curveNumber = 0;
        }

        totalScore(score, curveNumber);
        weightedscore(weight, score, curveNumber);

        System.out.println("Total points = " + totalScoreMain + "/" + "100");
        System.out.println("Weighted score = " + weightedScoreMain + "/" + weight);
    }

    public static int totalScore (int score, int curveNumber) {

        int totalScore = Math.min(score + curveNumber, 100);
        return totalScore;
    }

    public static double weightedScore (int weight, int score, int curveNumber) {

        double weightedScore = (score + curveNumber) * weight/100;
        return weightedScore;
    }

    public static void homework () {

        System.out.print("What is its weight (0-100)?");
        int weight2 = console.nextInt();
        System.out.print("Number of assignments?");
        int number = console.nextInt();
        int sumScore = 0;
        int sumMax = 0;

        for(int i = 1; i <= number; i++) {
            System.out.println("Assignment " + i + "score and max?");
            int aScore = console.nextInt();
            int aScoreMax = console.nextInt();

            sumScore = sumScore + aScore;
            sumMax = sumMax + aScoreMax; }

        System.out.print("How many sections attended?");
        int section = console.nextInt();
        int sections = Math.min(3 * section, 20);
        System.out.println("Section points = " + sections);

        weightedScore2(weight2, sections, sumScore);

        System.out.println("Total points = " + (sections + sumScore) + "/" + sumMax);
        System.out.println("Weighted score = " + weightedScore2 + "/" + weight2);
    }

    public static double weightedScore2(int weight2, int sections, int sumScore)
    {

        int weightedScore2 = weight2/100 * (sections + sumScore);
        return weightedScore2;
    }
}
SatyaTNV
  • 4,137
  • 3
  • 15
  • 31
  • 3
    Yes, `score` is only a local variable within `exam`. I suggest you read https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html – Jon Skeet Jan 28 '16 at 08:26
  • You can't use a variable in a scope where it is not defined. I suggest you pass it to the method where it is needed. – Peter Lawrey Jan 28 '16 at 08:32

1 Answers1

0

Following code is not a good code but it runs and there are plenty of improvements needed, still you can try as it runs now so you can proceed:

import java.util.Scanner;

public class Grades {
    static int score;
    static int curveNumber;
    static int weight;
    static int weight2;
    static int sections;
    static int sumScore;
    static int totalScoreMain;

    static double weightedScoreMain;
    static double weightedScore2Main;

    static Scanner console = new Scanner(System.in);

    public static void main(String[] args) {
        intro();

        totalScoreMain = totalScore(score, curveNumber);
        weightedScoreMain = weightedScore(weight, score, curveNumber);
        weightedScore2Main = weightedScore2(weight2, sections, sumScore);

        for (int i = 1; i <= 2; i++) {
            System.out.println("Exam " + i);
            exam();
        }
        homework();
    }

    public static void intro() {
        System.out.println("This program reads exam/homework scores");
        System.out.println("and reports your overall course grade.");
        System.out.println();
    }

    public static void exam() {
        System.out.print("What is its weight (0-100)?");
        double weight = console.nextInt();
        System.out.print("Score earned?");
        int score = console.nextInt();
        System.out.print("Was there a curve (1=yes, 2=no)?");
        int curve = console.nextInt();
        if (curve == 1) {
            System.out.print("How much was the curve?");
            curveNumber = console.nextInt();
        } else if (curve == 2) {
            curveNumber = 0;
        }

        totalScore(score, curveNumber);
        weightedScore(weight, score, curveNumber);

        System.out.println("Total points = " + totalScoreMain + "/" + "100");
        System.out.println("Weighted score = " + weightedScoreMain + "/"
                + weight);
    }

    public static int totalScore(int score, int curveNumber) {
        int totalScore = Math.min(score + curveNumber, 100);
        return totalScore;
    }

    public static double weightedScore(double weight, int score, int curveNumber) {
        double weightedScore = (score + curveNumber) * weight / 100;
        return weightedScore;
    }

    public static void homework() {
        System.out.print("What is its weight (0-100)?");
        int weight2 = console.nextInt();
        System.out.print("Number of assignments?");
        int number = console.nextInt();
        int sumScore = 0;
        int sumMax = 0;

        for (int i = 1; i <= number; i++) {
            System.out.println("Assignment " + i + "score and max?");
            int aScore = console.nextInt();
            int aScoreMax = console.nextInt();

            sumScore = sumScore + aScore;
            sumMax = sumMax + aScoreMax;
        }

        System.out.print("How many sections attended?");
        int section = console.nextInt();
        int sections = Math.min(3 * section, 20);
        System.out.println("Section points = " + sections);
        System.out.println("Total points = " + (sections + sumScore) + "/"
                + sumMax);
        System.out.println("Weighted score = "
                + weightedScore2(weight2, sections, sumScore) / weight2);
    }

    public static double weightedScore2(int weight2, int sections, int sumScore) {

        int weightedScore2 = weight2 / 100 * (sections + sumScore);
        return weightedScore2;
    }
}
user2173372
  • 483
  • 7
  • 17