C#统计出各班的每个学生的总成绩,并打印出每班的前三名成绩

2025-03-11 00:47:55
推荐回答(6个)
回答1:

你学生和学生的总成绩,用Dictionary<学号,成绩>,应该是Dictionary来保存,
new 一个变量,Dictionary totalScoreDic=new Dictionary();
然后循环遍历所有学生,每次循环中又循环该生的所有成绩,并totalScoreDic[学号]+=该生成绩,循环完就得到每个学生总成绩了。
至于前三名只要对totalScoreDic遍历3次就好了,每次取出最大的那个,取出后将该个从totalScoreDic删掉。

回答2:

1.不知道你文件格式,如果是cvs文件,直接用ado.net 读成datatable,剩下的东西估计你自己一会做
2.如果文件不是cvs,用stream流,readline一行一行读,同时把最后组每3位一截,截成5科的单独成绩
3.算法部分,如果要求只打印出每班前三名,则不必做全排序。按班级Dictionary做堆排序就ok了

堆排资料:http://baike.baidu.com/view/157305.htm

回答3:

你把所有人成绩放到数组里,然后直接用Array.Sort排序(默认是升序排序),然后从数组最后一个元素起逆向输出三个就行了,那就是前三名。(当然象这种读取文件的话,Array可能不太适合,可以考虑用Dictionary或者两个List,这两个排序资料也不少了,自己查查看)

回答4:

从txt文件中读出数据时,就应该得到他们的总成绩,然后再保存到Array中,然后用他内部了的排序方法得到最后 的结果哦!

回答5:

select top 3 * from (你的统计查询) ;

回答6:

可以放在数组里,然后通过冒泡排序进行排序,然后取数组下标的前三位。。