Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

咨询access能否给学生分班的问题

游戏人间  发表于:2010-12-15 22:36:19  
复制

想咨询两个问题:

1、Access能否把若干学生(比如1200人)均衡的分成若干个班(比如20个班)?

2、如果能的话,能否提供个编程思路?(我个人的思路是按性别分为两类,每类都按总分由高分到低分向各班分人,使总分的平均分分差最小。可是这样分的结果是总分的平均分各班相差很少,但是各科的平均分分差以及各分数段上的人数没法保证。)

注:均衡是指性别均衡,各科分数以及总分的平均分、各分数段上的人数均衡,均衡的程度可以理解为最优化。

 

Top
煮江品茶 发表于:2010-12-16 14:23:41

很简单。

按总分排序后,用ADO数据集每20人分一个班即可。

说明:性别均衡与分差均衡时两个标准,只有在男女生在考分上没有性别上的突出差异,同时学生记录原录入属性没有特别按照男女分类录入,就可以直接用总分排序进行分班;如果男女生在考分上本身就存在显著差异,性别是没有办法在各班级间均衡的;如果原录入数据的顺序中男女生是分别录入的,就先用随机数进行一次排序处理,然后按照总分排序即可。



游戏人间 发表于:2010-12-16 21:35:54

谢谢煮总的回复。

性别均衡的意思就是指每个班的男生人数基本相当,每个班的女生人数也基本相当。

若按总分排序后进行分班,这样可以保证各班总分的平均分均衡,可是各科(语文、数学等)的平均分就不能保证均衡了,另外还有总分和各科分数段上的人数(比如500-510上的人数各班相当等)。

用ADO数据集每20人分一个班,具体过程如何,哪20个人分到1班,哪20个人分到2班呢?

期待回复。



煮江品茶 发表于:2010-12-17 10:05:01

游兵同志:

 

你的问题的核心部分与Access无关,只与分类的标准有关。通常我们需要对问题进行分类,这是解决问题的关键步骤。不同的分类会出现不同的结果,这些分类结果或交叉,或矛盾,完全一致的情况不多见。若干分类组合在一起的时候,是不易平行处理的,也就是说两种以上的分类不能作为同一级别的分类标准,因为这样分类就会如同你所想到的一样,无法正确的分类下去。

 

那么该怎么办呢?实际很简单,就是采取分层的分类方式来处理问题。从你的问题来看,你的分类标准有三个,其一是按总分分类;其二是按各科的分数分类(实际上按科分类又是若干个不同的分类标准);其三是按性别分类。这些分类之间数据有交叉。需要因循一定的分层分类的结构组织数据,比如可以以总分作为第一级分类,在这一级下面第二级的分类为性别,在第二级的下面以几门主课的平均分为第三级分类。这样处理分类之间就可以统合起来,并且没有矛盾了。当然也可以按照其他的分层级别来处理,怎么处理更为合理,要看业务的实际。

 

分类的标准确定以后,也就明确了分班的基本算法,其后的处理就是设计表格、建立窗体、编写代码,此时才涉及到Access的处理方法。关于Access处理上,如果你自己能倒腾清楚,就自己干,如果有困难,可以上传实例在论坛请求帮助。



游戏人间 发表于:2010-12-17 11:21:47

谢谢煮总在百忙之中回复我的问题。

由于我的知识贫乏,你给出的算法,我研究了半天,也没有弄懂。主要问题如下:

1、分类不知如何操作;2、不知道如何组织数据。

现将附件传上来,期待解决方案。

再次感谢!

点击下载此附件

煮江品茶 发表于:2010-12-17 11:40:19
下午给你处理。

煮江品茶 发表于:2010-12-17 20:44:29

请参见《关于分类的问答》一文

 



游戏人间 发表于:2010-12-17 21:37:01

好像很神奇啊。

先谢谢煮总的热心帮忙。

还没看懂,我要好好的研究学习一下,然后再来汇报。



游戏人间 发表于:2010-12-17 23:10:53

我看了一下最终结果,是按总分有高到低排序后,每20人一班,分成了60个班。

可是怎么组成20个班呢?组成的20个班能不能保证人数相当(最多最少不超过2个),男女生人数各班相当,总分和各科的平均分均衡呢?



煮江品茶 发表于:2010-12-18 15:18:39

请参见《一切公正的基础》一文。

 



游戏人间 发表于:2010-12-18 20:46:29

说实在的,我的数据库知识很贫乏,从你这里,让我认识了关系数据库,从你的例子中学到很多东西。

 

我看了你的分班过程,是按性别分两类,每类中从高分到低分按1-20班,20-1班,再1-20班.....的顺序分班的。这种分班方法有很大的弊端,比如总分的平均分最少和最多相差将近8分,还有总分分数分布也不均匀(高分分布都在班号小的班或班号大的班),另外还有语文、数学等各科的平均分和分数分布也没有考虑进去。

 

感谢煮总花费了这么多精力关注这个问题,我都不好意思再问了。但是为了找到一个更好的分班算法,决定再提出我的问题,期待能够找到方法。



游戏人间 发表于:2010-12-21 14:34:57

有办法吗?



煮江品茶 发表于:2010-12-21 16:46:27

呵呵,你没有领会精神实质。

1、目前的总分是均衡的,整体上在609左右,分差最多为2分。为什么会出现603、604分呢?这和多余的四个人有关系。由于最后四个低分的学生分配到了四个班级(05班到08班),导致这四个班的平均分在603与604之间。所以从总分与性别的均衡来看,目前是基本合理的了。唯一可以改进的是将这四个人分配到(01班至04班),不过算法会进一步复杂化,同时也不能保证这四个班的平均分不低于604。

2、各科的平均分考虑进去没有什么实际意义,因为严重偏科的学生很少,这样的情况下,可以将总分的均衡看成各科的分数均衡。

3、你可以将这个分班的结果,在Access中或者Excel表中进行一些验算,看看是否达到了你的目的。如果没有达到,也可就此找出问题所在。



游戏人间 发表于:2010-12-21 16:50:46

好的,谢谢煮总的热心回复。



总记录:13篇  页次:1/1 9 1 :