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

[数值计算] 如何在批处理中实现统计学生成绩呢?

例如有7个人 69  74  46 35  46  78 34
能给我个代码让我研究和学习下吗?谢谢啦

能把他赋值

  1. @echo off&set /a var=0,num=91
  2. for /l %%a in (1 1 60) do (
  3.   call :lis %%a
  4.   call echo %%a 号同学   成绩是 %%w%%
  5. )
  6. pause&exit
  7. :lis
  8.   set /a w=%random%%%%num%+10
  9.   if %w% lss 60 set /a var+=1
  10.   if %var% gtr 3 if %w% lss 60 goto lis
  11.   set /a str=57+var
  12.   if %str% equ %1 set num=50&goto lis
  13.   if %w% lss 60 set w=%w%  不及格
  14. goto :eof
复制代码

TOP

呐,一般学生成绩要这样统计的
  各科成绩求和,
  求平均值,
  各科排名情况,
  综合排名。要导出好几个单的哟。


最后,去掉一个最高分,去掉一个最低分,拉去打靶……

[ 本帖最后由 523066680 于 2009-12-2 15:41 编辑 ]

TOP

我才入手不是很明白,能给我个代码吗,谢谢

TOP

试着写了一下
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "list=牛B 69 牛C 74 旺财 46 陈煮水 35 小桂子 46 奥巴牛 78 二百五 34"
  4. set /a a=0,b=2,sum=0
  5. for %%a in (%list%) do (
  6.   if !b! equ 2 (set /a b=1,a+=1) else (set /a b+=1,sum+=%%a)
  7.   set arr[!a!][!b!]=%%a
  8. )
  9. rem 这个结束后变量a就是人数了
  10. set /a ave= sum * 100 / a
  11. echo,总分 %sum% ,平均分约 %ave:~-2%.%ave:~0,-2%
  12. rem 以下假设最高分是100,采用低效率做法,直接从低到高列出分数
  13. echo,学生成绩排名 &echo,
  14. set /a now=a
  15. for /l %%a in (0,1,100) do (
  16.   for /l %%b in (1,1,%a%) do (
  17.     if !arr[%%b][2]! equ %%a (
  18.            echo,第!now!名:  !arr[%%b][2]! !arr[%%b][1]!
  19.            set /a now-=1
  20.     )
  21.   )
  22. )
  23. echo,
  24. pause
  25. exit
复制代码

[ 本帖最后由 523066680 于 2009-12-2 17:26 编辑 ]

TOP

嘿嘿,忘了考虑0分了。

TOP

谢谢啦

不错,不过真不知道怎么谢谢你

TOP

呵呵,再一次谢谢,不过里面的名字真搞笑
1

评分人数

TOP

(*^__^*) 看到我头像了吗?我高兴到飞起来了。 没说的,送楼上PB。谁也别拦我。

你的跟进就是最大的回报。

[ 本帖最后由 523066680 于 2009-12-2 18:50 编辑 ]

TOP

最近在学习汇编

最近在自学批处理,用批处理当汇编作业当给老师,汗,汇编太难了

TOP

学汇编呀,咱论坛有几位长得很高的高人,害我老是仰望……
看看你有没有缘分结识他们咯~

TOP

有机会一定,他们叫什么呢?

TOP

1"天机不可泄漏,不能说的秘密"
2“都说了,看缘分……”

TOP

返回列表