2016-06-16 8 views
-8

私は理解できないように見えるこの問題に苦しんでいる、私は完全に新しいJavaと私は助けが必要です..私はあなたが合格したかどうかを判断する簡単なプログラムを作っている対象かどうかの点の成績を経由して、それはそうです、それはここでしか... ELSE文を決定するコードです...それは本当に...事前のおかげでそれ以外の場合は他のJavaで実行する場合

String studID=" ",course=" ", name=" ", dept=" ", subj=" "; 
    double exam1=0, exam2=0, exam3=0, exam4=0; 
    double avg, pgrade; 
    String msg=" "; 

studID =JOptionPane.showInputDialog("Please fill-out the following fields:" 
     + "\nStudent ID: "); 
name = JOptionPane.showInputDialog("Name: "); 
dept = JOptionPane.showInputDialog("Department: "); 
course = JOptionPane.showInputDialog("Course: "); 
subj = JOptionPane.showInputDialog("Subject: "); 
exam1 = Double.parseDouble(JOptionPane.showInputDialog("First Examination: ")); 
exam2 = Double.parseDouble(JOptionPane.showInputDialog("Second Examination: ")); 
exam3 = Double.parseDouble(JOptionPane.showInputDialog("Third Examination: ")); 
exam4 = Double.parseDouble(JOptionPane.showInputDialog("Final Examination: ")); 
avg = (exam1 + exam2 + exam3 + exam4)/4; 
pgrade =(100 - avg + 10)/10; 

if (avg==100) 
{ 
    msg = "passed - Excellent!"; 
}else if (avg>100 && avg<89) 
{ 
    msg = "Passed - Very Good!"; 
}else if (avg>90 && avg<84) 
{ 
    msg = "Passed - Average"; 
}else if (avg>85 && avg<79) 
{ 
    msg = "Passed - Good"; 
}else if (avg>80 && avg<74) 
{ 
    msg = "Passed - Satisfactory"; 
}else if (avg>75 && avg<49) 
{ 
    msg = "Failed"; 
}else if (avg>50 && avg<0.00) 
{ 
    msg = "Dropped"; 
}else if (avg==0.00 && avg<0.00) 
{ 
    msg = "No such Grade"; 
}else 
{ 
    msg = "Out of Range or Invalid."; 
} 


JOptionPane.showMessageDialog(null, new JTextArea (
     "|======Student Details=======|" 
    + "\n|StudentID:\t" + studID +"\t |" 
    + "\n|Name:\t" + name + "\t |" 
    + "\n|Department:\t" +dept+ "\t |" 
    + "\n|Course:\t"+course+"\t |" 
    + "\n|Subject:\t"+subj + "\t |" 
    + "\n|=======Grade Details======= |" 
    + "\n|First  Second  Third  Fourth |" 
    + "\n|"+exam1+"  "+exam2+"  "+exam3+"  "+exam4+"\t  |" 
    + "\n|Average:\t" +avg + "\t|" 
    + "\n|Point Grade\t:" +pgrade+"\t|" 
    + "\n|Remarks:"+msg+"\t|" 
    + "\n|=============================|")); 





} 

}

+11

Javaを忘れてしまった:100 *および*未満の数字は何ですか? –

+0

'avg> 100 && avg <89 '数字は同時にABOVE 100とBOWOW 89にすることはできません。他のすべてのelse if条件にも同じことが適用されます。 – Arc676

+1

@Berger可能性が高いのは '>'と '<'の代わりに '<=' and '> ='です。 –

答えて

3

条件が間違っているたくさん私を助けますあなたが設定しなければならない範囲に変数を含めるため、

else if(avg>89 && avg<100) 
+2

正直なところ、 100を超えることは起こらないはずであるため、上部範囲 '&& avg <100'は完全に不要です。さらに、 'else else'の連鎖であり、上から下まで実行されるので、最初の条件が成立し、残りはスキップされます。 – 4castle

+0

私はもっと簡単にすることを知っています。私はそれを書くことを選択しました – Irazza

0

あなたの比較はまず間違っていましたので、私が訂正した線に沿って試してみてください。

String studID=" ",course=" ", name=" ", dept=" ", subj=" "; 
    double exam1=0, exam2=0, exam3=0, exam4=0; 
    double avg, pgrade; 
    String msg=" "; 

studID =JOptionPane.showInputDialog("Please fill-out the following fields:" 
     + "\nStudent ID: "); 
name = JOptionPane.showInputDialog("Name: "); 
dept = JOptionPane.showInputDialog("Department: "); 
course = JOptionPane.showInputDialog("Course: "); 
subj = JOptionPane.showInputDialog("Subject: "); 
exam1 = Double.parseDouble(JOptionPane.showInputDialog("First Examination: ")); 
exam2 = Double.parseDouble(JOptionPane.showInputDialog("Second Examination: ")); 
exam3 = Double.parseDouble(JOptionPane.showInputDialog("Third Examination: ")); 
exam4 = Double.parseDouble(JOptionPane.showInputDialog("Final Examination: ")); 
avg = (exam1 + exam2 + exam3 + exam4)/4; 
pgrade =(100 - avg + 10)/10; 

if (avg==100) 
{ 
    msg = "passed - Excellent!"; 
}else if (avg<100 && avg>89) 
{ 
    msg = "Passed - Very Good!"; 
}else if (avg<90 && avg>84) 
{ 
    msg = "Passed - Average"; 
}else if (avg<85 && avg>79) 
{ 
    msg = "Passed - Good"; 
}else if (avg<80 && avg>74) 
{ 
    msg = "Passed - Satisfactory"; 
}else if (avg<75 && avg>49) 
{ 
    msg = "Failed"; 
}else if (avg<50 && avg>0.00) 
{ 
    msg = "Dropped"; 
}else if (avg==0.00)//no one gets below zero in a fair system 
{ 
    msg = "No such Grade"; 
}else 
{ 
    msg = "Out of Range or Invalid."; 
} 


JOptionPane.showMessageDialog(null, new JTextArea (
     "|======Student Details=======|" 
    + "\n|StudentID:\t" + studID +"\t |" 
    + "\n|Name:\t" + name + "\t |" 
    + "\n|Department:\t" +dept+ "\t |" 
    + "\n|Course:\t"+course+"\t |" 
    + "\n|Subject:\t"+subj + "\t |" 
    + "\n|=======Grade Details======= |" 
    + "\n|First  Second  Third  Fourth |" 
    + "\n|"+exam1+"  "+exam2+"  "+exam3+"  "+exam4+"\t  |" 
    + "\n|Average:\t" +avg + "\t|" 
    + "\n|Point Grade\t:" +pgrade+"\t|" 
    + "\n|Remarks:"+msg+"\t|" 
    + "\n|=============================|")); 





}} 
+0

は本当に感謝してくれました。私はまだ演算子に問題があります。 – Maximus

+0

基本レベルの数学をやっていると仮定します。コンピュータのプログラミングは、適切なタイミングで適切な場所に適切な計算を行うことに関するものです。それは抽象的なものではなく、物理的な解決策の「仮想実装」です。笑 –

関連する問題