CGPA Calculator document.addEventListener(“DOMContentLoaded”, function () { const gradeScale = { “A+”: 4.00, “A”: 3.75, “A-“: 3.50, “B+”: 3.25, “B”: 3.00, “B-“: 2.75, “C+”: 2.50, “C”: 2.25, “D”: 2.00, “F”: 0.00 }; const semestersContainer = document.getElementById(“semesters”); const cgpaResult = document.getElementById(“cgpa-result”); const semesterCountInput = document.getElementById(“semester-count”); const addSemesterBtn = document.getElementById(“add-semester”); const calculateCgpaBtn = document.getElementById(“calculate-cgpa”); function createSemesterFields(numSemesters) { semestersContainer.innerHTML = “”; for (let i = 0; i < numSemesters; i++) { const semesterDiv = document.createElement("div"); semesterDiv.classList.add("semester"); semesterDiv.innerHTML = `

Semester ${i + 1}

Add Subject Remove Subject `; createSubjectFields(semesterDiv.querySelector(“.subjects”)); semestersContainer.appendChild(semesterDiv); const addSubjectBtn = semesterDiv.querySelector(“.add-subject”); const removeSubjectBtn = semesterDiv.querySelector(“.remove-subject”); addSubjectBtn.addEventListener(“click”, function () { createSubjectFields(semesterDiv.querySelector(“.subjects”)); }); removeSubjectBtn.addEventListener(“click”, function () { const subjects = semesterDiv.querySelectorAll(“.subject”); if (subjects.length > 1) { subjects[subjects.length – 1].remove(); } }); } } function createSubjectFields(container) { const div = document.createElement(“div”); div.classList.add(“subject”); div.innerHTML = ` ${Object.keys(gradeScale).map(g => `${g}`).join(”)} `; container.appendChild(div); } addSemesterBtn.addEventListener(“click”, function () { const numSemesters = parseInt(semesterCountInput.value); if (isNaN(numSemesters) || numSemesters { let semesterTotalPoints = 0, semesterTotalCredits = 0; semester.querySelectorAll(“.subject”).forEach(subject => { const grade = subject.querySelector(“.grade”).value; const credit = parseFloat(subject.querySelector(“.credit”).value); if (gradeScale[grade] !== undefined && !isNaN(credit)) { semesterTotalPoints += gradeScale[grade] * credit; semesterTotalCredits += credit; } }); let semesterCGPA = semesterTotalCredits > 0 ? (semesterTotalPoints / semesterTotalCredits) : 0; semesterCGPAs.push(semesterCGPA); totalGradePoints += semesterTotalPoints; totalCredits += semesterTotalCredits; }); let overallCGPA = totalCredits > 0 ? (totalGradePoints / totalCredits) : 0; cgpaResult.innerHTML = `

Overall CGPA: ${overallCGPA.toFixed(2)}

`; semesterCGPAs.forEach((cgpa, index) => { const semesterResult = document.createElement(‘p’); semesterResult.textContent = `Semester ${index + 1} CGPA: ${cgpa.toFixed(2)}`; cgpaResult.appendChild(semesterResult); }); }); semesterCountInput.value = 1; createSemesterFields(1); }); * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif; background-color: #f2f4f7; display: flex; flex-direction: column; align-items: center; min-height: 100vh; margin: 0; } .titleBox { width: 100%; background-color: #343a40; color: #fff; font-size: 60px; font-weight: bold; text-align: center; padding: 20px 0; margin-bottom: 50px; align-items: center; justify-content: center; display: flex; font-family:Impact, Haettenschweiler, ‘Arial Narrow Bold’, sans-serif; } .titleHeader2 { color: rgb(255, 255, 255); display: inline; background-color: #73ff5b; padding: 15px; border-radius: 20px 20px; } @keyframes colorChange { 0% { color: #73ff5b; } /* Red */ 25% { color: #15162a; } /* Orange */ 50% { color: #15162a; } /* Green */ 75% { color: #15162a; } /* Blue */ 100% { color: #73ff5b; } /* Back to Red */ } .titleHeader2 { display: inline-block; font-size: 60px; font-weight: bold; padding: 15px; border-radius: 20px; animation: colorChange 10s infinite linear; /* Apply animation */ } .container { max-width: 600px; width: 90%; background-color: #fff; padding: 30px; border-radius: 10px; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); text-align: center; } h1 { font-size: 28px; color: #4e73df; margin-bottom: 20px; } h3 { color: #333; font-size: 20px; margin-bottom: 10px; } h2 { color: #333; font-size: 22px; margin-top: 20px; font-weight: bold; } .semester { margin-bottom: 30px; padding: 20px; border-radius: 10px; background-color: #f9fafc; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .subjects { margin: 15px 0; } .subject { margin: 10px 0; padding: 15px; background-color: #fff; border-radius: 8px; display: flex; gap: 10px; justify-content: space-between; align-items: center; transition: box-shadow 0.3s ease; } .subject:hover { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } select, input { padding: 10px; font-size: 14px; border: 1px solid #ccc; border-radius: 5px; flex: 1; } button { padding: 12px 20px; font-size: 16px; color: #fff; background-color: #4e73df; border: none; border-radius: 5px; cursor: pointer; margin-top: 10px; transition: background-color 0.3s ease; } button:hover { background-color: #2e59d9; } .add-subject { background-color: #28a745; } .remove-subject { background-color: #dc3545; } .add-subject:hover { background-color: #218838; } .remove-subject:hover { background-color: #c82333; }
Tool
xD

CGPA Calculator

Add Semesters
Calculate CGPA
Design a site like this with WordPress.com
Get started