林科大平时分/绩点查询

Csuft 平时分/平时成绩/考试成绩/绩点查询

Installer dette scriptet?
Skaperens foreslåtte skript

Du vil kanskje også like 林科大教务自动评教.

Installer dette scriptet
// ==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>&nbsp;&nbsp;<button id="btn_jd">计算绩点</button>&nbsp;&nbsp;<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 的)");
    });
})();