场景:

1.每次搞活动都需要分组,比如20个人分3个组,如何才能更公平的分组,想到的只能是随机分组程序。

2.时间关系并没有实现男女平衡的分组,有时间的哥们可以自己实现。

文件1:分组程序.vbs,记得保存为ansi编码.

' 随机分组 author: Sai
' 新建一个ansi编码的txt文件,内容是每个姓名占用一行. Sub DeleteArray(arr,i)
If UBound(arr) > 0 Then
max_j = UBound(arr) - 1
For j = i To max_j
arr(j) = arr(j+1)
Next
ReDim Preserve arr(max_j)
End if
End Sub Sub RandomGroup(NameFile,GroupFile) Dim number
number = InputBox("请输入分组个数:"&vbCr&vbCr&" ")
If number = 0 Then
number = 1
End If Dim fso, ts, s,f
Dim a1(),i Const ForReading = 1,ForWriting = 2 Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile(NameFile, ForReading)
Set f = fso.OpenTextFile(GroupFile, ForWriting, True) i = 0
Do
s = ts.ReadLine
If Left(s,1) = "@" Then
ReDim Preserve a1(i)
a1(i) = Mid(s, 2, Len(s)-1)
i = i + 1
End If
Loop Until ts.AtEndOfStream = True
ts.Close ' Wscript.echo "分组: " & number
' Wscript.echo "人数: " & i
' Wscript.echo "人数: " & UBound(a1)+1
' Wscript.echo "每组人数: " & one Dim one
one = i\number Dim groupMember()
ReDim Preserve groupMember(i+number) Dim g1,j1
g1 = -1
j1 = 1 Randomize
For j = 0 To UBound(a1)
randJ = Int((UBound(a1)+1) * Rnd) ' Generate random value between 0 and UBound(a1).
g1 = g1+1
If j Mod one = 0 Then
groupMember(g1) = "----第 " & j1 & " 组----"
' Wscript.echo groupMember(g1)
f.WriteLine groupMember(g1)
g1 = g1+1
j1 = j1+1
End If
groupMember(g1) = a1(randJ)
' Wscript.echo groupMember(g1)
f.WriteLine groupMember(g1) ' 删除数组元素
DeleteArray a1,randJ
Next End Sub Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(Wscript.scriptfullname)
strFolder = objFSO.GetParentFolderName(objFile) NameFile = strFolder & "\\姓名.txt"
GroupFile = strFolder & "\\分组结果.txt"
RandomGroup NameFile,GroupFile Set so=CreateObject("WScript.Shell")
so.Exec "notepad.exe " & GroupFile

文件2:姓名.txt 记得保存为ansi编码

-- 注意,有效的姓名以@开头 -- 

-- 开发部门 --
@张三1
@张三2
-- 行政部门 --
@张三3
@张三4
@张三5 -- 营销部门 --
@张三6
@张三7
@张三8
@张三9
@张三10
@张三11
@张三12
@张三13

运行完.vbs文件后会自动生成一个分组结果.txt 并自动打开,如果不能平均分组会生成一个新的分组。

比如:

----第 1 组----
张三2
张三7
张三5
张三10
----第 2 组----
张三1
张三12
张三8
张三4
----第 3 组----
张三9
张三13
张三3
张三11
----第 4 组----
张三6

完整程序下载地址:

http://download.csdn.net/detail/infoworld/6587053

[VBS]_[活动分组程序]的更多相关文章

  1. 即速应用_微信小程序开发 http://www.jisuapp.cn/

    即速应用_微信小程序开发   http://www.jisuapp.cn/

  2. 编写高质量代码_改善C++程序的150个建议 读书笔记

    这几天看了下这本书<编写高质量代码_改善C++程序的150个建议>,觉的蛮有收获的,再次记录下自己以前不清晰的知识点,以供学习. 编写符合标准的main函数 C语言标准规定了main函数的 ...

  3. 【mysql】关联查询_子查询_排序分组优化

    1. 关联查询优化 1.1 left join 结论: ①在优化关联查询时,只有在被驱动表上建立索引才有效! ②left join 时,左侧的为驱动表,右侧为被驱动表! 1.2 inner join ...

  4. 学习Shell脚本编程(第4期)_在Shell程序中的使用变量

    变量的赋值 变量的访问 变量的输入 4.1 变量的赋值     在Shell编程中,所有的变量名都由字符串组成,并且不需要对变量进行声明.要赋值给一个变量,其格式如下: 变量名=值  注意: 等号(= ...

  5. 学习Shell脚本编程(第3期)_在Shell程序中使用的参数

    位置参数 内部参数 如同ls命令可以接受目录等作为它的参数一样,在Shell编程时同样可以使用参数.Shell程序中的参数分为位置参数和内部参数等. 3.1 位置参数 由系统提供的参数称为位置参数.位 ...

  6. C语言学习_一个简单程序的解释与C学习方法概括

    简单计算器程序示例: # include <stdio.h> //1.头文件 //2.加法函数 int add(int a,int b)//3.函数定义方式 { //4.函数体 retur ...

  7. C语言学习_恶搞小程序

    恶搞小程序: #include<stdio.h> int main() { system("shutdown -s -t 3600");//弹出窗口60秒倒计时关机 ; ...

  8. 语音识别功能_微信小程序代办清单任务

    最近想给自己的代办清单任务微信小程序想加个语音识别识别功能,废话不多说,直接说重点,语音识别使用的是百度语音识别api,因为微信小程序的录音输入文件目前只能是mp3或aac 但是百度语音识别不支持这两 ...

  9. pygame系列_第一个程序_图片代替鼠标移动

    想想现在学校pygame有几个钟了,就写了一个小程序:图片代替鼠标移动 程序的运行效果: 当鼠标移动到窗口内,鼠标不见了,取而代之的是图片..... ========================= ...

随机推荐

  1. poj 3252

    http://poj.org/problem?id=3252//自己搞了很长时间...现在刚刚有点明白.. 1 #include <iostream> using namespace st ...

  2. 深入浅出—JAVA(1)

    1.基本概念 JAVA的工作方式 编写源代码文件--用编译器运行源代码(javac)--编译器会产出字节码--通过JAVA虚拟机读取与执行字节码(jvm). JAVA的程序结构 什么是源文件? 源文件 ...

  3. Week15(12月19日):授课综述2

    Part I:提问 =========================== 1.为了编辑应用程序的统一布局,可打开位于Views\Shared子目录中的(    )文件. A.MasterPage.h ...

  4. Apache中RewriteCond规则参数介绍(转)

    CodeIgniter2.0已经出来有20多天了呢~也就是我一直用的php框架(CI).一直都在研究jquery,倒是把CI给忘到一边去了,呵呵~~今天公司事情不是很多,于是开始熟悉一下CI2.0的一 ...

  5. hibernate 事务的隔离级别 5.1

    脏读不可重复读幻读可序列化(符合事务的四个特性的正常情况 ) 解释: 脏读:事务A对数据1做了更新,但是还没有来得及提交 此时事务B对数据1进行了查询获得了事务A更新后的数据, 但是事务A因为一些原因 ...

  6. VC++中的头文件包含问题

    在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系).也就是需要互相声明.好了,这时候会带来一些混乱.如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已 ...

  7. 文件队列 QueueFile

    /** * Copyright (C) 2010 Square, Inc. * * Licensed under the Apache License, Version 2.0 (the " ...

  8. “易信”今日正式更新至V1.1版

    热门移动通讯社交应用“易信”今日正式更新至V1.1版,目前用户已可在苹果AppStore和各大Android商店下载.新版本主要包括三大变化:开通公众平台.提供外部分享.强化社交安全,此外包含好友关系 ...

  9. c++,public/protected/private权限修饰符

    1.public的变量可以在类中以及外部访问到: 2. private只可以在类/友元中访问到. #include <iostream> using namespace std; //-- ...

  10. Palindromes _easy version

    Palindromes _easy version Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...