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

【练习-060】批处理实现学生成绩评估(续59题)

出题目的:
  1、继续强化大家对random随机数的使用
  2、加强对变量的运用
解题要求:
  代码简洁、高效、通用、无临时文件
  因题较容易,请先留给新人思考
加分原则:
  满分10分,视情况加分
题目如下:
  一个学期后学校对新招收的400名学生进行了综合考试,并按考试成绩对学生的优、高、中、差等进行重新评
估,同时对学生的进步和退步情况进行跟踪,现要求用代码模拟此次综合考试和评估过程,并随机输出各生编号、
得分、及退步、稳定、进步三种情况,中间用:格开表示如:A-35: 92:稳定 C-78:98:进步 ,最后统计出现在的优
、高、中、差生各有多少名。
随题提示:
  1、学生进校时优、高、中、差等分别用A、B、C、D表示,各等级分别有100名,表示如A-35 C-78 D-100
  2、假设考试时学生成绩最高为100分,最低为55分,且全为整数分值
  3、其中90<得分<=100为优等,80<=得分<=90为高等,70<=得分<80为中等,55<=得分<70为差等
***共同提高***

可能在题目中没有说清楚,不要考虑班次的问题,大家想一想怎么高效率地判断学生的现在等级啊,本人建议使用设置变量法。
***共同提高***

TOP

我在出题前的解:

請将复制粘贴后将代码中的tab变量值替换成实际的tab:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%a in (55,1,100) do (
  3.     set /a j_%%a=1
  4.    if %%a geq 70 set /a j_%%a+=1
  5.     if %%a geq 80 set /a j_%%a+=1
  6.     if %%a gtr 90 set /a j_%%a+=1
  7. )
  8. for %%a in (D C B A) do set /a n+=1&set "_%%a=!n!"&set "pd_!n!=%%a"&set ".!n!=进步"&set ".-!n!=退步"
  9. set ".0=稳定"&set "tab=        "
  10. for %%a in (A B C D) do for /l %%b in (1,1,100) do set "#!random!-%%a-%%b=%%a-%%b"
  11. for /f "tokens=4,5 delims==-" %%a in ('set #') do (
  12.     set /a a=!random!%%46+55
  13.     for %%c in (!a!) do (
  14.         set /a b=j_%%c-_%%a
  15.         for %%c in (!j_%%c!) do set /a pd_%%c+=1
  16.     )
  17.     for %%c in (!b!) do (
  18.         set "str=!str!%tab%%%a-%%b:!a!:!.%%c!"
  19.     )
  20. )
  21. echo !str:~1!&set /a n=5
  22. for %%a in (优 高 中 差) do (
  23.     set /a n-=1
  24.     for %%b in (!n!) do echo %%a等生:!pd_%%b!名
  25. )
  26. pause>nul
复制代码

[ 本帖最后由 batman 于 2010-7-1 08:52 编辑 ]
***共同提高***

TOP

我们从出第一题到这一题(已经60题了),最初的目的是让更多的人来关注批处理研究批处理技术,但现在看来

情况越来越不容乐观了。每次都基本是管理层或技术层的在解题和讨论,鲜见新人(当然不是指刚入门的)参与其

中,要知道,这个论坛是专为批处理的爱好者和学习者所开设的免费论坛,论坛所做出每一份努力(包括出题),也

都是为了大家能够更全面地接触批处理知识和技术,从而能学有所得,学有所成。这样一方面起到推广批处理的目

的;另一方面也能充分发展批处理技术,使其确实起到方便我们生活和工作的作用。

一时有感而发,说了些与题无关的话,还望大家谅解。。。
***共同提高***

TOP

返回列表