博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
万恶的成绩排名
阅读量:5015 次
发布时间:2019-06-12

本文共 3417 字,大约阅读时间需要 11 分钟。

  考完试本来成绩就差,还得排名次,还得按单科排。。。不知道这样很伤自尊么,从小到大提起来这个就有心理阴影。。

  吐槽完了,我们来看这个小作业吧。。。囧。。。

  先上图,,类似这样的一个表格,我们需要做到的是,单击某一科的表头,按照该科所有同学成绩降序排列,并根据成绩给出同学的排名。

  

  看起来应该不难(谁说的?~~),按道理将应该用<table>标签来绘制这个表格,好吧,我是野路子。竟然用了4个<dl>来做这个作业。我是坑货我承认,那么我们先来实现这个效果。

  说一下实现方法的一些关键点吧。

    第一时间想到的是用sort();方法将已经存入Array[]的英语成绩进行排序,那么很简单。这个方法会轻松地升序排列出成绩,然后用reverse()方法改为降序就OK了。那么问题来了(二货们自行脑补~~~):怎么样才能让姓名也跟着这个数组进行排序呢?利用sort();方法想了半天也没相通(才疏学浅)。那么我就想到了自己写排序的方法。

    例:Array1 = 英语成绩;

      Array2 = 姓名;

      for(i=0;i<Array1.length;i++){

        for(j=i+1;j<Array1.length+1;j++){

           var tmp;

           if(Array1[i]<Array1[j]){

             tmp = Array1[i];

             Array1[i] = Array1[j];

             Array1[j] = tmp;

             tmp = Array2[i];

             Array2[i] = Array2[j];

             Array2[j] = tmp;

           }

        }

      }

  通过这个排序函数对Array1(英语成绩)进行排序的同时,每一步排序动作会同时对Array2(姓名)进行相同的操作。如此以来,问题解决。

  附上源代码。

1   2   3   4     
5 Document 6 26 27 28
29
30
姓名 31
大毛
32
二毛
33
三毛
34
小明
35
小红
36
小兰
37
张三
38
李四
39
王五
40
赵六
41 42
43
44
英语 45
37
46
73
47
56
48
62
49
81
50
53
51
69
52
88.5
53
63
54
74
55 56
57
58
数学 59
53
60
81
61
73.5
62
66.5
63
90
64
54
65
68
66
43
67
65.5
68
83
69 70
71
72
语文 73
71
74
49
75
53.5
76
60.5
77
81
78
80
79
67
80
69
81
57
82
89
83 84
85
86 87 179
源代码

 

转载于:https://www.cnblogs.com/pnyh5/p/4103637.html

你可能感兴趣的文章
nginx在Windows环境安装
查看>>
MVC案例——删除操作
查看>>
Timer和TimerTask的使用--2
查看>>
UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等)
查看>>
FileUpload1.PostedFile.FileName 获取的文件名
查看>>
Mock InjectMocks ( @Mock 和 @InjectMocks )区别
查看>>
如何获取免版权图片资源
查看>>
MySql避免全表扫描【转】
查看>>
Storm学习笔记二
查看>>
windows 中的类似于sudo的命令(在cmd中以另一个用户的身份运行命令)
查看>>
java===单类设计模式之饿汉式与懒汉式
查看>>
BZOJ 1083: [SCOI2005]繁忙的都市
查看>>
Maven 编译
查看>>
《学习之道》第十章学习方法29还记得散步的好处嘛
查看>>
Git常用命令总结
查看>>
iOS获取设备IP地址
查看>>
JavaSE| String常用方法
查看>>
NRF51822配对绑定要点
查看>>
C语言博客作业—数据类型
查看>>
输入框去除默认的文字,jquery方法
查看>>