当前位置:首页 > JavaScript

js怎么实现gpa计算

2026-03-01 18:03:15JavaScript

GPA计算方法

GPA(Grade Point Average)通常根据成绩等级对应的点数加权平均计算。假设成绩等级与点数对应关系如下:A=4.0,B=3.0,C=2.0,D=1.0,F=0.0。

数据结构设计

使用数组存储课程信息和对应学分、成绩:

const courses = [
  { name: '数学', credits: 4, grade: 'A' },
  { name: '物理', credits: 3, grade: 'B' },
  { name: '化学', credits: 2, grade: 'C' }
];

等级转点数函数

创建将字母等级转换为对应点数的函数:

function gradeToPoint(grade) {
  const gradeMap = { 'A': 4.0, 'B': 3.0, 'C': 2.0, 'D': 1.0, 'F': 0.0 };
  return gradeMap[grade.toUpperCase()] || 0;
}

计算总学分和加权分数

遍历课程数组计算总学分和加权分数总和:

let totalCredits = 0;
let totalWeightedPoints = 0;

courses.forEach(course => {
  const points = gradeToPoint(course.grade);
  totalCredits += course.credits;
  totalWeightedPoints += points * course.credits;
});

计算并输出GPA

最后计算GPA并输出结果:

const gpa = totalWeightedPoints / totalCredits;
console.log(`你的GPA是: ${gpa.toFixed(2)}`);

完整代码示例

function calculateGPA(courses) {
  const gradeMap = { 'A': 4.0, 'B': 3.0, 'C': 2.0, 'D': 1.0, 'F': 0.0 };

  let totalCredits = 0;
  let totalWeightedPoints = 0;

  courses.forEach(course => {
    const points = gradeMap[course.grade.toUpperCase()] || 0;
    totalCredits += course.credits;
    totalWeightedPoints += points * course.credits;
  });

  return totalWeightedPoints / totalCredits;
}

// 使用示例
const myCourses = [
  { name: '数学', credits: 4, grade: 'A' },
  { name: '物理', credits: 3, grade: 'B' },
  { name: '化学', credits: 2, grade: 'C' }
];

const myGPA = calculateGPA(myCourses);
console.log(`你的GPA是: ${myGPA.toFixed(2)}`);

扩展功能

支持不同GPA标准(如4.3分制):

js怎么实现gpa计算

function gradeToPoint(grade, scale = 4.0) {
  if (scale === 4.3) {
    const gradeMap = { 'A+': 4.3, 'A': 4.0, 'A-': 3.7, 'B+': 3.3, 'B': 3.0, 'B-': 2.7, 'C+': 2.3, 'C': 2.0, 'C-': 1.7, 'D': 1.0, 'F': 0.0 };
    return gradeMap[grade] || 0;
  }
  // 默认4.0分制
  const gradeMap = { 'A': 4.0, 'B': 3.0, 'C': 2.0, 'D': 1.0, 'F': 0.0 };
  return gradeMap[grade.toUpperCase()] || 0;
}

标签: jsgpa
分享给朋友:

相关文章

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…