以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教学生成绩统计中的代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170237) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:xusuyang -- 发布时间:2021/7/17 21:52:00 -- 请教学生成绩统计中的代码
老师:您好! 上表是“AA学校”一年级的一次考试成绩。请老师修改一下代码。A、如表所示:1、共计9个同学3个班,如何用代码来实现每个同学各科的班级排名第一名为“1” 、班级排名第二名为“2”? 如表所示的语文成绩,一班的“宗”同学是年级排名第一名,如何在“级名”列显示为“1”? 班级排名第一名,如何在“班名”列显示为“1”? 而一班的“需”同学是年级排名第二名,如何在“级名”列显示为“2”? 班级排名第二名,如何在“班名”列显示为“2”? 三班的“王”同学是年级排名第9名,如何在“级名”列显示为“9”? 班级排名第四名,如何在“班名”列显示为“4”? For Each dr As DataRow In DataTables("学生成绩统计表").DataRows dr("语数英_小计")=dr("语文_分数")+dr("数学_分数")+dr("英语_分数") dr("物化生_小计")=dr("物理_分数")+dr("化学_分数")+dr("生物_分数") dr("语数英物化生_总分数")=dr("语文_分数")+dr("数学_分数")+dr("英语_分数")+dr("物理_分数")+dr("化学_分数")+dr("生物_分数") Next Dim drs As List(of DataRow) =
DataTables("学生成绩统计表").Select("班级 is not null","数学_分数") For i As Integer = 0 To drs.Count
- 1 drs(i)("语文_级名") = i+ 1 drs(i)("数学_级名") = i+ 1 drs(i)("英语_级名") = i + 1 drs(i)("语数英_级名") = i+ 1 drs(i)("物理_级名") = i + 1 drs(i)("化学_级名") = i + 1 drs(i)("生物_级名") = i+ 1 drs(i)("物化生_级名") = i+ 1 drs(i)("语数英物化生_级名") = i+ 1 Next Dim lst As List(of String ) =
DataTables("学生成绩统计表").GetValues("班级","班级 is not
null") For Each s As String In lst drs = DataTables("学生成绩统计表").Select("班级=\'"
& s & "\'","语文_分数") For i As Integer = 0 To drs.Count - 1 drs(i)("语文_班名") = i + 1 drs(i)("数学_班名") = i + 1 drs(i)("英语_班名") = i + 1 drs(i)("语数英_班名") = i+ 1 drs(i)("物理_班名") = i + 1 drs(i)("化学_班名") = i + 1 drs(i)("生物_班名") = i+ 1 drs(i)("物化生_班名") = i+ 1 drs(i)("语数英物化生_班名") = i+ 1 Next Next 谢谢 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2021/7/18 20:27:00 -- 每个科目都单独计算,比如 For Each s As String In lst drs = DataTables("学生成绩统计表").Select("班级=\'" & s & "\'","语文_分数") For i As Integer = 0 To drs.Count - 1 drs(i)("语文_班名") = i + 1 Next Next For Each s As String In lst drs = DataTables("学生成绩统计表").Select("班级=\'" & s & "\'","数学_分数") For i As Integer = 0 To drs.Count - 1 drs(i)("数学_班名") = i + 1 Next Next |