仅限2018级研究生使用,仅计算2018-2019学年成绩
// ==UserScript== // @name UESTC 18级研究生成绩计算 // @namespace http://tampermonkey.net/ // @version 0.16 // @description 仅限2018级研究生使用,仅计算2018-2019学年成绩 // @author github.com/yidadaa // @match http://yjsjy.uestc.edu.cn/pyxx/pygl/cjcx // @grant none // ==/UserScript== (function() { const rawText = `2018-2019春 0100025001 专利挖掘与文件撰写 92 2018-2019春 0108106003 现代数字信号处理理论与算法 74.05 2018-2019春 0108106006 信息论 76.98 2018-2019春 0108106008 数字通信 74.19 2018-2019春 0108106009 图像与视频处理 77.94 2018-2019春 0108106010 通信网络算法思维 89.36 2018-2019春 0108106011 现代信号处理方法 87.05 2018-2019春 0108107001 无线传感器网络及信号处理 73.56 2018-2019春 0108107008 雷达成像理论与实现 87.67 2018-2019春 0108107010 机器学习 81.52 2018-2019春 0108107013 模糊逻辑 88.93 2018-2019春 0108107020 光纤传感网络 81.05 2018-2019春 0108107021 高维空间信号处理基础理论与方法 91.27 2018-2019春 0152086010 电子系统仿真理论与技术 68.9 2018-2019春 0152087004 数字集成电路与系统设计 60.32 2018-2019春 0208096001 近代天线理论 84.54 2018-2019春 0208096004 计算电磁学 76.97 2018-2019春 0208096005 导波场论 79.29 2018-2019春 0208096006 射频集成电路 83.07 2018-2019春 0208096008 集成电子学 77.76 2018-2019春 0208096009 薄膜材料及技术 79.19 2018-2019春 0208096012 #米电子学与自旋电子学 81.92 2018-2019春 0208096017 微波电子学 80.75 2018-2019春 0208096020 等离子体物理与等离子体电子学 84.46 2018-2019春 0208096021 强流电子光学 88.51 2018-2019春 0208096026 铁磁物理与器件 77.32 2018-2019春 0208096027 固体微观理论 83.82 2018-2019春 0208097001 近代微波测量 85.01 2018-2019春 0208097002 非均匀介质中的场与波 86.08 2018-2019春 0208097004 电磁兼容原理与应用 82.44 2018-2019春 0208097006 毫米波与太赫兹电路理论与技术 80.57 2018-2019春 0208097010 柔性MEMS系统与集成(全英文) 90.65 2018-2019春 0208097013 半导体功率器件与智能功率IC 85.05 2018-2019春 0208097015 VHDL语言与数字集成电路设计 71.4 2018-2019春 0208097016 微细加工与MEMS技术 86.67 2018-2019春 0208097023 #米材料及#米结构 70.3 2018-2019春 0208097025 微#光学材料与器件 76.2 2018-2019春 0208097028 电磁场有限元方法 84.45 2018-2019春 0208097031 电子回旋脉塞理论与技术 81.4 2018-2019春 0208097039 微波磁性器件 81.25 2018-2019春 0208097042 磁性功能材料及应用 86 2018-2019春 0208097043 电子陶瓷与器件 91 2018-2019春 0208097045 无源集成技术 84.59 2018-2019春 0308056002 固体微观理论 87.89 2018-2019春 0308056005 电子陶瓷物理 82.2 2018-2019春 0308057001 #米电子学与自旋电子学 79.57 2018-2019春 0308057005 磁性功能材料及应用 73.1 2018-2019春 0308176003 电化学原理和应用 83.17 2018-2019春 0308176004 #米材料及#米结构 93.99 2018-2019春 0408026003 最优化设计方法 84.27 2018-2019春 0408026004 机械动力学 63.16 2018-2019春 0408026005 机电系统智能控制 91.44 2018-2019春 0408026007 现代设计理论与方法 91.75 2018-2019春 0408026008 现代测试导论 79.03 2018-2019春 0408027009 电子设备热设计 89.45 2018-2019春 0408027010 可靠性设计 88 2018-2019春 0408027011 现代传感技术 84.64 2018-2019春 0408086005 电力系统运行与控制 70.98 2018-2019春 0408086006 现代电力电子技术 80.05 2018-2019春 0452016001 机电测控技术 79.83 2018-2019春 0508036003 半导体光电子学 69.38 2018-2019春 0508036004 光波导理论与技术 83.66 2018-2019春 0508036006 量子光学 78.9 2018-2019春 0508036010 光电信息检测 82.65 2018-2019春 0508037002 光电成像导论 86.16 2018-2019春 0508037003 非线性光学 75.98 2018-2019春 0552026029 光电探测技术 78.16 2018-2019春 0552026030 激光技术及应用 80.25 2018-2019春 0608046001 信号处理方法及应用 74.3 2018-2019春 0608046002 现代信号处理 76.47 2018-2019春 0608046003 计量方法与误差理论 76.6 2018-2019春 0608047004 电子系统故障诊断与测试性技术 94.5 2018-2019春 0608047006 射频电路设计 85.27 2018-2019春 0608047007 微波电路的设计、优化及测试技术 89 2018-2019春 0608116003 自适应控制 79.01 2018-2019春 0608116004 模式识别 81.18 2018-2019春 0608116005 先进控制技术 81.26 2018-2019春 0608117003 复杂系统性能评价和优化 发布 2018-2019春 0608117004 计算智能理论与方法 80.75 2018-2019春 0608117006 智能控制理论及应用 88.7 2018-2019春 0608117009 数字图象处理 86.51 2018-2019春 0608117010 机器学习 83.34 2018-2019春 0608117011 电气传动与自动控制 88 2018-2019春 0708166006 专业英语 80.67 2018-2019春 0766667002 Remote sensing of vegetation 89.27 2018-2019春 0808126006 机器学习 84.83 2018-2019春 0808126007 大数据分析与挖掘 85.61 2018-2019春 0808126008 嵌入式系统设计 80.92 2018-2019春 0808126011 计算复杂性 88.74 2018-2019春 0808126012 高级计算机视觉 81.54 2018-2019春 0808126013 组合设计与组合优化理论 78.64 2018-2019春 0808127012 GPU并行编程 76.5 2018-2019春 0808396002 软件安全性分析 69.12 2018-2019春 0808396003 网络安全技术 84.04 2018-2019春 0808396004 现代密码理论 75.15 2018-2019春 0908356003 网络计算模式 86.91 2018-2019春 0908356004 软件架构模型与设计 85.37 2018-2019春 0908356005 高级计算机结构 72.4 2018-2019春 0908357004 UNIX/Linux操作系统内核结构 80.84 2018-2019春 0908357005 数据分析与数据挖掘 97.8 2018-2019春 1008116003 现代测控通信技术 88.13 2018-2019春 1008116004 系统工程理论与方法 87.15 2018-2019春 1008116005 现代飞行器GNC理论 87.07 2018-2019春 1008117002 空间探测及其天线技术 80 2018-2019春 1008117008 系统可测性设计技术 72 2018-2019春 1100016002 应用数学理论与方法 86.71 2018-2019春 1100016003 图论及应用 80.12 2018-2019春 1100025001 数学建模 88.75 2018-2019春 11005001 工程伦理与学术道德 82.78 2018-2019春 1107016005 数值分析 87.56 2018-2019春 1107016007 数值代数 80.84 2018-2019春 1107016008 偏微分方程数值解法 72.97 2018-2019春 1107016009 近世代数 69.32 2018-2019春 1107017006 复杂网络基础选讲 82 2018-2019春 1107017007 不确定性的数学理论 85.8 2018-2019春 1107017009 泛函微分方程及定性理论 94 2018-2019春 1107146003 数理统计学 74.46 2018-2019春 1107146004 数理经济学 81.69 2018-2019春 1107146006 现代回归分析 91.98 2018-2019春 1207026006 高等量子力学 84.95 2018-2019春 1207026007 固体波谱学 79.7 2018-2019春 1207026012 计算电磁学 80.66 2018-2019春 1207026018 高等光学 76.94 2018-2019春 1207027004 高等固体理论 81.49 2018-2019春 1207027006 亚波长光学 84.4 2018-2019春 1207027007 光学系统设计 87.15 2018-2019春 1207027010 瞬态电磁学 80 2018-2019春 1207027017 弦理论 87.5 2018-2019春 1207027018 导波场论与器件原理 91.42 2018-2019春 1207027020 电磁学中的格林函数 64.95 2018-2019春 1207028001 学科前沿知识专题讲座 80 2018-2019春 13005001 硕士生英语阅读与翻译 60 2018-2019春 13005002 硕士生英语听说与写作 85 2018-2019春 13005014 硕士研究生学位英语 60.36 2018-2019春 13006001 博士生英语阅读 81.08 2018-2019春 13006008 直博生英语阅读与翻译 56.5 2018-2019春 1310026004 临床科研设计 76.5 2018-2019春 1310556004 临床药物治疗学 80.88 2018-2019春 1310556005 临床药学实践 89.64 2018-2019春 1310556006 个体化药物治疗 81.85 2018-2019春 1310556007 药学监护实践与方法 76.77 2018-2019春 1310726001 生物医学工程导论 81.33 2018-2019春 1310726002 分子免疫学 72.46 2018-2019春 1310726005 疾病基因研究进展 91.78 2018-2019春 1404026003 异常心理学 88.25 2018-2019春 1404026005 心理生理测量 91.17 2018-2019春 1404027001 注意和记忆专题 85.6 2018-2019春 1407106001 高级生物化学 80.11 2018-2019春 1407106002 高级细胞生物学 84.08 2018-2019春 1407106003 神经免疫学 81.78 2018-2019春 1407106005 生物力学与组织工程学 85.28 2018-2019春 1407106008 神经生物学 82.99 2018-2019春 1408316002 生物医学信号处理 83.56 2018-2019春 1408316003 神经网络方法 84.91 2018-2019春 1408316004 脑科学基础 76.72 2018-2019春 1408317001 统计检验方法 56.8 2018-2019春 1452306002 计算机辅助药物设计综合实验 89 2018-2019春 1500005001 工程伦理与学术道德 86.67 2018-2019春 1500005002 知识产权与信息检索 91.93 2018-2019春 1502026001 高级计量经济学 85.55 2018-2019春 1502026003 高级宏观经济学 84.22 2018-2019春 1502026007 应用随机过程 70.18 2018-2019春 1502516002 金融衍生工具 86.5 2018-2019春 1512016002 数据分析与决策 69.97 2018-2019春 1512016003 信息经济学与博弈论 79.75 2018-2019春 1512026002 战略管理研究 81.25 2018-2019春 1512026005 营销管理研究 86.21 2018-2019春 1512026006 创新管理研究 86.24 2018-2019春 1512026008 现代管理理论 89.31 2018-2019春 16005011 自然辩证法概论 75.2 2018-2019春 1605036003 新媒体研究 83.24 2018-2019春 1605036004 新闻传播学研究方法 86.21 2018-2019春 1605036005 中外新闻传播学史 85.24 2018-2019春 1605526001 媒介经营与管理 84.09 2018-2019春 1605526002 传播法规与媒介伦理 84.92 2018-2019春 1612046004 公共经济与公共#策 86.52 2018-2019春 1612046005 电子#务 86.43 2018-2019春 1700005001 硕士研究生学位英语 69.44 2018-2019春 1700005002 博士研究生英语 79.2 2018-2019春 1700005003 直博生英语 81.33 2018-2019春 1705025001 高级日语 83.6 2018-2019春 1705025002 高级德语 93.75 2018-2019春 1705025003 高级法语 83.54 2018-2019春 1705026002 文#学与##科学研究方法 85.74 2018-2019春 1705026004 文学批评与文学理论 83.32 2018-2019春 1705027008 外国文学经典阅读与批评(II) 87.77 2018-2019春 1705516002 文学翻译 81.31 2018-2019春 1705516003 非文学翻译 83.83 2018-2019春 1705516004 电子信息类科技笔译 83.09 2018-2019春 1705516005 电子信息类科技口译 85.39 2018-2019春 1705517004 计算机辅助翻译 83.7 2018-2019春 1766666002 翻译技术与项目管理 83.15 2018-2019春 1803056004 马克思###治经济学专题研究 85.41 2018-2019春 1803056006 当代####思潮研究 83.6 2018-2019春 1803057004 ##共产#治国理#理论与实践专题研究 85.48 2018-2019春 2000025002 体育俱乐部 95.54 2018-2019春 2208106001 现代无线与移动通信系统 77.97 2018-2019春 2208106002 纠错编码 82.03 2018-2019春 2208106003 安全通信 74.53 2018-2019秋 0108106001 最优化理论与应用 76.60 2018-2019秋 0108106002 信号理论与分析应用 79.85 2018-2019秋 0108106003 现代数字信号处理理论与算法 78.50 2018-2019秋 0108106004 通信网络系统基础 74.54 2018-2019秋 0108106005 光纤通信系统和网络 67.18 2018-2019秋 0108106006 信息论 80.91 2018-2019秋 0108106007 信号检测与估计 74.92 2018-2019秋 0108106011 现代信号处理方法 92.50 2018-2019秋 0108106012 随机过程及应用 75.87 2018-2019秋 0108107006 ASIC设计 85.04 2018-2019秋 0208096001 近代天线理论 86.82 2018-2019秋 0208096002 非线性微波电路与系统 79.30 2018-2019秋 0208096003 高等电磁场理论 77.79 2018-2019秋 0208096004 计算电磁学 88.70 2018-2019秋 0208096005 导波场论 78.33 2018-2019秋 0208096007 现代网络理论与综合 82.73 2018-2019秋 0208096008 集成电子学 86.60 2018-2019秋 0208096010 VLSI电路和系统设计 82.32 2018-2019秋 0208096011 半导体器件物理 75.20 2018-2019秋 0208096013 模拟集成电路分析与设计 76.44 2018-2019秋 0208096014 信息材料基础 86.20 2018-2019秋 0208096015 材料物理学 81.11 2018-2019秋 0208096016 #电子学与微真空电子学 85.00 2018-2019秋 0208096017 微波电子学 90.23 2018-2019秋 0208096018 相对论电动力学 80.52 2018-2019秋 0208096019 带电粒子的电磁辐射及应用 67.94 2018-2019秋 0208096030 模拟集成电路基础 84.17 2018-2019秋 0208096051 嵌入式系统 93.33 2018-2019秋 0208096053 HDL数字电路设计 74.17 2018-2019秋 0208096054 基于传感器的系统 72.00 2018-2019秋 0208096055 ASIC和FPGA嵌入式硬件设计 76.25 2018-2019秋 0208096105 模拟集成电路设计 88.50 2018-2019秋 0208096202 模拟集成电路分析与设计 77.80 2018-2019秋 0208096203 半导体器件物理 78.55 2018-2019秋 0208096204 信息材料基础 79.00 2018-2019秋 0208097041 材料表面与界面物理 80.22 2018-2019秋 0308056001 材料物理学 80.41 2018-2019秋 0308056006 铁磁学 86.48 2018-2019秋 0308056007 材料表面与界面物理 82.30 2018-2019秋 0308056018 物理与化学电源基础 81.50 2018-2019秋 0308057018 材料分析理论与方法 81.30 2018-2019秋 0308176001 高等无机化学 81.48 2018-2019秋 0308176002 高等有机化学 82.75 2018-2019秋 0408026001 现代控制理论 76.62 2018-2019秋 0408026002 有限元理论与建模方法 85.21 2018-2019秋 0408026003 最优化设计方法 89.00 2018-2019秋 0408086001 高等电力系统分析 80.81 2018-2019秋 0408086002 非线性系统理论 88.50 2018-2019秋 0408086003 最优化理论与应用 70.86 2018-2019秋 0408086004 现代控制理论 90.34 2018-2019秋 0508036002 光学原理 70.75 2018-2019秋 0508036003 半导体光电子学 82.34 2018-2019秋 0508036005 敏感材料与传感器 82.58 2018-2019秋 0508036007 激光物理 85.43 2018-2019秋 0508036012 光电薄膜材料与技术 78.52 2018-2019秋 0508037017 光电探测原理与技术 76.43 2018-2019秋 0608046002 现代信号处理 81.10 2018-2019秋 0608046004 信号检测与估计 76.33 2018-2019秋 0608046005 现代检测技术 72.07 2018-2019秋 0608046006 微波测量 80.33 2018-2019秋 0608046008 集成电路诊断测试与可测性设计技术 80.00 2018-2019秋 0608116001 最优化理论与应用 78.95 2018-2019秋 0608116002 线性系统理论 81.51 2018-2019秋 0608116003 自适应控制 86.00 2018-2019秋 0608116004 模式识别 84.70 2018-2019秋 0608117002 非线性系统理论 93.54 2018-2019秋 0608117008 计算机视觉 84.50 2018-2019秋 0708166002 新型遥感信息处理与应用技术 80.41 2018-2019秋 0708166003 地理信息理论与技术 80.13 2018-2019秋 0708166004 定量遥感 79.40 2018-2019秋 0708166005 导航与位置服务技术 89.95 2018-2019秋 0808126001 组合数学 73.26 2018-2019秋 0808126002 算法设计与分析 72.03 2018-2019秋 0808126003 高级计算机系统结构 69.41 2018-2019秋 0808126004 高级网络计算 77.48 2018-2019秋 0808126005 计算机高级图形学 77.59 2018-2019秋 0808126006 机器学习 86.80 2018-2019秋 0808126009 有限自动机理论 83.32 2018-2019秋 0808126010 分布式系统 72.87 2018-2019秋 0808126014 统计学习理论及应用 82.02 2018-2019秋 0808126015 形式化方法 79.52 2018-2019秋 0808126016 网络安全 78.91 2018-2019秋 0808396001 信息保护理论与技术 84.72 2018-2019秋 0808396003 网络安全技术 88.60 2018-2019秋 0808396005 近世代数 81.10 2018-2019秋 0908356001 随机过程与排队论 73.73 2018-2019秋 0908356002 组合优化理论 85.26 2018-2019秋 0908356004 软件架构模型与设计 85.20 2018-2019秋 0908356006 网络安全理论与技术 81.40 2018-2019秋 0908357002 算法设计与分析 84.07 2018-2019秋 1008116002 现代导航与制导技术 79.07 2018-2019秋 1100016001 随机过程及应用 79.13 2018-2019秋 1100016002 应用数学理论与方法 86.38 2018-2019秋 1100016003 图论及应用 84.82 2018-2019秋 1100016004 矩阵理论 74.59 2018-2019秋 1100016005 数学物理方程与特殊函数 73.21 2018-2019秋 1100016006 应用泛函分析 73.22 2018-2019秋 1100016007 数论 76.58 2018-2019秋 1107016001 泛函分析 77.07 2018-2019秋 1107016002 偏微分方程 87.23 2018-2019秋 1107016003 动力系统稳定性理论及应用 92.77 2018-2019秋 1107016004 最优化理论与应用 80.84 2018-2019秋 1107016005 数值分析 77.92 2018-2019秋 1107016006 矩阵分析 76.48 2018-2019秋 1107016010 模糊数学基础 93.54 2018-2019秋 1107146001 高等概率论 84.91 2018-2019秋 1107146002 随机过程 76.20 2018-2019秋 1107146005 抽样技术 92.00 2018-2019秋 1207026002 量子场论(一) 60.00 2018-2019秋 1207026004 高等电磁场理论 69.89 2018-2019秋 1207026006 高等量子力学 88.77 2018-2019秋 1207026009 现代光学 75.78 2018-2019秋 1207026014 高等统计物理 89.39 2018-2019秋 1207026019 量子信息导论 92.18 2018-2019秋 1207027001 聚变等离子体物理 89.87 2018-2019秋 1207027004 高等固体理论 89.20 2018-2019秋 1207027011 量子压电电子学 90.10 2018-2019秋 1310026001 专业课 71.55 2018-2019秋 1310026002 专业英语 78.04 2018-2019秋 1310026003 医学文#检索 88.33 2018-2019秋 1310026005 医学统计学 77.93 2018-2019秋 1310026006 分子生物学与生物化学 77.87 2018-2019秋 1310556001 临床药理学 86.70 2018-2019秋 1310556002 临床药学 81.31 2018-2019秋 1310556003 药物#策与药事管理学方法论 86.55 2018-2019秋 1310556008 药物现代评价方法 86.59 2018-2019秋 1310556009 药理研究技术与方法 85.32 2018-2019秋 1310556010 药物合成与制剂研究 82.41 2018-2019秋 1310556011 应用分子药理学 78.44 2018-2019秋 1310726003 实验动物学 88.91 2018-2019秋 1310726004 医学遗传学 85.83 2018-2019秋 1404026001 心理学史 85.53 2018-2019秋 1404026002 心理学研究方法与实验设计 87.40 2018-2019秋 1404026004 认知神经科学 78.27 2018-2019秋 1407106001 高级生物化学 78.75 2018-2019秋 1407106002 高级细胞生物学 82.17 2018-2019秋 1407106004 高级分子生物学 78.57 2018-2019秋 1407106006 生物物理学 85.50 2018-2019秋 1407106007 发育遗传学 83.30 2018-2019秋 1407106008 神经生物学 81.00 2018-2019秋 1408316001 医学成像原理 82.55 2018-2019秋 1500005001 工程伦理与学术道德 82.32 2018-2019秋 1502026002 高级微观经济学 76.84 2018-2019秋 1502026005 区域经济分析 89.00 2018-2019秋 1502026006 产业组织理论 79.67 2018-2019秋 1502026008 公司金融 74.99 2018-2019秋 1502026010 金融经济学 86.28 2018-2019秋 1502516001 投资学 90.67 2018-2019秋 1512016001 运筹学(II) 80.39 2018-2019秋 1512016004 管理科学研究方法 89.13 2018-2019秋 1512016005 博弈论与合约 68.17 2018-2019秋 1512016006 现代优化理论 84.50 2018-2019秋 1512026001 管理研究方法 79.58 2018-2019秋 1512026003 公司财务研究 77.13 2018-2019秋 1512026004 组织管理研究 87.35 2018-2019秋 1605036001 新闻学理论 87.72 2018-2019秋 1605036002 传播学理论及应用 85.99 2018-2019秋 1605036006 新闻传播实务 83.00 2018-2019秋 1612046001 公共管理学 78.66 2018-2019秋 1612046002 #治学 84.63 2018-2019秋 1612046003 ##科学研究方法 79.62 2018-2019秋 1700005001 硕士研究生学位英语 70.00 2018-2019秋 1705026001 汉语经典阅读与批评 88.33 2018-2019秋 1705026003 语言学通论 82.19 2018-2019秋 1705026005 翻译学理论 81.65 2018-2019秋 1705026007 国别与区域研究概论 90.94 2018-2019秋 1705515001 ##语言文化 86.88 2018-2019秋 1705516001 翻译概论 81.29 2018-2019秋 1800005001 ##特色####理论与实践 85.81 2018-2019秋 1800005004 ##马克思##与当代 81.91 2018-2019秋 1803056001 马克思##经典文#研究 83.47 2018-2019秋 1803056002 马克思##基本原理研究 79.49 2018-2019秋 1803056003 马克思##发展史研究 84.52 2018-2019秋 1803056005 ##近现代史专题研究 87.33 2018-2019秋 1803057005 ###治教育学前沿问题研究 86.98 ` const $ = s => document.querySelector(s) let gradeTable = {} // 处理成绩数据库 rawText.split('\n').forEach(v => { let line = v.split('\t') if (line.length !== 4) return let code = +line[1] if (!gradeTable[code]) { gradeTable[code] = [] } gradeTable[code].push({ sem: line[0], code: line[1], name: line[2], value: line[3] }) }) console.log(gradeTable) // 构造dom的函数 const buildAvg = (code, sem, grade, weight) => { if (!gradeTable[code]) return '无平均分信息' let index = gradeTable[code].findIndex(v => v.sem === sem) index = index < 0 ? 0 : index let avgGrade = +gradeTable[code][index].value let diff = grade - avgGrade return `<span>${avgGrade},</span><span style="color: ${diff >= 0 ? 'green' : 'red'}"> ${diff.toFixed(2)}, ${(diff * weight).toFixed(2)}</span>` } const buildSelector = (values, course) => { // 如果只有一个学期,则返回学期说明 if (values.length < 2) { let text = document.createElement('span') text.innerText = values.map(v => v.sem).join('\n') return text } // 如果有两个学期,增加下拉框 const dom = document.createElement('select') dom.onchange = e => { const pnode = course.node const offset = pnode.children.length - 10 pnode.children[6 + offset].innerHTML = buildAvg(course.code, getSem(course.node), course.grade, course.weight) render() } const defaultSem = parseSemFromExam(course.node) const content = values.map((v, i) => { return `<option value=${v.sem} ${i == defaultSem ? 'selected' : ''}>${v.sem}</option>` }).join('\n') dom.innerHTML = content return dom } const buildQRCode = () => { const dom = document.createElement('div') dom.style = 'width: 100%; display: flex; justify-content: center; flex-wrap: wrap; margin-bottom: 100px;' dom.innerHTML = `<div style="width: 100%; text-align: center; font-weight: bold; line-height: 1.2; padding-bottom: 20px;"> <h3>使用说明</h3> <p> <div>本插件在计算成绩时默认将低于60分的科目剔除,你可以手动点击每行行首将其添加上;</div> <div>有的课程在上下两个学期都有开设,所以会有两个平均分,如果计算错误,可以手动在右侧下拉框选择学期。</div> </p> <div>如果这个脚本帮到了你,可以<a href="https://blog.simplenaive.cn/qrcode.png">请作者喝瓶阔乐</a>;<br>如果遇到了BUG,请发邮件至 [email protected] 反馈。</div> </div>` return dom } // 获取学期信息 const getSem = (node) => { return (node.children[node.children.length - 1].children[0] || {}).value } // 从考试时间中解析学期信息 const parseSemFromExam = (node) => { const examText = node.children[node.children.length - 3].innerText let time = examText.split(/\s/) if (time.length < 2) return 0 time = new Date(time[0]) return time > new Date("2019-03-15") ? 1 : 0 } // 处理学生成绩 let stuGradeTable = {} let groupName = '' // 设置表头 const head = $('#tbl > thead').children[0] head.children[1].innerText = '选中' head.children[8].innerText = '平均, 差值, 加权差值' head.children[head.children.length - 1].innerText = '学期' // 渲染数据 Array.from($('#tbl > tbody').children).forEach(v => { // 设置索引 const len = v.children.length let offset = 0 if (len == 11) { groupName = v.children[1].innerText offset = 1 } // 准备加入索引 if (!stuGradeTable[groupName]) stuGradeTable[groupName] = [] const course = { node: v, grade: parseFloat(v.children[3 + offset].innerText), weight: +v.children[4 + offset].innerText, code: +v.children[1 + offset].innerText } // 添加交互按钮 const selected = course.grade >= 60 && groupName.indexOf('基础') > -1 v.children[0].innerHTML = '<span style="color: white; pointer-events: none">√</span>' v.children[0].style = selected ? 'background: #82af6f!important; cursor: pointer' : 'cursor: pointer' v.children[0].dataset.selected = +selected v.children[0].onclick = e => { const selected = 1 - e.target.dataset.selected e.target.dataset.selected = selected e.target.style = selected ? 'background: #82af6f!important; cursor: pointer' : 'cursor: pointer' render() } // 添加学期下拉框 if (gradeTable[course.code]) { v.children[v.children.length - 1].appendChild(buildSelector(gradeTable[course.code], course)) } // 添加平均分信息 v.children[6 + offset].innerHTML = buildAvg(course.code, getSem(course.node), course.grade, course.weight) stuGradeTable[groupName].push(course) }) console.log(stuGradeTable) const comput###mmary = () => { let ret = 0 Object.keys(stuGradeTable).forEach(v => { // 统计平均分 ret += stuGradeTable[v].reduce((p, c) => { if (c.node.children[0].dataset.selected < 1) return p const sem = getSem(c.node) let index = gradeTable[c.code].findIndex(v => v.sem === sem) index = index < 0 ? 0 : index const avgGrade = +gradeTable[c.code][index].value let grade = (c.grade - avgGrade) * c.weight return grade + p }, 0) }) return ret } function render() { const line = document.createElement('tr') const sum = comput###mmary().toFixed(2) const content = `<tr> <td align="center" class="tdContent">加权总分</td> <td align="center" class="tdContent" colspan="8"><strong id="summary">${sum}</strong></td> </tr>` line.innerHTML = content if (!$('#summary')) $('#objTablesxf > tbody').appendChild(line) else $('#summary').innerText = sum } render() document.body.appendChild(buildQRCode()) })();