محاسبه معدل

معدلت را حساب کن!

محاسبه معدل

Icgxutx Lhcyoc Icgxutx Lhcyoc 29 بهمن 11:15 · Icgxutx Lhcyoc ·

 

ماشین حساب معدل واحدی با نمودار body { font-family: Tahoma, sans-serif; padding: 20px; background: #f7f7f7; } input { width: 60px; margin: 0 5px; } .term-row { margin-bottom: 10px; } #charts { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; } canvas { background: #fff; border: 1px solid #ccc; padding: 10px; } .chart-container { flex: 1 1 400px; } ماشین حساب معدل واحدی با نمودار تعداد ترم‌ها: 6 + 1 ترم تابستان اختیاری محاسبه معدل و رسم نمودار معدل کل: - نوع نمودار: خطی ستونی نمودار رادار حبابی نقطه‌ای const numTerms = 6; const extraTerm = true; const inputsDiv = document.getElementById('inputs'); for(let i=1; i<=numTerms; i++){ const row = document.createElement('div'); row.className = 'term-row'; row.innerHTML = ترم ${i}: نمره واحد ; inputsDiv.appendChild(row); } if(extraTerm){ const row = document.createElement('div'); row.className = 'term-row'; row.innerHTML = ترم تابستان: نمره واحد ; inputsDiv.appendChild(row); } let chart; function calculateGPA(){ const grades = []; const units = []; for(let i=1;i<=numTerms;i++){ grades.push(parseFloat(document.getElementById('grade'+i).value)||0); units.push(parseFloat(document.getElementById('unit'+i).value)||0); } if(extraTerm){ grades.push(parseFloat(document.getElementById('grade7').value)||0); units.push(parseFloat(document.getElementById('unit7').value)||0); } const totalUnits = units.reduce((a,b)=>a+b,0); const totalGradeUnits = grades.map((g,i)=>g*units[i]).reduce((a,b)=>a+b,0); const gpa = totalGradeUnits/totalUnits; document.getElementById('gpa').textContent = gpa.toFixed(2); renderChart(grades, units); } function renderChart(grades, units){ const ctx = document.getElementById('gpaChart').getContext('2d'); const labels = grades.map((_,i)=>(i+1) + (extraTerm && i==6 ? ' تابستان' : '')); const data = { labels: labels, datasets: [{ label: 'نمره × واحد (تاثیر ترم)', data: grades.map((g,i)=>g*units[i]), backgroundColor: 'rgba(54, 162, 235, 0.5)', borderColor: 'rgba(54, 162, 235, 1)', borderWidth: 1, fill: true }] }; if(chart){ chart.data = data; chart.update(); }else{ chart = new Chart(ctx, { type: document.getElementById('chartType').value, data: data, options: { responsive: true, scales: { y: { beginAtZero: true } } } }); } } function updateChartType(){ if(chart){ chart.config.type = document.getElementById('chartType').value; chart.update(); } }