当前位置:首页 > 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分制):

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

js怎么实现gpa计算

标签: jsgpa
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

js实现dh

js实现dh

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