Csuft 平时分/平时成绩/考试成绩/绩点查询
// ==UserScript==
// @name 林科大平时分/绩点查询
// @namespace http://tampermonkey.net/
// @version 0.5
// @description Csuft 平时分/平时成绩/考试成绩/绩点查询
// @author Xbai-hang
// @match *://*.csuft.edu.cn/jsxsd/kscj/cjcx_list
// @icon https://www.csuft.edu.cn/favicon.ico
// @grant none
// @license MIT
// @require https://cdn.bootcdn.net/ajax/libs/jquery/3.4.1/jquery.min.js
// @require https://cdn.bootcdn.net/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js
// @require https://cdn.bootcdn.net/ajax/libs/jquery-migrate/3.4.0/jquery-migrate.min.js
/* globals jQuery, $, waitForKeyElements */
// ==/UserScript==
'use strict';
var config = {
btn_course_status: true
};
(function() {
$("th[class='Nsb_r_list_thb'] span").append(`<button id="btn_psf">查询平时分</button> <button id="btn_jd">计算绩点</button> <a href="javascript:void(0)" id="dialog_link">显示弹窗</a>`)
var tags_tr_next_div = $("div[class='Nsb_pw Nsb_pw2'] tr");
$($("th[class='Nsb_r_list_thb'] span button")[0]).click(function() {
if (!config.btn_course_status) {
return;
}
tags_tr_next_div.each(function(){
$($(this).children()[4]).remove();
this.innerHTML = this.innerHTML.replace("控制绩点显示","").replace("控制成绩显示","").replaceAll("-->","").replaceAll("<!--","");
});
config.btn_course_status = !config.btn_course_status;
alert("已更改,点击蓝色成绩即可查询");
});
$($("th[class='Nsb_r_list_thb'] span button")[1]).click(function() {
var sum_credit = 0;
var sum_credit_gpa = 0;
// 记录课程编号(用于去除未挂科但是重修导致的重复计算问题(偷懒了,观察发现重修课程在原课程之上,故等于是直接计算重修成绩(你要是重修的比原来的低你就是大笨蛋(❁´◡`❁)))
let courseNoSet = new Set();
tags_tr_next_div.each(function(){
var credit = Number($(this).children()[5].innerText);
var gpa = Number($(this).children()[7].innerText);
var courseNo = Number($(this).children()[2].innerText);
// 绩点为 0 不计入统计(缺考、挂科、重修了等等)
if (gpa == 0 || courseNoSet.has(courseNo)) {
return;
}
courseNoSet.add(courseNo);
sum_credit += credit;
sum_credit_gpa += gpa * credit;
});
alert("平均学分绩(绩点*学分/总学分)为: " + (sum_credit_gpa / sum_credit).toFixed(2) + "\n Warning: 并未计算未重修的课程(绩点为 0 的)");
});
})();