标题: [数值计算] 如何在批处理中实现统计学生成绩呢? [打印本页]
作者: 63918841 时间: 2009-12-2 15:23 标题: 如何在批处理中实现统计学生成绩呢?
例如有7个人 69 74 46 35 46 78 34
能给我个代码让我研究和学习下吗?谢谢啦
作者: 63918841 时间: 2009-12-2 15:37 标题: 能把他赋值
- @echo off&set /a var=0,num=91
- for /l %%a in (1 1 60) do (
- call :lis %%a
- call echo %%a 号同学 成绩是 %%w%%
- )
- pause&exit
- :lis
- set /a w=%random%%%%num%+10
- if %w% lss 60 set /a var+=1
- if %var% gtr 3 if %w% lss 60 goto lis
- set /a str=57+var
- if %str% equ %1 set num=50&goto lis
- if %w% lss 60 set w=%w% 不及格
- goto :eof
复制代码
作者: 523066680 时间: 2009-12-2 15:39
呐,一般学生成绩要这样统计的
各科成绩求和,
求平均值,
各科排名情况,
综合排名。要导出好几个单的哟。
最后,去掉一个最高分,去掉一个最低分,拉去打靶……
[ 本帖最后由 523066680 于 2009-12-2 15:41 编辑 ]
作者: 63918841 时间: 2009-12-2 15:57
我才入手不是很明白,能给我个代码吗,谢谢
作者: 523066680 时间: 2009-12-2 17:14
试着写了一下-
- @echo off
- setlocal enabledelayedexpansion
- set "list=牛B 69 牛C 74 旺财 46 陈煮水 35 小桂子 46 奥巴牛 78 二百五 34"
- set /a a=0,b=2,sum=0
- for %%a in (%list%) do (
- if !b! equ 2 (set /a b=1,a+=1) else (set /a b+=1,sum+=%%a)
- set arr[!a!][!b!]=%%a
- )
- rem 这个结束后变量a就是人数了
- set /a ave= sum * 100 / a
- echo,总分 %sum% ,平均分约 %ave:~-2%.%ave:~0,-2%
- rem 以下假设最高分是100,采用低效率做法,直接从低到高列出分数
- echo,学生成绩排名 &echo,
- set /a now=a
- for /l %%a in (0,1,100) do (
- for /l %%b in (1,1,%a%) do (
- if !arr[%%b][2]! equ %%a (
- echo,第!now!名: !arr[%%b][2]! !arr[%%b][1]!
- set /a now-=1
- )
- )
- )
- echo,
- pause
- exit
-
复制代码
[ 本帖最后由 523066680 于 2009-12-2 17:26 编辑 ]
作者: 523066680 时间: 2009-12-2 17:22
嘿嘿,忘了考虑0分了。
作者: 63918841 时间: 2009-12-2 18:32 标题: 谢谢啦
不错,不过真不知道怎么谢谢你
作者: 63918841 时间: 2009-12-2 18:35
呵呵,再一次谢谢,不过里面的名字真搞笑
作者: 523066680 时间: 2009-12-2 18:47
(*^__^*) 看到我头像了吗?我高兴到飞起来了。 没说的,送楼上PB。谁也别拦我。
你的跟进就是最大的回报。
[ 本帖最后由 523066680 于 2009-12-2 18:50 编辑 ]
作者: 63918841 时间: 2009-12-2 18:58 标题: 最近在学习汇编
最近在自学批处理,用批处理当汇编作业当给老师,汗,汇编太难了
作者: 523066680 时间: 2009-12-2 19:03
学汇编呀,咱论坛有几位长得很高的高人,害我老是仰望……
看看你有没有缘分结识他们咯~
作者: 63918841 时间: 2009-12-2 21:17
有机会一定,他们叫什么呢?
作者: 523066680 时间: 2009-12-2 21:18
1"天机不可泄漏,不能说的秘密"
2“都说了,看缘分……”
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |