该错误低于以下内容:

symbol:class CarbonDioxideData location:class CarbonAnalysis public static void category(CarbonDioxideData [] data,int size,Scanner input,PrintStream output){^ CarbonAnalysis.java:65:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis public static void getData(Scanner c,CarbonDioxideData [] data,int size){^ CarbonAnalysis.java:81:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis public static void swap(CarbonDioxideData [] data,int pose1,int pose2){^ CarbonAnalysis.java:88:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis public static void total(CarbonDioxideData [] data,int size,PrintStream output){^ CarbonAnalysis.java:107:找不到符号符号:class CarbonDioxideData location: class CarbonAnalysis public static void co2per(CarbonDioxideData [] data,int size,PrintStream output){^ CarbonAnalysis.java:125:找不到符号符号:class CarbonDioxideData locat ion:class CarbonAnalysis public static void road(CarbonDioxideData [] data,int size,PrintStream output){^ CarbonAnalysis.java:143:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis public static void cars(CarbonDioxideData [] data,int size,PrintStream输出){^ CarbonAnalysis.java:161:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis public static void findCanada(CarbonDioxideData [] data,int size,String name,PrintStream output){^ CarbonAnalysis.java:173 :找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis public static void printList(CarbonDioxideData [] data,int size,String s,PrintStream output){^ CarbonAnalysis.java:32:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis CarbonDioxideData [] data = new CarbonDioxideData [size]; ^ CarbonAnalysis.java:32:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis CarbonDioxideData [] data = new CarbonDioxideData [size]; ^ CarbonAnalysis.java:67:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis data [i] = new CarbonDioxideData(); ^ CarbonAnalysis.java:82:找不到符号符号:class CarbonDioxideData location:class CarbonAnalysis CarbonDioxideData temp = data [pose1]; ^

这是代码:

public static void main(String[] args) throws FileNotFoundException{

    Scanner input = new Scanner(System.in);

    PrintStream output = new PrintStream(new File("carbon_report.txt"));

    if(args.length == 0){
        System.out.println("No file command line found.");
        System.out.println("Please type a filename");
        System.exit(0);
    }
    // get a valid filename
    File f = new File(args[0]);
    while(f.exists() == false){
        System.out.println("File doesn't exist. Please type a new name.");
        String filename = input.nextLine();
        f = new File(filename);
        }

        Scanner console = new Scanner(f);
        console.nextLine();
        int size = console.nextInt();


    // create a new array of CarbonDioxideData
    CarbonDioxideData[] data = new CarbonDioxideData[size]; 
    getData(console, data, size);
    category(data, size, input, output);

}
// get which categories the user want to analyze
public static void category(CarbonDioxideData[] data, int size, Scanner input, PrintStream output){
    System.out.printf("%20s%30s", "1. totalCO2emissions", "2. roadCO2emissions");
    System.out.printf("%50s%25s", "\n3. per-personRoadEmissions", "4. carsPer1000People");
    System.out.println("\nHow many categories do you choose to analyze?");
    int num = input.nextInt();

    if(num>0){
        System.out.println("Pleas choose the number of category you want to analyze(the number is in the front of each category):");
        for(int i=1; i<=num; i++){
            int category = input.nextInt();
            if(category==1){
                total(data,size, output);
                output.println();
            }else if(category==2){
                road(data, size, output);
                output.println();
            }else if(category==3){
                co2per(data, size, output);
                output.println();
            }else if(category==4){
                cars(data, size, output);
                output.println();
            }
        }
    }
}
// set the array of CarbonDioxideData
public static void getData(Scanner c, CarbonDioxideData[] data, int size){
    for(int i=0; i<size; i++){
        data[i] = new CarbonDioxideData();
        String country = c.next();
        data[i].setCountry(country);
        double total = c.nextDouble();
        data[i].setTotalCO2(total);
        double road = c.nextDouble();
        data[i].setRoadCO2(road);
        double co2per = c.nextDouble();
        data[i].setCO2PerPerson(co2per);
        int cars = c.nextInt(); 
        data[i].setCarsPerPerson(cars);
    }
}

public static void swap(CarbonDioxideData[] data, int pose1, int pose2){
    CarbonDioxideData temp=data[pose1];
    data[pose1]=data[pose2];
    data[pose2]=temp; 
}

// compare total CO2 emissions 
public static void total(CarbonDioxideData[] data, int size, PrintStream output){
    for(int i=0; i<size-1; i++){
        int min = i;
        for(int j=i+1; j<size; j++){
            if(data[j].getTotalCO2()<data[min].getTotalCO2()){
                min = j;
            }

        }
        swap(data,i,min);
    }
    printList(data, size, "total emissions", output);
    output.println("Country with the lowest total emissions: " + data[0].getCountry());
    output.println("Country with the highest total emissions: " + data[size-1].getCountry());
    findCanada(data, size, "lowest total emissions", output);

}

// compare the amount of per-person road emission
public static void co2per(CarbonDioxideData[] data, int size, PrintStream output){
    for(int i=0; i<size-1; i++){
        int min = i;
        for(int j=i+1; j<size; j++){
            if(data[j].getCO2PerPerson()<data[min].getCO2PerPerson()){
                min = j;
            }
        }
        swap(data,i,min);
    }
    printList(data, size, "per-person road emissions",output);
    output.println("Country with the lowest per-person road emissions: " + data[0].getCountry());
    output.println("Country with the highest per-person road emissions: " + data[size-1].getCountry());
    findCanada(data, size, "lowest per-person road emissions.", output);

}

// analyze the road emissions
public static void road(CarbonDioxideData[] data, int size, PrintStream output){
    for(int i=0; i<size-1; i++){
        int min = i;
        for(int j=i+1; j<size; j++){
            if(data[j].getRoadCO2()<data[min].getRoadCO2()){
                min = j;
            }
        }
        swap(data,i,min);
    }
    printList(data, size, "road CO2 emissions",output);
    output.println("Country with the lowest road emissions: " + data[0].getCountry());
    output.println("Country with the highest road emissions: " + data[size-1].getCountry());
    findCanada(data, size, "lowest road emissions.", output);

}

// analyze the number of cars per 1000 people
public static void cars(CarbonDioxideData[] data, int size, PrintStream output){
    for(int i=0; i<size-1; i++){
        int min = i;
        for(int j=i+1; j<size; j++){
            if(data[j].getCarsPerPerson()<data[min].getCarsPerPerson()){
                min = j;
            }
        }
        swap(data,i,min);
    }
    printList(data, size, "cars per 1000 people",output);
    output.println("Country with the lowest cars per 1000 people: " + data[0].getCountry());
    output.println("Country with the highest cars per 1000 people: " + data[size-1].getCountry());
    findCanada(data, size, "lowest cars per 1000 people.", output);

}

// find the position of Canada in the given category 
public static void findCanada(CarbonDioxideData[] data, int size, String name, PrintStream output){
    int n = 1;
    for(int i=0; i<size; i++){
        String country = data[i].getCountry();
        if(country.equals("Canada")){
            n=i;
        }
    }
    output.println("Canada is ranked " + (n+1) + " out of " + size+" for " +name);
}

// print the lists of total emissions or per-person road emission
public static void printList(CarbonDioxideData[] data, int size, String s, PrintStream output){
    if(s.equals("per-person road emissions")){
        output.println("The precedence table of total emissions:");
        for(int i = 0; i<size; i++){    
            output.printf("%10s", data[i].getCountry());
            output.printf("%10.2f",data[i].getCO2PerPerson());
            output.println();
        }
    }else if(s.equals("total emissions")){
        output.println("The precedence table of "+ s);
        for(int i = 0; i<size; i++){
            output.printf("%10s ", data[i].getCountry());
            output.printf("%10.2f",data[i].getTotalCO2());
            output.println();
        }
    }else if(s.equals("road CO2 emissions")){
        output.println("The precedence table of "+ s);
        for(int i = 0; i<size; i++){
            output.printf("%10s ", data[i].getCountry());
            output.printf("%10.2f",data[i].getRoadCO2());
            output.println();
        }
    }else if(s.equals("cars per 1000 people")){
        output.println("The precedence table of "+ s);
        for(int i = 0; i<size; i++){
            output.printf("%10s ", data[i].getCountry());
            output.printf("%10d",data[i].getCarsPerPerson());
            output.println();
        }
    }
}

}