2017-09-21 19 views
0
public class FinalMarkCalculator 
{ 
/** 
* This method is used to caculate the students mark 
*/ 
    public static void main(String[] args) 
    { 
     //Assigning the string a variable that holds the students name 
     String studentName; 

     //Initalizing a keyboard scanner 
     Scanner keyboardStudentName = new Scanner(System.in); 

     //System printing out the question 
     System.out.print("Enter the students name: "); 

     //Assigns the string studentName to the users input 
     studentName = keyboardStudentName.nextLine(); 

     //Assigning the double a variable that hold the students assignment marks as a integer 
     double assignmentMarks; 

     //Assigning the string a variable that hold the students assignment marks 
     String assignmentMarksInput; 

     //Initalizing a keyboard scanner with the variable 
     Scanner keyboardAssignmentMarks = new Scanner(System.in); 

     //Asking the user for assingment marks while printing students name 
     System.out.printf("Enter %s's mark for Assignments (Max. 140): ", studentName); 

     //Taking the user input and assigning it to our string assignmentMarksInput 
     assignmentMarksInput = keyboardAssignmentMarks.nextLine(); 

     //Converting the user input from a string to a double 
     assignmentMarks = Double.parseDouble(assignmentMarksInput); 

     //Assigning the double a variable that hold the students Mid-Term exam marks as a integer 
     double midTermExamMark; 

     //Assigning the string a variable that hold the students assignment marks from user input 
     String midTermExamMarkInput; 

     //Initalizing a keyboard scanner with the variable 
     Scanner keyboardExamMidTermMark = new Scanner(System.in); 

     //Asking the user for the Mid-Term Exam mark while printing students name 
     System.out.printf("Enter %s's mark for Mid-Term Exam (Max. 60): ", studentName); 

     //Taking the user input and assigning it to our midTermExamMarkInput 
     midTermExamMarkInput = keyboardExamMidTermMark.nextLine(); 

     //Converting the user input from a string to a double 
     midTermExamMark = Double.parseDouble(midTermExamMarkInput); 

     //Assigning the double a variable that hold the students Mid-Term exam marks as a integer 
     double finalExamMark; 

     //Assigning the string a variable that hold the students assignment marks from user input 
     String finalExamMarkInput; 

     //Initalizing a keyboard scanner with the variable 
     Scanner keyboardFinalExamMark = new Scanner(System.in); 

     //Asking the user for the Mid-Term Exam mark while printing students name 
     System.out.printf("Enter %s's mark for Final Exam (Max. 85): ", studentName); 

     //Taking the user input and assigning it to our midTermExamMarkInput 
     finalExamMarkInput = keyboardFinalExamMark.nextLine(); 

     //Converting the user input from a string to a double 
     finalExamMark = Double.parseDouble(finalExamMarkInput); 


     //Printing grade report title 
     System.out.println("Grade report" + "\n------------"); 

     //Printing the students name 
     System.out.println(studentName + "\n"); 

     //Printing the assignments mark 
     System.out.printf("%.2f/140 worth 15%%\n", assignmentMarks); 

     //Printing the Mid-Term exam mark 
     System.out.printf("%.2f/60 worth 40%%\n", midTermExamMark); 

     //Printing the Final exam mark 
     System.out.printf("%.2f/85 worth 45%%\n", finalExamMark); 

     double finalMark = (assignmentMarks*.15)+(midTermExamMark*.40)+(finalExamMark*.45); 

     //Printing the total calculated final mark 
     System.out.printf("\n\nFinal Mark: " + finalMark);    
    } 
} 

こんにちはすべてのコードは正常に実行されますが、正しく計算されず、すべてが完全であれば100%にならない理由がわかりますプログラムのおかげで私の最初の試みはグレーディングウェイトが正しく計算されない

これは、使用して方程式イムあると私は、これはそれが行われるべきかだと思う: (assignmentMarks * 0.15)+(midTermExamMark * 0.40)+(finalExamMark * 0.45)

+0

まず、複数のスキャナオブジェクトは必要ありません。 –

+0

を再利用してください。この例をご覧ください。 – Tyler

答えて

0

数値は

double finalMark = (assignmentMarks/140*15)+(midTermExamMark/60*40)+(finalExamMark/85*45); 

また、私はあなたの変数を初期化し、(後で当時と)宣言しない方が良いと思い - やる一歩

double assignmentMarks = Double.parseDouble(assignmentMarksInput); 

にもちょうど1つのスキャナ

Scanner scanner = new Scanner(System.in); 

を使用し、すべての入力のためにそれを使用

String studentName = scanner.nextLine(); 
.... 
String assignmentMarksInput = scanner.nextLine(); 
+0

ああありがとう、私はより良いフォーマットに取り組んでいます – Tyler

関連する問題