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

[文本处理] [已解决]用批处理怎么写选择判断题?

所有问题混合随机提问,等全部提问完毕后作出评分。这样的批处理怎么写?
例题:
        机动车经【   】登记后,方可上道路行驶。
   A.道路运输管理机构
   B.公安机关交通管理部门
   C.工商部门
   D.税务部门
答案:B
  1. 谢谢 又学到了点
  2. []
  3.     请问:想加入时间限制该如何写?就是在45分钟或更久限制时间内回答正确N道题。
复制代码

[ 本帖最后由 hnqx 于 2010-4-20 15:27 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

1,以3道单选题目为示例
2,正确答案ABC按顺序存在变量n中
  1. @echo off&setlocal enabledelayedexpansion
  2. set n==ABC
  3. for /l %%i in (1,1,3) do call:a %%i
  4. for /F "tokens=2 delims==" %%j in ('set a_') do cls&call:t_%%j&call:p %%j
  5. echo.你答对了3道题中的%b%道题
  6. echo.按任意键公布正确答案:&pause>nul
  7. for /l %%k in (1,1,3) do call:t_%%k&echo.正确答案:!n:~%%k^,1!
  8. pause>nul&exit
  9. :a:用于随机出题
  10. set a=%random%
  11. if "!a_%a%!"=="" (set "a_%a%=%1") else goto:a
  12. goto:eof
  13. :p:用于输入检测
  14. set m=m&set m=&set k=%1
  15. set/p m=请输入答案中的一个字母:
  16. if /i "!n:~%k%,1!"=="!m!" set/a b+=1
  17. goto:eof
  18. :t_1:第一题
  19. echo.第一问题?
  20. echo.答案A
  21. echo.答案B
  22. echo.答案C
  23. echo.答案D
  24. goto:eof
  25. :t_2:第二题
  26. echo.第二问题?
  27. echo.答案A
  28. echo.答案B
  29. echo.答案C
  30. echo.答案D
  31. goto:eof
  32. :t_3:第三题
  33. echo.第三问题?
  34. echo.答案A
  35. echo.答案B
  36. echo.答案C
  37. echo.答案D
复制代码

[ 本帖最后由 hanyeguxing 于 2010-4-20 00:16 编辑 ]
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

假设有1000道题,呃,这个是随机顺序出题的,类似MCSE考试出题的那种
  1. @echo off&setlocal enabledelayedexpansion
  2. set 'tm_num=1000'
  3. for /l %%n in (1,1,%tm_num%) do set '_%%n=1'
  4. :loop
  5. set /a  rd=%RANDOM%%%tm_num
  6. if %tm_num% LEQ 1 set 'rd=0'
  7. for /f "skip=%rd%" %%i in ('set _') do (
  8.         if not defined %%i goto :eof
  9.         call :tm%%i
  10.         call :chs !da!&&set /a y+=1
  11.         set '%%i=' & set tm_num-=1
  12.         goto :loop
  13. )
  14. 你答对了%y%道题..
  15. goto :eof
  16. :chs [A/B/C/D]
  17. set 'da='
  18. set /p cs=请输入选择答案(大写ABCD):
  19. if  %cs%.==%1. exit /b 0
  20. exit /b 1
  21. goto :eof
  22. :tm_1
  23. set "da=B"
  24. echo. ^
  25.      机动车经【   】登记后,方可上道路行驶。^
  26.    A.道路运输管理机构^
  27.    B.公安机关交通管理部门^
  28.    C.工商部门^
  29.    D.税务部门
  30. goto :eof
  31. :tm_2
  32. ::
  33. :::
  34. ::
  35. ::
  36. goto :eof
  37. ..
  38. .....
  39. ........
复制代码

[ 本帖最后由 caruko 于 2010-5-9 12:47 编辑 ]

TOP

回复 2楼 的帖子

谢谢 又学到了点

TOP

返回列表