Oct
20
武大学生成绩统计代码(FF测试通过)
写了一段代码实现在页面上直接统计成绩的功能。
打开Firefox(注意,不支持IE6,原因是IE6的浏览器URL只支持到435个字符的js代码,IE8支持到2083,但是懒得测试了)
登录 http://202.114.74.198 OR http://202.114.74.199
点击:成绩与重修查询 -> 多科查询
或者直接打开 http://202.114.74.199/stu/query_score.jsp
然后将下列代码全部copy到页面的地址栏,回车,看到结果。
p.s. 默认情况下是先讲成绩分别以“先课程类型升序 再成绩降序”排序。可自行修改。
压缩版:
非压缩版:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
打开Firefox(注意,不支持IE6,原因是IE6的浏览器URL只支持到435个字符的js代码,IE8支持到2083,但是懒得测试了)
登录 http://202.114.74.198 OR http://202.114.74.199
点击:成绩与重修查询 -> 多科查询
或者直接打开 http://202.114.74.199/stu/query_score.jsp
然后将下列代码全部copy到页面的地址栏,回车,看到结果。
p.s. 默认情况下是先讲成绩分别以“先课程类型升序 再成绩降序”排序。可自行修改。
压缩版:
javascript:var trs=new Array();trs=getData();sorttrs(10,1);sorttrs(9,0);display(trs);function sorttrs(col,di){var i,j,t;for(i=0;i<trs.length-1;++i){for(j=1;j<trs.length-i-1;++j){if(di==0){if(trs[j][col] > trs[j+1][col]){t=trs[j];trs[j]=trs[j+1];trs[j+1]=t;}}else{if(trs[j][col]<trs[j+1][col]){t=trs[j];trs[j]=trs[j+1];trs[j+1]=t;}}}}}function display(){var gb=0,gx=0,zb=0,zx=0;var gbx=0,gxx=0,zbx=0,zxx=0;for(var i=1;i<trs.length;++i){var a=trs[i][8]*trs[i][10];var b=new Number(trs[i][8]);switch(trs[i][9]){case '公共必修':gb+=a;gbx+=b;break;case '公共选修':gx+=a;gxx+=b;break;case '专业必修':zb+=a;zbx+=b;break;case '专业选修':zx+=a;zxx+=b;break;}}document.writeln("公共必修: "+gb+"/"+gbx+"="+(gb/gbx)+"<br/>");document.writeln("公共选修: "+gx+"/"+gxx+"="+(gx/gxx)+"<br/>");document.writeln("专业必修: "+zb+"/"+zbx+"="+(zb/zbx)+"<br/>");document.writeln("专业选修: "+zx+"/"+zxx+"="+(zx/zxx)+"<br/>");document.writeln("总学分: "+(gbx+gxx+zbx+zxx));document.writeln("<table border=\"1\">");for(var i=0;i<trs.length;++i){document.writeln("<tr>");for(var j=0;j<trs[i].length;++j){var td=trs[i][j];if(i==0){td='<b>'+td+'</b>';}document.writeln("<td>"+td+"</td>");}document.writeln("</tr>");}}function getData(){function countTDChilds(tr){var trc=tr.childNodes;var count=0;for(var i=0;i<trc.length;++i){if(trc[i].tagName=="TD")count++;}return count;}function getTDChilds(tr){var trc=tr.childNodes;var tds=new Array();for(var i=0;i<trc.length;++i){if(trc[i].tagName=="TD")tds.push(trc[i].innerHTML);}return tds;}var isIE=document.all?true:false;var frames=document.getElementsByTagName("iframe");var doc=null;for(var i=0;i<frames.length;++i){if(frames[i].name=="mainIFR"){if(isIE){doc=frames[i].document;}else{doc=frames[i].contentWindow.document;}break;}}if(doc==null)doc=document;var tbl=doc.getElementsByTagName("table")[0];var tb=null;for(var i=0;i<tbl.childNodes.length;++i){var tb=tbl.childNodes[i];if(tb.tagName=='tbody')break;}var trs=new Array();for(var i=0;i<tb.childNodes.length;++i){var obj=tb.childNodes[i];if(obj.tagName=='TR'){if(countTDChilds(obj)==11){trs.push(getTDChilds(obj));}}}return trs;}
非压缩版:
javascript:
var trs = new Array();
trs = getData();
sorttrs(10, 1); /* 成绩,降序 0升序,1降序 */
sorttrs(9, 0); /* 课程类型,升序 */
display();
function sorttrs(col, di){
var i, j, t;
for(i = 0; i < trs.length - 1; ++i){
for(j = 1; j < trs.length - i - 1; ++j){
if(di == 0){
if(trs[j][col] > trs[j+1][col]) {
t = trs[j];
trs[j] = trs[j+1];
trs[j+1] = t;
}
} else {
if(trs[j][col] < trs[j+1][col]) {
t = trs[j];
trs[j] = trs[j+1];
trs[j+1] = t;
}
}
}
}
}
function display(){
var gb = 0, gx = 0, zb = 0, zx = 0; /*g=公共 z=专业 b=必修 z=选修*/
var gbx = 0, gxx = 0, zbx = 0, zxx = 0; /*公共必修学分*/
for(var i = 1; i < trs.length; ++i){
var a = trs[i][8] * trs[i][10];
var b = new Number(trs[i][8]);
switch(trs[i][9]) {
case '公共必修': gb += a; gbx += b; break;
case '公共选修': gx += a; gxx += b; break;
case '专业必修': zb += a; zbx += b; break;
case '专业选修': zx += a; zxx += b; break;
}
}
document.writeln("<html>\n<head>\n <title>成绩<\/title>\n<\/head>\n<body>");
document.writeln("公共必修: " + gb + " / " + gbx + " = " + (gb/gbx) + "<br/>");
document.writeln("公共选修: " + gx + " / " + gxx + " = " + (gx/gxx) + "<br/>");
document.writeln("专业必修: " + zb + " / " + zbx + " = " + (zb/zbx) + "<br/>");
document.writeln("专业选修: " + zx + " / " + zxx + " = " + (zx/zxx) + "<br/>");
document.writeln("总学分: " + (gbx + gxx + zbx + zxx));
document.writeln("<table border=\"1\">");
for(var i = 0; i < trs.length; ++i){
document.writeln(" <tr>");
for(var j = 0; j < trs[i].length; ++j){
var td = trs[i][j];
if(i == 0){
td = '<b>' + td + '</b>';
}
document.writeln(" <td>" + td + "</td>");
}
document.writeln(" </tr>");
}
document.writeln('</body>\n</html>');
}
function getData(){
function countTDChilds(tr){
var trc = tr.childNodes;
var count = 0;
for(var i = 0; i < trc.length; ++i) {
if(trc[i].tagName == "TD") count++;
}
return count;
}
function getTDChilds(tr){
var trc = tr.childNodes;
var tds = new Array();
for(var i = 0; i < trc.length; ++i){
if(trc[i].tagName == "TD") tds.push(trc[i].innerHTML);
}
return tds;
}
var isIE = document.all?true:false;
var frames = document.getElementsByTagName("iframe");
var doc = null;
for(var i = 0; i < frames.length; ++i){
if (frames[i].name == "mainIFR"){
if(isIE){
doc=frames[i].document;
}else{
doc = frames[i].contentWindow.document;
}
break;
}
}
if(doc == null) doc = document;
var tbl = doc.getElementsByTagName("table")[0];
var tb = null;
for(var i = 0; i < tbl.childNodes.length; ++i){
var tb = tbl.childNodes[i];
if(tb.tagName == 'tbody') break;
}
var trs = new Array();
for(var i = 0; i < tb.childNodes.length; ++i){
var obj = tb.childNodes[i];
if(obj.tagName == 'TR'){
if(countTDChilds(obj) == 11){
trs.push(getTDChilds(obj));
}
}
}
return trs;
}
var trs = new Array();
trs = getData();
sorttrs(10, 1); /* 成绩,降序 0升序,1降序 */
sorttrs(9, 0); /* 课程类型,升序 */
display();
function sorttrs(col, di){
var i, j, t;
for(i = 0; i < trs.length - 1; ++i){
for(j = 1; j < trs.length - i - 1; ++j){
if(di == 0){
if(trs[j][col] > trs[j+1][col]) {
t = trs[j];
trs[j] = trs[j+1];
trs[j+1] = t;
}
} else {
if(trs[j][col] < trs[j+1][col]) {
t = trs[j];
trs[j] = trs[j+1];
trs[j+1] = t;
}
}
}
}
}
function display(){
var gb = 0, gx = 0, zb = 0, zx = 0; /*g=公共 z=专业 b=必修 z=选修*/
var gbx = 0, gxx = 0, zbx = 0, zxx = 0; /*公共必修学分*/
for(var i = 1; i < trs.length; ++i){
var a = trs[i][8] * trs[i][10];
var b = new Number(trs[i][8]);
switch(trs[i][9]) {
case '公共必修': gb += a; gbx += b; break;
case '公共选修': gx += a; gxx += b; break;
case '专业必修': zb += a; zbx += b; break;
case '专业选修': zx += a; zxx += b; break;
}
}
document.writeln("<html>\n<head>\n <title>成绩<\/title>\n<\/head>\n<body>");
document.writeln("公共必修: " + gb + " / " + gbx + " = " + (gb/gbx) + "<br/>");
document.writeln("公共选修: " + gx + " / " + gxx + " = " + (gx/gxx) + "<br/>");
document.writeln("专业必修: " + zb + " / " + zbx + " = " + (zb/zbx) + "<br/>");
document.writeln("专业选修: " + zx + " / " + zxx + " = " + (zx/zxx) + "<br/>");
document.writeln("总学分: " + (gbx + gxx + zbx + zxx));
document.writeln("<table border=\"1\">");
for(var i = 0; i < trs.length; ++i){
document.writeln(" <tr>");
for(var j = 0; j < trs[i].length; ++j){
var td = trs[i][j];
if(i == 0){
td = '<b>' + td + '</b>';
}
document.writeln(" <td>" + td + "</td>");
}
document.writeln(" </tr>");
}
document.writeln('</body>\n</html>');
}
function getData(){
function countTDChilds(tr){
var trc = tr.childNodes;
var count = 0;
for(var i = 0; i < trc.length; ++i) {
if(trc[i].tagName == "TD") count++;
}
return count;
}
function getTDChilds(tr){
var trc = tr.childNodes;
var tds = new Array();
for(var i = 0; i < trc.length; ++i){
if(trc[i].tagName == "TD") tds.push(trc[i].innerHTML);
}
return tds;
}
var isIE = document.all?true:false;
var frames = document.getElementsByTagName("iframe");
var doc = null;
for(var i = 0; i < frames.length; ++i){
if (frames[i].name == "mainIFR"){
if(isIE){
doc=frames[i].document;
}else{
doc = frames[i].contentWindow.document;
}
break;
}
}
if(doc == null) doc = document;
var tbl = doc.getElementsByTagName("table")[0];
var tb = null;
for(var i = 0; i < tbl.childNodes.length; ++i){
var tb = tbl.childNodes[i];
if(tb.tagName == 'tbody') break;
}
var trs = new Array();
for(var i = 0; i < tb.childNodes.length; ++i){
var obj = tb.childNodes[i];
if(obj.tagName == 'TR'){
if(countTDChilds(obj) == 11){
trs.push(getTDChilds(obj));
}
}
}
return trs;
}
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
话说FM的BLOG嵌套回复能不能多一层...