Java JoptionPane正在尝试使用双x4的seCreate方法使其工作

Java JoptionPane正在尝试使用双x4的seCreate方法使其工作,java,Java,我试图让我的程序只显示等级和字母等级,我知道这很混乱,但我只需要打印出来,但Netbean说JOptionPane需要double,double,double,double package garrett_sprunger_a5; import java.text.DecimalFormat; import java.util.Scanner; import javax.swing.JOptionPane; /** * * @author Garrett */ public class

我试图让我的程序只显示等级和字母等级,我知道这很混乱,但我只需要打印出来,但Netbean说JOptionPane需要double,double,double,double

package garrett_sprunger_a5;

import java.text.DecimalFormat;
import java.util.Scanner;
import javax.swing.JOptionPane;

/**
 *
 * @author Garrett
*/
public class Garrett_sprunger_A5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String inputString;       // For reader's input
        double     TestScore1,      //Define TestScore 1
        TestScore2,     //Define TestScore 2
        TestScore3,    //Define TestScore 3
        AverageScore; //Define AverageScore
        Scanner keyboard = new Scanner(System.in); //To hold the users grade
                                                   // (somehow i am able to use
                                                   // keyboard but can't get the
                                                   // varible to match correctly)
        DecimalFormat formatter = 
                    new DecimalFormat("#,##0.0"); //format the scores
        Scanner Keyboard = new Scanner(System.in);
        inputString=
        JOptionPane.showInputDialog("\t\nPlease enter Test Score 1");
        TestScore1 = Double.parseDouble(inputString);
        // input TestScore2
        inputString=
            JOptionPane.showInputDialog("\t\nPlease enter Test Score 2");
        // Convert the input to a double
        TestScore2 = Double.parseDouble(inputString);
        //input TestScore3
        inputString=
            JOptionPane.showInputDialog("\t\nPlease enter Test Score 3");
        // Convert the input to a double
        TestScore3 = Double.parseDouble(inputString);
        //Calculate the average score for the tests
        AverageScore = Calcaverage(TestScore1, TestScore2, TestScore3);
        //AverageScore = (AverageScore +0.5);// applying midpoint roudning 
                                             // rule not needed with formated
                                             // rounding 
        //Display Average test Score
        {
            if(TestScore1 <0 && TestScore1 >100)
                JOptionPane.showMessageDialog(null, "Please enter a Correct" +
                                                " data range between 0 and 100");
        }
        JOptionPane.showMessageDialog(null, "\t\nYour Test Score 1  is : " 
                                            + formatter.format(TestScore1)  
                                            +"\t Grade: " 
                                            + getLetterGrade(TestScore1)
                                            + "\t\nYour Test Score 2  is : "
                                            + formatter.format(TestScore2)  
                                            + "\t Grade: "
                                            + getLetterGrade(TestScore2)
                                            + "\t\nYour Test Score 3  is : " 
                                            + formatter.format(TestScore3) 
                                            + "\t Grade: "
                                            + getLetterGrade(TestScore3)
                                            + "\t\nYour Average Score is : "
                                            + formatter.format(AverageScore)
                                            + "\t Grade: "
                                            + getLetterGrade(AverageScore));
    }//End main method

    public static double Calcaverage(double TestScore1,
                                double TestScore2, double TestScore3  ) {
        double AverageScore = ((TestScore1 + TestScore2 + TestScore3)/3);
        return AverageScore;
    }

    // Determine the letter grade

    public static char getLetterGrade(double TestScore1,
                double TestScore2,double TestScore3, double AverageScore) {
        if (AverageScore >=90) {
            return 'A';
        } else if (AverageScore >= 70 && AverageScore < 90) {
            if (TestScore3 > 90)
                return 'A';
        } else
            return 'B';

        if(AverageScore >=50 && AverageScore <70) {
            if(((TestScore2 + TestScore3)/2.0) > 70)
                return 'C';
        } else 
            return 'D';
        if (AverageScore < 50)
            return 'f';
           else 
               return '0';
    }

    public static void displaygrade( double AverageScore,
                            double TestScore1, double TestScore2,
                            double TestScore3, char getLetterGrade) {
        DecimalFormat formatter = new DecimalFormat("#,##0.0");
        JOptionPane.showMessageDialog(null, "\t\nYour Test Score 1  is : " +
                                             formatter.format(TestScore1)  +
                                            "\t Grade: " + getLetterGrade(
                                            TestScore1) +
                                            "\t\nYour Test Score 2  is : " + 
                                            formatter.format(TestScore2)  +
                                            "\t Grade: " + getLetterGrade(
                                            TestScore2) +
                                            "\t\nYour Test Score 3  is : " +
                                            formatter.format(TestScore3)  +
                                            "\t Grade: " + getLetterGrade(
                                            TestScore3) +
                                            "\t\nYour Average Score is : " + formatter.format(AverageScore)+
                                            "\t Grade: " + getLetterGrade(
                                            AverageScore));
    }
}
包裹garrett_sprunger_a5;
导入java.text.DecimalFormat;
导入java.util.Scanner;
导入javax.swing.JOptionPane;
/**
*
*@作者加勒特
*/
公共课加勒特·斯普林格·A5{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
String inputString;//用于读取器的输入
double TestScore1,//定义TestScore1
TestScore2,//定义TestScore2
TestScore3,//定义TestScore3
AverageScore;//定义AverageScore
扫描仪键盘=新扫描仪(System.in);//用于保存用户等级
//(不知怎的,我能用
//键盘,但无法获取
//变量(可正确匹配)
十进制格式格式化程序=
新的十进制格式(“#,###0.0”);//设置分数格式
扫描仪键盘=新扫描仪(System.in);
输入字符串=
JOptionPane.showInputDialog(“\t\n请输入测试分数1”);
TestScore1=Double.parseDouble(inputString);
//输入TestScore2
输入字符串=
JOptionPane.showInputDialog(“\t\n请输入测试分数2”);
//将输入转换为双精度
TestScore2=Double.parseDouble(inputString);
//输入TestScore3
输入字符串=
JOptionPane.showInputDialog(“\t\n请输入测试分数3”);
//将输入转换为双精度
TestScore3=Double.parseDouble(inputString);
//计算测试的平均分数
平均得分=平均得分(TestScore1、TestScore2、TestScore3);
//AverageScore=(AverageScore+0.5);//应用中点轮换
//规则不需要格式化
//四舍五入
//显示平均测试分数
{
如果(TestScore1100)
JOptionPane.showMessageDialog(空,“请输入正确的”+
“数据范围介于0和100之间”);
}
JOptionPane.showMessageDialog(null),\t\n您的测试分数1是:
+formatter.format(TestScore1)
+“\t等级:”
+getLetterGrade(测试分数1)
+“\t\n您的考试成绩2是:”
+formatter.format(TestScore2)
+“\t等级:”
+getLetterGrade(TestScore2)
+“\t\n您的考试成绩3是:”
+formatter.format(TestScore3)
+“\t等级:”
+getLetterGrade(测试分数3)
+“\t\n您的平均分数是:”
+formatter.format(平均分数)
+“\t等级:”
+getLetterGrade(平均分数);
}//端主方法
公共静态双平均值(双测试分数1,
双测试分数2,双测试分数3){
双平均得分=((TestScore1+TestScore2+TestScore3)/3);
返回平均分;
}
//确定字母等级
公共静态字符getLetterGrade(双测试分数1,
双倍测试分数2,双倍测试分数3,双倍平均分数){
如果(平均得分>=90){
返回“A”;
}否则如果(平均分数>=70&&AverageScore<90){
如果(TestScore3>90)
返回“A”;
}否则
返回“B”;
如果(平均分数>=50&&AverageScore 70)
返回“C”;
}否则
返回“D”;
如果(平均分数<50)
返回“f”;
其他的
返回“0”;
}
公共静态无效显示等级(双平均分,
双测试分数1,双测试分数2,
双测试分数3,字符getLetterGrade){
DecimalFormat formatter=新的DecimalFormat(“0.0”);
JOptionPane.showMessageDialog(null),\t\n您的测试分数1是:+
formatter.format(TestScore1)+
“\t等级:”+getLetterGrade(
测试分数(1)+
“\t\n您的测试分数2为:”+
formatter.format(TestScore2)+
“\t等级:”+getLetterGrade(
测试分数(2)+
“\t\n您的考试成绩3是:”+
formatter.format(TestScore3)+
“\t等级:”+getLetterGrade(
测试分数(3)+
“\t\n您的平均分数为:”+formatter.format(AverageScore)+
“\t等级:”+getLetterGrade(
平均得分);
}
}

我建议您将
getLetterGrade()
方法更改为类似以下内容:

public static char getLetterGrade(double testScore) {
    if (testScore >= 90) {
        return 'A';
    }
    else if (testScore >= 80) {
        return 'B';
    }
    //continue using if statements to determine the letter grade
}
请注意,上面的方法只有
if(TestScore1 <0 && TestScore1 >100)
            JOptionPane.showMessageDialog(null, "Please enter a Correct data range between 0 and 100");