Java JoptionPane正在尝试使用双x4的seCreate方法使其工作
我试图让我的程序只显示等级和字母等级,我知道这很混乱,但我只需要打印出来,但Netbean说JOptionPane需要double,double,double,doubleJava 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
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");