南京大学学分绩 GPA 计算

今天一时犯贱想要算算自己的学分绩 (确实是犯贱啊!), 然后发现手动计算实在太麻烦了, 于是写了下面这个脚本来自动计算学分绩.

使用方法

  1. NJU GPA 这个链接拖拽到你的书签栏.
  2. 登录教服平台.
  3. 点击刚才添加到书签栏的书签, 稍等片刻即可看到结果. (记得允许弹出窗口)

所有课程都纳入了计算范围 (不包括总评一栏标注为合格的课程), 学分绩这种东西知道个大概就行了, 况且不同情况下计算方法也不一样, 比如出国是包括通识课的, 而保研则是各个学院有自己的标准.

后话

由于教服平台并不是在一个页面将所有成绩展示出来, 所以需要读取多个页面的数据后才能计算, 但是页面一刷新, 脚本就无法再运行下去了. 一开始想用 Frame 来解决这个问题, 后来因为 SOP 的原因而告失败.

最后解决的办法是通过 window.open() 打开子窗口, 然后对子窗口进行操作. 具体细节如果感兴趣的话, 自己分析下上面那个 Bookmarklet 的源码吧.

忽然想到今年补选通识课的时候, 利用按键精灵和 JS 实现了个简单粗暴的抢课插件, 当时之所以用到按键精灵就是因为抢课需要不停的刷新页面, 现在看来也可以利用操作子窗口的办法来实现个纯 JS 的抢课插件了.