Guest User

Project

a guest
Feb 6th, 2025
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.55 KB | Source Code | 0 0
  1. import java.util.*;
  2. class MenuHandler
  3. {
  4.     static final Scanner Input=new Scanner(System.in);
  5.     int displayMenu()
  6.     {
  7.         int choice;
  8.         System.out.println("Welcome CGPA and SGPA calculater\n 1)Calculate SGPA and CGPA\n2)display SGPA of specific Semester\n 3)display CGPA \n 4) Exit");
  9.         System.out.println("Enter Your Choice");
  10.         choice=MenuHandler.Input.nextInt();
  11.         return choice;
  12.     }
  13.     boolean isPositiveNumber(int n)
  14.     {
  15.         return n>0;
  16.     }
  17. }
  18. class SGPACalculator extends MenuHandler
  19. {
  20.     int getGradePoints(int marks)
  21.     {
  22.         if (marks >= 90) return 10;
  23.         else if (marks >= 80) return 9;
  24.         else if (marks >= 70) return 8;
  25.         else if (marks >= 60) return 7;
  26.         else if (marks >= 50) return 6;
  27.         else if (marks >= 40) return 5;
  28.         else return 0;
  29.     }
  30.     double calculateSGPA(int numberOfSubjects)
  31.     {
  32.         int marks,credits;
  33.         int totalGradePoints=0;
  34.         int totalCredits=0;
  35.         for(int i=1;i<=numberOfSubjects;i++)
  36.         {
  37.             do{
  38.             System.out.println("Enter marks for Subject " + i + " (0-100):");
  39.             marks=Input.nextInt();
  40.             System.out.println("Enter Credits for Subject "+i);
  41.             credits=Input.nextInt();
  42.                 if (marks>=0 && marks<=100 && isPositiveNumber(credits))
  43.                     break;
  44.                 else
  45.                     System.out.println("Invalid Marks or Credits. Please Enter Valid Marks or Credits");
  46.             }while(true);
  47.             int gradePoints=getGradePoints(marks);
  48.             totalGradePoints+=gradePoints*credits;
  49.             totalCredits+=credits;
  50.         }
  51.         double sgpa=(double)totalGradePoints/totalCredits;
  52.         return sgpa;    
  53.     }
  54. }
  55. class CGPACalculator extends SGPACalculator
  56. {
  57.     double[] sgpa;
  58.     double cgpa=0;
  59.     void calculateCGPA(int numberOfSemester)
  60.     {
  61.         int NumberOfSubjects;
  62.         double totalSgpa=0;
  63.         sgpa=new double[numberOfSemester];
  64.         for(int i=0;i<sgpa.length;i++)
  65.         {
  66.             do{
  67.                System.out.println("Enter Number Of Subjects in "+(i+1)+" Semester");
  68.                NumberOfSubjects=Input.nextInt();
  69.                 if(!isPositiveNumber(NumberOfSubjects))
  70.                     System.out.println("Invalid Number.Please Enter Valid Number");
  71.                 else
  72.                     break;
  73.             }while(true);
  74.                sgpa[i]=calculateSGPA(NumberOfSubjects);
  75.                totalSgpa+=sgpa[i];
  76.         }
  77.         cgpa=totalSgpa/numberOfSemester;
  78.     }
  79.     void displayCGPA()
  80.     {
  81.         if(cgpa==0)
  82.             System.out.println("Please Calculate CGPA first");
  83.         else
  84.         System.out.printf("Your CGPA is %.2f throughout the College\n",cgpa);
  85.     }
  86.     void displaySGPA()
  87.     {
  88.         if(sgpa==null || sgpa.length==0)
  89.         {
  90.             System.out.println("Please Calculate SGPA first");
  91.             return;
  92.         }
  93.         do{
  94.         System.out.println("Enter Semester Number(1 to "+sgpa.length+")");
  95.         int Semester=Input.nextInt();
  96.         if(isPositiveNumber(Semester) && Semester<=sgpa.length)
  97.         {
  98.             System.out.printf("SGPA=%.2f\n",sgpa[Semester-1]);
  99.             break;
  100.         }
  101.         }while(true);
  102.     }
  103. }
  104. class CGPA_SGPA_cal
  105. {
  106.     public static void main(String[] args)
  107.     {
  108.         CGPACalculator Calculator=new CGPACalculator();
  109.         int NumberOfSemester;
  110.         boolean flag1=true;
  111.         do
  112.         {
  113.             switch(Calculator.displayMenu())
  114.             {
  115.                 case 1:
  116.                 do{
  117.                 System.out.println("Enter Number of Semesters");
  118.                 NumberOfSemester=MenuHandler.Input.nextInt();
  119.                     if(Calculator.isPositiveNumber(NumberOfSemester))
  120.                         break;
  121.                     else
  122.                         System.out.println("Invalid Number.Please Enter Valid Number");
  123.                 }while(true);
  124.                 Calculator.calculateCGPA(NumberOfSemester);
  125.                 break;
  126.                 case 2:
  127.                 Calculator.displaySGPA();
  128.                 break;
  129.                 case 3:
  130.                 Calculator.displayCGPA();
  131.                 break;
  132.                 case 4:
  133.                 System.out.println("Exiting System");
  134.                 flag1=false;
  135.                 break;
  136.                 default :
  137.                 System.out.println("Invalid choice.Please Enter Valid choice");
  138.             }
  139.         }while(flag1);
  140.         MenuHandler.Input.close();
  141.     }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment