幫助,我無法讓我的程序成功運行。它給我一個錯誤,有兩個輸入用於中期標記和最終標記。彈出適當的結尾時我無法完全運行。我試圖編寫一個程序,接受來自用戶的標記,併爲未知數量的學生顯示適當的字母等級。我的代碼如下。Java代碼編輯
import javax.swing.*;
public class StudentGrades_Hann{
public static void main (String[] args) {
String input ;
input= JOptionPane.showInputDialog(" Enter Name, \n ID Number,\n Homework Mark, \n Assignment Mark, \n Midterm Mark, \n and Final Mark \n All Entrys Must Be Separated By Commas");
int com;
com= input.indexOf(",");
String name ;
name = input.substring(0,com);
int com2;
com2= input.indexOf(",", com+1);
String idnumber ;
idnumber = input.substring(com+1, com2);
int com3;
com3= input.indexOf(",", com2+1);
String homeworkmark ;
homeworkmark = input.substring(com2+1, com3);
int com4;
com4= input.indexOf(",", com3+1);
String assignmentmark ;
assignmentmark = input.substring(com3+1, com4);
int com5;
com5= input.indexOf(",", com4+1);
String midtermmark ;
midtermmark = input.substring(com4+1, com5);
int com6;
com6= input.indexOf(",", com5+1);
String finalmark ;
finalmark = input.substring(com4+1);
double as ;
as = Double.parseDouble (assignmentmark.trim());
double hw ;
hw = Double.parseDouble (homeworkmark.trim());
double mm ;
mm = Double.parseDouble (midtermmark.trim());
double fm ;
fm = Double.parseDouble (finalmark.trim());
String grade ;
double totalmark ;
totalmark= 0.1*hw+0.1*as+0.3*mm+0.5*fm ;
double mnf ;
mnf= 0.5*fm+0.3*mm ;
if(totalmark < 50 || mnf < 50) {
JOptionPane.showMessageDialog(null,name + idnumber + "Fail") ;
}
else if (totalmark < 85) {
JOptionPane.showMessageDialog(null, name + idnumber + "A") ;
}
else if (totalmark < 75) {
JOptionPane.showMessageDialog(null,name + idnumber + "B") ;
}
else if (totalmark <65) {
JOptionPane.showMessageDialog(null, name + idnumber + "C");
}
else if (totalmark <=50) {
JOptionPane.showMessageDialog(null,name + idnumber + "D") ;
}
else {
JOptionPane.showMessageDialog(null, "Invalid Entry") ;
}
}
}
如果你得到錯誤?我指的是哪一行。 – 2013-03-13 16:09:30
我不確定,但'input.indexOf(「,」);'這些行可能是問題的根源。嘗試使用'String [] in = input.split(「,」);'它將通過','分割您的輸入,並且將創建新的字符串數組。 – Smit 2013-03-13 16:16:50
它不具體。我假設它將字符串轉換爲double。我得到一個異常錯誤「線程中的異常」主要「java.lang.NumberFormatException:對於輸入字符串:」80,90「 \t at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222) \t at java。在StudentGrades_Hann.main(StudentGrades_Hann.java:55) – user2166241 2013-03-13 16:17:37