// ==UserScript== // @name Привет,Друг! // @namespace Devour // @version __(oДo)~` // @description кто знает,кто знает. // @author Devour // @match https://edusys.wvpn.hrbeu.edu.cn/jsxsd/kscj/cjcx_list // @match http://edusys.hrbeu.edu.cn/jsxsd/kscj/cjcx_list // @grant none // @require https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js // @downloadURL none // ==/UserScript== (function () { 'use strict'; var GradeList = document.getElementById("dataList"); var GradeAvg = 0, CourseGradeSum = 0, CreditSum = 0; var GeneralEducationCredit = 0, PCCategory_1 = 0, PCCategory_2 = 0, PCCategory_3 = 0, PCCategory_4 = 0; var PC_A_Credit = 0, PC_B_Credit = 0, PC_C_Credit = 0, PC_D_Credit = 0, PC_E_Credit = 0; var PC_F_Credit = 0, PC_G_Credit = 0; var ElectiveCourseCredit = 0; var Correction = 0; function PC_Credit_Calc(CourseType, Credit) { switch (CourseType) { case "中外历史与文化": PC_A_Credit += Credit; break; case "语言与文学": PC_B_Credit += Credit; break; case "哲学人生与社会科学": PC_C_Credit += Credit; break; case "艺术修养与审美": PC_D_Credit += Credit; break; case "自然科学与人类文明": PC_E_Credit += Credit; break; case "国防文化与船海史话": PC_F_Credit += Credit; break; case "中华传统文化": PC_G_Credit += Credit; break; case "新生研讨类": PCCategory_2 += Credit; break; case "专业拓展类": PCCategory_3 += Credit; break; case "创新创业类": PCCategory_4 += Credit; break; } } if (GradeList.rows.length > 1 && GradeList.rows[1].cells[0].innerHTML != "未查询到数据") { for (var i = 1; i < GradeList.rows.length; i++) { var Course = GradeList.rows[i]; var Grade, Credit; if (Course.cells[4].getElementsByTagName("a")[0] == undefined) Grade = Course.cells[4].innerHTML; else Grade = Course.cells[4].getElementsByTagName("a")[0].innerHTML; Credit = parseFloat(Course.cells[5].innerHTML); if (Grade == "---" || Course.cells[8].innerHTML == "自主考试") { continue; } if (Course.cells[9].innerHTML == "公选" && Grade != "不及格") { PC_Credit_Calc(Course.cells[10].innerHTML, Credit); } if (Course.cells[9].innerHTML != "必修" && Grade != "不及格" && Course.cells[9].innerHTML != "公选") { ElectiveCourseCredit += Credit; } if (Course.cells[9].innerHTML != "必修" && Grade == "不及格") { continue; } if (Course.cells[8].innerText == "补考") { continue; } switch (Grade) { case "优秀": Grade = 95; break; case "良好": Grade = 85; break; case "中等": Grade = 75; break; case "及格": Grade = 65; break; case "不及格": Grade = 30; break; } if (Grade < 60) { Correction = -0.3; } CourseGradeSum += Grade * Credit; CreditSum += Credit; } PCCategory_1 = PC_A_Credit + PC_B_Credit + PC_C_Credit + PC_D_Credit + PC_E_Credit + PC_F_Credit + PC_G_Credit; GeneralEducationCredit = PCCategory_1 + PCCategory_2 + PCCategory_3 + PCCategory_4; GradeAvg = CourseGradeSum / CreditSum + Correction; GradeAvg = GradeAvg.toFixed(2); } var divOB = "
"; Grade_Avg.style.fontSize = "150%"; Graph.appendChild(Grade_Avg); var ECC = document.createElement("p"); ECC.innerHTML = "专业选修课已修:" + ElectiveCourseCredit.toString() + "分"; ECC.style.fontSize = "150%"; Graph.appendChild(ECC); var GEC = document.createElement("p"); GEC.innerHTML = "通识教育选修课程已修:" + GeneralEducationCredit.toString() + "分
其中:"; GEC.style.fontSize = "150%"; Graph.appendChild(GEC); var GEC_D = document.createElement("p"); GEC_D.innerHTML += "新生研讨类已修:" + PCCategory_2.toString() + "分"; GEC_D.innerHTML += "
专业拓展类已修:" + PCCategory_3.toString() + "分"; GEC_D.innerHTML += "
创新创业类已修:" + PCCategory_4.toString() + "分"; GEC_D.innerHTML += "
文化素质教育类已修:" + PCCategory_1.toString() + "分
其中:"; GEC_D.style.fontSize = "120%"; Graph.appendChild(GEC_D); var GEC_D_A = document.createElement("ol"); GEC_D_A.innerHTML += "
  • 中外文明与历史:" + PC_A_Credit.toString() + "分
  • "; GEC_D_A.innerHTML += "
  • 语言与文学:" + PC_B_Credit.toString() + "分
  • "; GEC_D_A.innerHTML += "
  • 哲学人生与社会科学:" + PC_C_Credit.toString() + "分
  • "; GEC_D_A.innerHTML += "
  • 艺术修养与审美:" + PC_D_Credit.toString() + "分
  • "; GEC_D_A.innerHTML += "
  • 自然科学与人类文明:" + PC_E_Credit.toString() + "分
  • "; GEC_D_A.innerHTML += "
  • 国防文化与船海史话:" + PC_F_Credit.toString() + "分
  • "; GEC_D_A.innerHTML += "
  • 中华优秀传统文化:" + PC_G_Credit.toString() + "分
  • "; GEC_D_A.style.fontSize = "100"; Graph.appendChild(GEC_D_A); })();