Bawsala

Bawsala Logo Bawsala
جامعة مؤتة – كلية تكنولوجيا المعلومات

حاسبة المعدل

جدول التقديرات والنسب المعتمد بجامعة مؤتة
التقدير المكتوب نطاق العلامة (%)
ممتاز 84.00 - 100
جيد جداً 76.00 - 83.99
جيد 68.00 - 75.99
مقبول 60.00 - 67.99
ضعيف 50.00 - 59.99
راسب 35.00 - 49.99
مواد الفصل الدراسي الحالي
بوابة حساب المعدل التراكمي المئوي (اختياري)
⚠️ العلامة يجب أن تكون من 35 إلى 100
—
مادة معادة من فصول سابقة
`; space.appendChild(card); refreshCardSequenceNumbers(); executeMutahMathEngine(); } function destroyCourseCard(id) { const target = document.getElementById(`mutah-card-wrapper-${id}`); if(target) { target.remove(); refreshCardSequenceNumbers(); executeMutahMathEngine(); } } function refreshCardSequenceNumbers() { const cards = document.querySelectorAll('#bawsala-premium-calculator .mutah-course-card'); cards.forEach((card, i) => { card.querySelector('.row-counter-badge').innerText = i + 1; }); } function toggleCardInputMode(id, mode) { const btnNum = document.getElementById(`m-tab-num-${id}`); const btnLet = document.getElementById(`m-tab-let-${id}`); const label = document.getElementById(`m-dynamic-label-${id}`); const slot = document.getElementById(`m-dynamic-slot-${id}`); const errMsg = document.getElementById(`m-error-msg-${id}`); errMsg.style.display = "none"; if(mode === 'num') { btnNum.classList.add('active'); btnLet.classList.remove('active'); label.innerText = "العلامة (35-100)"; slot.innerHTML = ``; } else { btnNum.classList.remove('active'); btnLet.classList.add('active'); label.innerText = "اختر التقدير المكتوب"; slot.innerHTML = ` `; } executeMutahMathEngine(); } function triggerRepeatSlide(id) { const checkbox = document.getElementById(`repeat-toggle-${id}`); const wrapper = document.getElementById(`repeat-field-container-${id}`); if(checkbox.checked) { wrapper.innerHTML = `
⚠️ العلامة يجب أن تكون من 35 إلى 100
`; wrapper.style.maxHeight = "110px"; wrapper.style.opacity = "1"; } else { wrapper.style.maxHeight = "0"; wrapper.style.opacity = "0"; setTimeout(() => { wrapper.innerHTML = ''; }, 350); } executeMutahMathEngine(); } function validateAndExecuteEngine(inputEl, id, isOldField = false) { const val = parseFloat(inputEl.value); const errMsg = document.getElementById(isOldField ? `m-old-error-msg-${id}` : `m-error-msg-${id}`); if(val > 100) { inputEl.value = 100; if(errMsg) errMsg.style.display = "block"; } else { if(errMsg) errMsg.style.display = "none"; } executeMutahMathEngine(); } function executeMutahMathEngine() { const cards = document.querySelectorAll('#bawsala-premium-calculator .mutah-course-card'); let totalCurrentHours = 0; let weightedCurrentSum = 0; let oldRepeatedHoursToSubtract = 0; let oldRepeatedGradesToSubtract = 0; let breakdownHTML = ''; cards.forEach((card, idx) => { const nameInput = card.querySelector('.card-inp-name').value || `مادة ${idx + 1}`; const hours = parseInt(card.querySelector('.card-inp-hours').value); const scoreField = card.querySelector('.card-inp-score'); const textBadge = card.querySelector(`[id^="m-text-badge-id-"]`); const isRepeat = card.querySelector('.card-inp-repeat-check').checked; const oldScoreField = card.querySelector('.card-inp-old-score'); if(scoreField && scoreField.value !== "") { let grade = parseFloat(scoreField.value); if(grade < 35) grade = 35; if(grade > 100) grade = 100; let estimationText = 'مقبول'; let letterChar = 'B'; textBadge.classList.remove('fail-state'); // التعديل مية بالمية حسب نظام مؤتة: الـ 50 ضعيف وناجح، والرسوب تحت الـ 50 تماماً if(grade >= 84) { estimationText = 'ممتاز'; letterChar = 'A'; } else if(grade >= 76) { estimationText = 'جيد جداً'; letterChar = 'B'; } else if(grade >= 68) { estimationText = 'جيد'; letterChar = 'C'; } else if(grade >= 60) { estimationText = 'مقبول'; letterChar = 'D'; } else if(grade >= 50) { estimationText = 'ضعيف'; letterChar = 'E'; } else { estimationText = 'راسب'; letterChar = 'F'; textBadge.classList.add('fail-state'); } textBadge.innerText = estimationText; totalCurrentHours += hours; weightedCurrentSum += (grade * hours); if(isRepeat && oldScoreField && oldScoreField.value !== "") { let oldGrade = parseFloat(oldScoreField.value); if(oldGrade < 35) oldGrade = 35; if(oldGrade > 100) oldGrade = 100; oldRepeatedHoursToSubtract += hours; oldRepeatedGradesToSubtract += (oldGrade * hours); } breakdownHTML += `
${letterChar} ${nameInput}
${grade}/100
`; } }); const mainHoursDisplay = document.getElementById('mutah-hours-display'); const mainGpaDisplay = document.getElementById('mutah-gpa-display'); const mainBadgeDisplay = document.getElementById('mutah-badge-display'); const cumCard = document.getElementById('cumulative-sidebar-card'); const cumHoursDisplay = document.getElementById('mutah-cumulative-hours-display'); const cumGpaDisplay = document.getElementById('mutah-cumulative-gpa-display'); const cumBadgeDisplay = document.getElementById('mutah-cumulative-badge-display'); document.getElementById('mutah-items-summary').innerHTML = breakdownHTML; if(totalCurrentHours === 0) { mainGpaDisplay.innerText = "0.00"; mainHoursDisplay.innerText = "0"; mainBadgeDisplay.innerText = "أدخل المواد أولاً"; cumCard.style.display = "none"; return; } mainHoursDisplay.innerText = totalCurrentHours; let semesterFinalGPA = weightedCurrentSum / totalCurrentHours; mainGpaDisplay.innerText = semesterFinalGPA.toFixed(2); if(semesterFinalGPA >= 84) mainBadgeDisplay.className = "gpa-pill-badge sem-badge", mainBadgeDisplay.innerText = "+ممتاز — Excellent"; else if(semesterFinalGPA >= 76) mainBadgeDisplay.className = "gpa-pill-badge sem-badge", mainBadgeDisplay.innerText = "+جيد جداً — Very Good"; else if(semesterFinalGPA >= 68) mainBadgeDisplay.className = "gpa-pill-badge sem-badge", mainBadgeDisplay.innerText = "جيد — Good"; else if(semesterFinalGPA >= 60) mainBadgeDisplay.className = "gpa-pill-badge sem-badge", mainBadgeDisplay.innerText = "مقبول — Pass"; else if(semesterFinalGPA >= 50) mainBadgeDisplay.className = "gpa-pill-badge sem-badge", mainBadgeDisplay.innerText = "ضعيف — Weak"; else mainBadgeDisplay.className = "gpa-pill-badge cum-badge-warn", mainBadgeDisplay.innerText = "راسب — Fail"; const prevGpaInput = document.getElementById('mutah-input-prev-gpa').value; const prevHoursInput = document.getElementById('mutah-input-prev-hours').value; const bannerBox = document.getElementById('mutah-trakoomy-banner'); if(prevGpaInput !== "" && prevHoursInput !== "") { let pGpa = parseFloat(prevGpaInput); let pHours = parseFloat(prevHoursInput); let cumulativeTotalHours = (pHours - oldRepeatedHoursToSubtract) + totalCurrentHours; let cumulativeTotalWeighted = ((pGpa * pHours) - oldRepeatedGradesToSubtract) + weightedCurrentSum; let finalCumulativeGPA = cumulativeTotalWeighted / cumulativeTotalHours; cumCard.style.display = "block"; cumHoursDisplay.innerText = cumulativeTotalHours; cumGpaDisplay.innerText = finalCumulativeGPA.toFixed(2); if(finalCumulativeGPA >= 84) cumBadgeDisplay.className = "gpa-pill-badge sem-badge", cumBadgeDisplay.innerText = "ممتاز — Excellent"; else if(finalCumulativeGPA >= 76) cumBadgeDisplay.className = "gpa-pill-badge sem-badge", cumBadgeDisplay.innerText = "جيد جداً — Very Good"; else if(finalCumulativeGPA >= 68) cumBadgeDisplay.className = "gpa-pill-badge sem-badge", cumBadgeDisplay.innerText = "جيد — Good"; else if(finalCumulativeGPA >= 60) cumBadgeDisplay.className = "gpa-pill-badge sem-badge", cumBadgeDisplay.innerText = "مقبول — Pass"; else if(finalCumulativeGPA >= 50) cumBadgeDisplay.className = "gpa-pill-badge sem-badge", cumBadgeDisplay.innerText = "ضعيف — Weak"; else cumBadgeDisplay.className = "gpa-pill-badge cum-badge-warn", cumBadgeDisplay.innerText = "إنذار أكاديمي — Academic Warning"; bannerBox.innerText = `المعدل التراكمي الجديد: ${finalCumulativeGPA.toFixed(2)}% لإجمالي ${cumulativeTotalHours} ساعة محتسبة.`; bannerBox.style.background = "#f5e6e9"; bannerBox.style.color = "#6B001A"; } else { cumCard.style.display = "none"; bannerBox.innerText = "أدخل الساعات والمعدل السابق لتفعيل حساب التراكمي الذكي"; bannerBox.style.background = "#ffffff"; bannerBox.style.color = "#718096"; } } function bootBawsalaEngine() { buildNewCourseCard(); buildNewCourseCard(); document.getElementById('mutah-scale-slide').classList.add('open'); document.getElementById('mutah-scale-slide-icon').style.transform = "rotate(180deg)"; } bootBawsalaEngine();
Scroll to Top