Board logo

标题: 学生学分认定 自动录入工具(修正) [打印本页]

作者: youxi01    时间: 2008-1-24 17:46     标题: 学生学分认定 自动录入工具(修正)

有需要的朋友留名联系...

功能说明:能够自动生成相应班级学生的各模块考试成绩(在相应范围内随机生成);自动统计;自动给出等级...
使用说明:
1、本文件的正确执行需要两个配置文件:mudule.xls和name.txt,其中module.xls主要为学校给出的学分认定的模板文件(稍微改动),name.txt内容包括学生姓名,学号,该给的成绩范围
格式为:
姓名           学号                学分
中间以tab键隔开(可直接从xls文件中复制)。
2、录入成绩数值设置在 25 -55 之间
输入25,则产生的随机成绩在:60 - 70 分间,输入 55  产生的成绩则在: 90-100 分间。
程序代码如下:
  1. 'code by youxi01@bbs.bathome.net
  2. '程序名:学分认定自动完成
  3. '更新进度:
  4. '2008-1-17日,完成初版;
  5. '2008-1-23日,去掉人工输入,实现全自动;
  6. '2008-1-24日,完成自动输入初稿(期末改试卷ing...)
  7. '/*////////////////////////初始设定//////////////////////////////////////////
  8. Set objExcel=CreateObject("Excel.Application")           '设置excel对象;
  9. Set fso = CreateObject("Scripting.FileSystemObject")     '设置文件对象;
  10. Const ForReading = 1, ForWriting = 2
  11. '--------------------表格头设置-----------------------
  12. str0="班级:高二 "
  13. str1=" 班       姓名:"
  14. str2="        学号:"
  15. str3="        时间:2007 —— 2008    学年"
  16. '-----------------要填充学分的表格---------------------
  17. Anum="6#7#10#11#14#15#18#20#22#24#26#28#29#30#40#42"
  18. num=split(Anum,"#")     '按 # 分割
  19. '设置错误提示信息
  20. msgName="学生档案文件name.txt不存在!"
  21. msgModule="学分认定模板文件Module.xls不存在!"
  22. msgResult="注意:请设置成绩在 25-55 之间,输入55对应产生的成绩在 90-100 分"
  23. '/*/////////////////////////主函数部分/////////////////////////////////////
  24. '检测输入值是否为数值;
  25. Function CheckValue(value)
  26. CheckValue=true                    
  27. if IsNumeric(value)<>true then CheckValue=false:exit function
  28. if value<25 or value>55 then CheckValue=false    '数值必须在 25 -55 之间;
  29. End Function
  30. '循环检测输入值是否在 25-55 之间;
  31. Function InputNum(msg)
  32. value=inputbox(msg&" 的成绩输入有误:"&mystr(2)&vbcrlf&vbcrlf&"请输入一个 25-55 的数值","输入错误")
  33. if CheckValue(value)=false then mystr(2)=value:InputNum(msg)
  34. InputNum=value
  35. End Function
  36. '检测文件是否存在;
  37. Function CheckFile(name)
  38. if not fso.FileExists(name) then
  39.    msgbox "配置文件: "& name &" 不存在",48,"出错了!"
  40.    wscript.quit
  41. end if
  42. End Function
  43. '获取文件的父文件夹;
  44. Function GetPFolder(obj)
  45. GetPFolder=fso.GetFile(obj).parentfolder      
  46. if right(GetPFolder,1)="\" then GetPFolder=left(GetPFolder,len(GetPFolder)-1)
  47. End Function
  48. '/*/////////////////////////主程序////////////////////////////////////////
  49. CheckFile("name.txt")       '检测配置文件:name.txt是否存在;
  50. CheckFile("module.xls")     '检测配置文件:module.xls是否存在;
  51. oParentFd=GetPFolder(wscript.scriptfullname)  '获取本文件的父文件夹;
  52. '设置班级、创建对应文件夹;
  53. ClassName=inputbox("请输入班级:"&vbcrlf&vbcrlf&"注:输入数字,如:10","班级输入")
  54. FolderName="高二 ("&ClassName&") 班学生学分认定"
  55. if not fso.FolderExists(FolderName) then
  56.    fso.CreateFolder(FolderName)
  57. else
  58.    msgbox "文件夹:"&FolderName&" 已经存在,请确认删除!",48,"学分认定--提示信息"
  59. end if
  60. '读取学生信息文件;
  61. Set f = fso.OpenTextFile("name.txt", ForReading)
  62. Do While f.AtEndOfLine <> True
  63.     str=f.readline                    '读文本文件的一行
  64.     mystr=split(str," ",-1)         '按 “ ” 分割字符
  65.     'mystr(i)依次对应姓名、学号、成绩;
  66.     set objWorkbook=objExcel.Workbooks.Open(oParentFd&"\module.xls")  '###模板excel###
  67.     Set objWorksheet = objWorkbook.Worksheets(2)   
  68.     TipInfo=str0&ClassName&str1&mystr(0)&str2&mystr(1)&str3
  69.     objWorksheet.Cells(2,1).Value=TipInfo
  70.     if CheckValue(mystr(2))=false then mystr(2)=InputNum(mystr(0))
  71.    
  72.     for i=0 to 15
  73.          Randomize                                     '初始化随机数生成器
  74.          Res=Int((10 * Rnd-5)) + mystr(2)                       '随机数字;
  75.          objWorksheet.Cells(10,clng(num(i))).value=Res '将随机内容填入表格;
  76.     next
  77.     objWorkbook.SaveAs oParentFd&"\"&FolderName&"\"&mystr(0)&".xls"
  78.     objExcel.quit                                          '退出excel对象;
  79. loop
  80. f.Close
  81. objExcel.quit
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2