Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. public class FileGrades{
  5.  
  6. public static final int NAssignments = 7;
  7. public static final int NLabs = 10;
  8. public static final int NMidterms = 2;
  9. public static final int NFinal = 1;
  10. public static final double WAssignments = 3.0;
  11. public static final double WLabs = 0.5;
  12. public static final double WMidterms = 16.0;
  13. public static final double WFinal = 42.0;
  14.  
  15. public static void main (String[] args){
  16. Scanner userInput = new Scanner(System.in);
  17.  
  18. File file = new File("grades.dat");
  19. Scanner fileInput;
  20. try {
  21. fileInput = new Scanner(file);
  22. } catch (FileNotFoundException e) {
  23. e.printStackTrace();
  24. return;
  25. }
  26.  
  27. System.out.println("Course grade calculator");
  28. System.out.println("calculates the weighted grade for a student");
  29. System.out.println("Inputs: Assignment, Lab and Exam grades");
  30.  
  31. System.out.print("Passing grade for final ==> ");
  32. double passingG = userInput.nextDouble();
  33.  
  34. int numAplus = 0;
  35. int numA = 0;
  36. int numAminus = 0;
  37. int numBplus = 0;
  38. int numB = 0;
  39. int numBminus = 0;
  40. int numCplus = 0;
  41. int numC = 0;
  42. int numD = 0;
  43. int numF = 0;
  44. //double grade = gradeProcessing();
  45. while (fileInput.hasNextLine())
  46. {
  47. double grade = gradeProcessing(fileInput, passingG);
  48. if(grade < passingG) {
  49. System.out.println("Grade: 49.0 F");
  50. numF++;
  51. }
  52. else{
  53.  
  54. if(grade >= 90) {
  55. System.out.printf("Grade: %.2f A+\n", grade);
  56. numAplus++;
  57. }
  58. else if (grade >= 85) {
  59. System.out.printf("Grade: %.2f A\n", grade);
  60. numA++;
  61. }
  62. else if (grade >= 80) {
  63. System.out.printf("Grade: %.2f A-\n", grade);
  64. numAminus++;
  65. }
  66. else if (grade >= 77) {
  67. System.out.printf("Grade: %.2f B+\n", grade);
  68. numBplus++;
  69. }
  70. else if (grade >= 73) {
  71. System.out.printf("Grade: %.2f B\n", grade);
  72. numB++;
  73. }
  74. else if (grade >= 70) {
  75. System.out.printf("Grade: %.2f B-\n", grade);
  76. numBminus++;
  77. }
  78. else if (grade >= 65) {
  79. System.out.printf("Grade: %.2f C+\n", grade);
  80. numCplus++;
  81. }
  82. else if (grade >= 60) {
  83. System.out.printf("Grade: %.2f C\n", grade);
  84. numC++;
  85. }
  86. else if (grade >= 50) {
  87. System.out.printf("Grade: %.2f D\n", grade);
  88. numD++;
  89. }
  90. else {
  91. System.out.println("Grade: "+ grade +" F");
  92. }
  93. }
  94. }
  95. }
  96. public static double gradeProcessing(Scanner inFile, double passingG){
  97. int studentID;
  98. double grade;
  99. double finalExam;
  100. studentID = inFile.nextInt();
  101. grade = average("Assignment ", NLabs, NAssignments, WAssignments, inFile);
  102. grade += average("Lab ", 1, NLabs, WLabs, inFile);
  103. grade += average("Midterm ", 100, NMidterms, WMidterms, inFile);
  104. finalExam = average ("Final Exam ", 100, NFinal, WFinal, inFile);
  105. System.out.print("grade = " + grade);
  106. if (finalExam < passingG / 100.0 * WFinal){
  107. if ((grade + finalExam) < 49.5){
  108. grade = 49;
  109. }
  110. else grade += finalExam;
  111. }else grade+= finalExam;
  112.  
  113. return grade;
  114. }
  115.  
  116. public static double average(String activity, int max, int num, double weight, Scanner input){
  117. double grade;
  118. double sum = 0.0;
  119. for (int i = 0; i < num; i++){
  120. grade = input.nextDouble();
  121. sum = sum + grade / max;
  122. }
  123. return sum * weight;
  124. }
  125.  
  126. public static String letter(double grade){
  127. String letter;
  128.  
  129. if (grade < 49.5) letter = "F";
  130. else if (grade < 59.5) letter = "D";
  131. else if (grade < 64.5) letter = "C";
  132. else if (grade < 69.5) letter = "C+";
  133. else if (grade < 72.5) letter = "B-";
  134. else if (grade < 76.5) letter = "B";
  135. else if (grade < 79.5) letter = "B+";
  136. else if (grade < 84.5) letter = "A-";
  137. else if (grade < 89.5) letter = "A";
  138. else letter = "A+";
  139.  
  140. return letter;
  141. }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement