Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.text.DecimalFormat;
- public class Prog8
- {
- public static void main(String [] args)
- {
- final int STUD_ID_MAX = 9999;
- final int STUD_ID_MIN = 1111;
- final int EXAM_SCORE_MAX = 100;
- final int EXAM_SCORE_MIN = 0;
- String studName;
- String Grade;
- int studID;
- int Exam;
- int invalidCounter = 0;
- int validCounter = 0;
- int examMin = 100;
- int examMax = 0;
- int examSum = 0;
- double avg;
- double validPercent;
- double invalidPercent;
- Scanner inFile = new Scanner(System.in);
- System.out.println("~~~Exam Report~~~\n");
- System.out.println("Student ID N a m e Exam Grade");
- System.out.println("---------- ------- ---- -----");
- while(inFile.hasNextInt()) //Beginning of loop
- {
- studID = inFile.nextInt();
- studName = inFile.next();
- Exam = inFile.nextInt();
- inFile.nextLine();
- if ((studID < STUD_ID_MIN || studID > STUD_ID_MAX) //Invalid Data
- || (Exam < EXAM_SCORE_MIN || Exam > EXAM_SCORE_MAX)) {
- invalidCounter++;
- System.out.println(studID + "\t" + studName + "\t" + Exam + "\t" + "~~~ Invalid");
- } else { //Valid data, beginning of if/else to decide score
- if (Exam == 100 && Exam>= 97) {
- Grade = "A+";
- } else if (Exam <= 96 && Exam > 93) {
- Grade = "A";
- } else if (Exam <= 93 && Exam > 89) {
- Grade = "A-";
- } else if (Exam <= 89 && Exam >= 87) {
- Grade = "B+";
- } else if (Exam <= 86 && Exam > 83) {
- Grade = "B";
- } else if (Exam <= 83 && Exam > 79) {
- Grade = "B-";
- } else if (Exam <= 79 && Exam >= 77) {
- Grade = "C+";
- } else if (Exam <= 76 && Exam > 73) {
- Grade = "C";
- } else if (Exam <= 73 && Exam > 69) {
- Grade = "C-";
- } else if (Exam <= 69 && Exam >= 67) {
- Grade = "D+";
- } else if (Exam <= 66 && Exam > 63) {
- Grade = "D";
- } else if (Exam <= 63 && Exam > 59) {
- Grade = "D-";
- } else {
- Grade = "F";
- }
- validCounter++;
- examSum += Exam;
- System.out.println(studID + "\t" + studName + "\t" + Exam + "\t" + Grade);
- } //End of if/else to decide score
- if (Exam <= EXAM_SCORE_MAX && Exam >= EXAM_SCORE_MIN) { //Deciding max/min scores
- if (Exam > examMax) {
- examMax = Exam;
- } if (Exam < examMin) {
- examMin = Exam;
- } else { }
- } //End of nested if and if/else to decide max/min
- } //End of loop
- if (validCounter != 0) {
- avg = (examSum / validCounter);
- validPercent = ((validCounter / (validCounter + invalidCounter)) * 100.0);
- invalidPercent = ((invalidCounter / (validCounter + invalidCounter)) * 100.0);
- System.out.println(" ");
- System.out.println("Exam MAX is: " + examMax);
- System.out.println("Exam MIN is: " + examMin);
- System.out.println(" ");
- System.out.println("Exam Average is: " + avg);
- System.out.println("Number of valid exams: " + validCounter);
- System.out.println("Number of invalid exams: " + invalidCounter);
- System.out.println("Valid Data: " + validPercent + "%");
- System.out.println("Invalid Data: " + invalidPercent + "%");
- } else {
- System.out.println(" ");
- System.out.println("No valid data! No Max, Min, Avg for exam(s)!");
- System.out.println("Number of valid exams: " + validCounter);
- System.out.println("Number of invalid exams: " + invalidCounter);
- }
- System.out.println("~~~end~~~");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement