[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【练习-038】批处理随机生成工资流水帐目并汇总

出题目的:
    掌握随机取值及其应用
    了解excel函数与批处理的灵活运用
加分规则:
    满分30分,每题15分,视情形加分,能将excel函数联合运用的再加5分
解题限制:
    管理层和技术层请暂做观看,但可跟贴做解题提示
题目如下:
    1、假设有甲、乙、丙、丁、戊、己、庚、辛、壬、癸十个人,他们的日工资为-100到100元之间(工资均为整
数,负数表示扣罚),请大家编写批处理随机生成1000笔此十人的日工资流水帐a.xls如示例一,请注意是每天随机
出现一人,但同一人不可在同一天出现两次(即同一人不能一天领两次工资),并且工资出现正负数的比例为9:
1,同时每笔中的日期是随机和合理的。
    2、根据生成的a.xls,按月对十人的工资进行计算汇总生成汇总表b.xls如示例二。
示例一:
  1. 姓名        工资        日期               
  2. 辛        26        2009-1-1
  3. 戊        77        2009-1-2
  4. 丁        32        2009-11-29
  5. 壬        15        2009-3-6
  6. 戊        44        2009-1-9
  7. 壬        100        2009-5-30
  8. 庚        -62        2009-3-25
  9. 戊        50        2009-3-18
  10. 丁        33        2009-7-25
复制代码
示例二:
***共同提高***

大家是不是又觉得难了点啊,其实我看这题也就是中等难度,大家拿出点信心来啊。。。
***共同提高***

TOP

下面是第一题的参考答案(请将echo 后的长空格换为tab):
  1. @echo off&setlocal enabledelayedexpansion
  2. echo 姓名        工资        日期>a.xls
  3. for %%a in (甲 乙 丙 丁 戊 己 庚 辛 壬 癸) do (
  4.     for %%b in (1-31 2-28 3-31 4-30 5-31 6-30 7-31 8-31 9-30 10-31 11-30 12-31) do (
  5.         for /f "tokens=1,2 delims=-" %%c in ("%%b") do (
  6.             for /l %%e in (1,1,%%d) do set "_!random!!random!!random!=%%a-%%c-%%e"
  7.         )
  8.     )
  9. )
  10. for /f "tokens=2,3,4 delims=-=" %%a in ('set _') do (
  11.     set "+="
  12.     set /a n+=1,a=!random!%%10,b=!random!%%101
  13.     if !a! equ 0 set "+=-"
  14.     if !b! equ 0 set "+="
  15.     echo %%a !+!!b! 2009-%%b-%%c>>a.xls
  16.     if !n! equ 1000 start a.xls&goto :eof
  17. )     
复制代码


[ 本帖最后由 batman 于 2009-3-8 13:44 编辑 ]
***共同提高***

TOP

随风兄对本题的理解确实是有点出入,看来是本人没有将题意充分讲清楚,真的是不好意思了,现将题意整理如下:
第一题:
1、所有的日期格式都是2009-*-*,不用考虑闰年的情况;
2、每天中随机出现一人有误,应是每笔记录中随机出现一人,同时同一个人在同一天内不能领两次工资,也就是要
考虑随机生成的数中“表示人的随机数+表示日期的随机数”不能有重复;
3、正负数比例为9:1有误,准确描述应是概率之比为9:1(不一定要求是9:1);
4、随机生成的日期为合理日期,如2009-2-29就不是合理日期,因为2009年2月只有28天。
第二题:
1、最后的汇总结果并不是要和我附件中所示的一样,上面只是为了示例b.xls的格式;
2、并不一定要求结合excel的公式来汇总计算,这只是让大家了解批处理可以和excel函数结合来使用(主要用来对
cmd下生成的xls文件进行操作);
3、如普通会员们感觉此题很有难度,管理层和技术层可以贴出自己的代码(但请用白色字体)。

[ 本帖最后由 batman 于 2009-3-6 20:10 编辑 ]
***共同提高***

TOP

是在改代码时将%%e错写成%%d了,已改正,谢谢指出。
***共同提高***

TOP

返回列表