当前位置:首页 > 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。

数据结构设计

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

js怎么实现gpa计算

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;
}

计算总学分和加权分数

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

js怎么实现gpa计算

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分制):

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实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…