Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.io.*;
- public class FileGrades{
- public static final int NAssignments = 7;
- public static final int NLabs = 10;
- public static final int NMidterms = 2;
- public static final int NFinal = 1;
- public static final double WAssignments = 3.0;
- public static final double WLabs = 0.5;
- public static final double WMidterms = 16.0;
- public static final double WFinal = 42.0;
- public static void main (String[] args){
- Scanner userInput = new Scanner(System.in);
- File file = new File("grades.dat");
- Scanner fileInput;
- try {
- fileInput = new Scanner(file);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- return;
- }
- System.out.println("Course grade calculator");
- System.out.println("calculates the weighted grade for a student");
- System.out.println("Inputs: Assignment, Lab and Exam grades");
- System.out.print("Passing grade for final ==> ");
- double passingG = userInput.nextDouble();
- int numAplus = 0;
- int numA = 0;
- int numAminus = 0;
- int numBplus = 0;
- int numB = 0;
- int numBminus = 0;
- int numCplus = 0;
- int numC = 0;
- int numD = 0;
- int numF = 0;
- //double grade = gradeProcessing();
- while (fileInput.hasNextLine())
- {
- double grade = gradeProcessing(fileInput, passingG);
- if(grade < passingG) {
- System.out.println("Grade: 49.0 F");
- numF++;
- }
- else{
- if(grade >= 90) {
- System.out.printf("Grade: %.2f A+\n", grade);
- numAplus++;
- }
- else if (grade >= 85) {
- System.out.printf("Grade: %.2f A\n", grade);
- numA++;
- }
- else if (grade >= 80) {
- System.out.printf("Grade: %.2f A-\n", grade);
- numAminus++;
- }
- else if (grade >= 77) {
- System.out.printf("Grade: %.2f B+\n", grade);
- numBplus++;
- }
- else if (grade >= 73) {
- System.out.printf("Grade: %.2f B\n", grade);
- numB++;
- }
- else if (grade >= 70) {
- System.out.printf("Grade: %.2f B-\n", grade);
- numBminus++;
- }
- else if (grade >= 65) {
- System.out.printf("Grade: %.2f C+\n", grade);
- numCplus++;
- }
- else if (grade >= 60) {
- System.out.printf("Grade: %.2f C\n", grade);
- numC++;
- }
- else if (grade >= 50) {
- System.out.printf("Grade: %.2f D\n", grade);
- numD++;
- }
- else {
- System.out.println("Grade: "+ grade +" F");
- }
- }
- }
- }
- public static double gradeProcessing(Scanner inFile, double passingG){
- int studentID;
- double grade;
- double finalExam;
- studentID = inFile.nextInt();
- grade = average("Assignment ", NLabs, NAssignments, WAssignments, inFile);
- grade += average("Lab ", 1, NLabs, WLabs, inFile);
- grade += average("Midterm ", 100, NMidterms, WMidterms, inFile);
- finalExam = average ("Final Exam ", 100, NFinal, WFinal, inFile);
- System.out.print("grade = " + grade);
- if (finalExam < passingG / 100.0 * WFinal){
- if ((grade + finalExam) < 49.5){
- grade = 49;
- }
- else grade += finalExam;
- }else grade+= finalExam;
- return grade;
- }
- public static double average(String activity, int max, int num, double weight, Scanner input){
- double grade;
- double sum = 0.0;
- for (int i = 0; i < num; i++){
- grade = input.nextDouble();
- sum = sum + grade / max;
- }
- return sum * weight;
- }
- public static String letter(double grade){
- String letter;
- if (grade < 49.5) letter = "F";
- else if (grade < 59.5) letter = "D";
- else if (grade < 64.5) letter = "C";
- else if (grade < 69.5) letter = "C+";
- else if (grade < 72.5) letter = "B-";
- else if (grade < 76.5) letter = "B";
- else if (grade < 79.5) letter = "B+";
- else if (grade < 84.5) letter = "A-";
- else if (grade < 89.5) letter = "A";
- else letter = "A+";
- return letter;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement