场景:

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

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

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

  1. ' 随机分组 author: Sai
  2. ' 新建一个ansi编码的txt文件,内容是每个姓名占用一行.
  3.  
  4. Sub DeleteArray(arr,i)
  5. If UBound(arr) > 0 Then
  6. max_j = UBound(arr) - 1
  7. For j = i To max_j
  8. arr(j) = arr(j+1)
  9. Next
  10. ReDim Preserve arr(max_j)
  11. End if
  12. End Sub
  13.  
  14. Sub RandomGroup(NameFile,GroupFile)
  15.  
  16. Dim number
  17. number = InputBox("请输入分组个数:"&vbCr&vbCr&" ")
  18. If number = 0 Then
  19. number = 1
  20. End If
  21.  
  22. Dim fso, ts, s,f
  23. Dim a1(),i
  24.  
  25. Const ForReading = 1,ForWriting = 2
  26.  
  27. Set fso = CreateObject("Scripting.FileSystemObject")
  28. Set ts = fso.OpenTextFile(NameFile, ForReading)
  29. Set f = fso.OpenTextFile(GroupFile, ForWriting, True)
  30.  
  31. i = 0
  32. Do
  33. s = ts.ReadLine
  34. If Left(s,1) = "@" Then
  35. ReDim Preserve a1(i)
  36. a1(i) = Mid(s, 2, Len(s)-1)
  37. i = i + 1
  38. End If
  39. Loop Until ts.AtEndOfStream = True
  40. ts.Close
  41.  
  42. ' Wscript.echo "分组: " & number
  43. ' Wscript.echo "人数: " & i
  44. ' Wscript.echo "人数: " & UBound(a1)+1
  45. ' Wscript.echo "每组人数: " & one
  46.  
  47. Dim one
  48. one = i\number
  49.  
  50. Dim groupMember()
  51. ReDim Preserve groupMember(i+number)
  52.  
  53. Dim g1,j1
  54. g1 = -1
  55. j1 = 1
  56.  
  57. Randomize
  58. For j = 0 To UBound(a1)
  59. randJ = Int((UBound(a1)+1) * Rnd) ' Generate random value between 0 and UBound(a1).
  60. g1 = g1+1
  61. If j Mod one = 0 Then
  62. groupMember(g1) = "----第 " & j1 & " 组----"
  63. ' Wscript.echo groupMember(g1)
  64. f.WriteLine groupMember(g1)
  65. g1 = g1+1
  66. j1 = j1+1
  67. End If
  68. groupMember(g1) = a1(randJ)
  69. ' Wscript.echo groupMember(g1)
  70. f.WriteLine groupMember(g1)
  71.  
  72. ' 删除数组元素
  73. DeleteArray a1,randJ
  74. Next
  75.  
  76. End Sub
  77.  
  78. Set objFSO = CreateObject("Scripting.FileSystemObject")
  79. Set objFile = objFSO.GetFile(Wscript.scriptfullname)
  80. strFolder = objFSO.GetParentFolderName(objFile)
  81.  
  82. NameFile = strFolder & "\\姓名.txt"
  83. GroupFile = strFolder & "\\分组结果.txt"
  84. RandomGroup NameFile,GroupFile
  85.  
  86. Set so=CreateObject("WScript.Shell")
  87. so.Exec "notepad.exe " & GroupFile

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

  1. -- 注意,有效的姓名以@开头 --
  2.  
  3. -- 开发部门 --
  4. @张三1
  5. @张三2
  6. -- 行政部门 --
  7. @张三3
  8. @张三4
  9. @张三5
  10.  
  11. -- 营销部门 --
  12. @张三6
  13. @张三7
  14. @张三8
  15. @张三9
  16. @张三10
  17. @张三11
  18. @张三12
  19. @张三13

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

比如:

  1. ----第 1 组----
  2. 张三2
  3. 张三7
  4. 张三5
  5. 张三10
  6. ----第 2 组----
  7. 张三1
  8. 张三12
  9. 张三8
  10. 张三4
  11. ----第 3 组----
  12. 张三9
  13. 张三13
  14. 张三3
  15. 张三11
  16. ----第 4 组----
  17. 张三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. django 基础入门(一)

    1. django 基本命令 新建project django-admin.py startproject project-name 新建app python manage.py startapp a ...

  2. C语言之固定格式输出当前时间

    固定格式输出当前时间 编程实现将当前时间用以下形式输出:星期  月  日   小时:分:秒   年 代码如下: #include<stdio.h>#include<stdlib.h& ...

  3. java:字符串的“+”运算

    今天在一篇博客里,意外的看到了一段关于java中对字符串的“+”运算的处理(博客原文:http://blog.csdn.net/yirentianran/article/details/2871417 ...

  4. ASP.NET CS文件中输出JavaScript脚本

    ClientScript.RegisterStartupScript:http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscrip ...

  5. 【Eclipse】修改java代码不强制重启

    找到tomcat的server.xml文件,修改以下代码,重新发布重启.然后修改java代码就可以不用重启了. 将reloadable=“true”改成reloadable="false&q ...

  6. A - Oil Deposits(搜索)

    搜索都不熟练,所以把以前写的一道搜索复习下,然后下一步整理搜索和图论和不互质的中国剩余定理的题 Description GeoSurvComp地质调查公司负责探测地下石油储藏. GeoSurvComp ...

  7. application(CURD)--easyui

    一,效果图. 二,源代码. <!DOCTYPE html><html><head> <meta charset="UTF-8"> & ...

  8. ViewPager,使用Fragment实现

    效果如图: 使用Fragment实现tab的缺点就是不能够滑动.不过应该也算优点,具体场景可以自由选择. 完整代码:imooc-tab022fragment,在我的百度云网盘上. MainAcgtiv ...

  9. 基于visual Studio2013解决C语言竞赛题之0602最大值函数

     题目

  10. 基于visual Studio2013解决C语言竞赛题之0510求最大和

     题目