LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1364|回复: 24

谁可以帮忙写下面这个shell程序?谢谢先!!

[复制链接]
发表于 2003-11-20 11:11:37 | 显示全部楼层 |阅读模式
企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可以
提10%;利润高于10万元低于20万元(100000<I<=200000)时,其中10万
元按10%提成,高于10万元的部分,可提成7.5%;200000<I<=400000时,
其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;
400000<I<=600000时,高于40万元的部分按3%提成;600000<I<=1000000时,
高于60万的部分按1.5%提成;I>1000000时,超出100万的部分按1%提成。
从键盘输入当月利润I,求应发放奖金的总数。
要求用Shell语言编写。
那位热心的高手帮帮忙吧!无限感激!!
发表于 2003-11-20 11:21:24 | 显示全部楼层

老师留的作业要自己完成。

我不是老师。:)
 楼主| 发表于 2003-11-20 11:41:52 | 显示全部楼层
我是帮同学问di~~
我没有学过shell编程,不会,呵呵……
 楼主| 发表于 2003-11-20 12:07:09 | 显示全部楼层
顶一下。
我很想了解,这个程序如果用shell应该如何处理?
 楼主| 发表于 2003-11-20 12:38:19 | 显示全部楼层
继续顶……
说不定明天或者后天就有人帮忙了……
期待中……
发表于 2003-11-20 14:22:24 | 显示全部楼层
#!/bin/bash
echo "input a num:单位:万元) “
read num
if [[ $num <0 && $num <= 10 ]];then echo $((num*0.1));exit 0;fi
if [[ $num >10 && $num <=20 ]];then echo $((1+((num - 10 ))*0.075));exit 0 ;fi
if [[ $num >10 && $num <=40 ]];then echo $((2+((num - 20 ))*0.05));exit 0;fi
if [[ Snum >40 && $num <=60 ]];then echo $((4+((num -40))*0.03));exit 0;fi
if [[ Snum >60 && $num <=100 ]];then echo $((6+((num -60))*0.016));exit 0;fi
if [[ $num <100 ]];then echo $((10+((num - 100))*0.01));exit 0;fi

大概就是这样,就是乘法那里不懂。。。。
发表于 2003-11-20 15:41:28 | 显示全部楼层

回复: 老师留的作业要自己完成。

最初由 hutigers 发表
我不是老师。:)

ME2
发表于 2003-11-20 15:59:11 | 显示全部楼层
懂了,上面是个错误的例子了。楼主自已努力一下吧
 楼主| 发表于 2003-11-20 18:04:57 | 显示全部楼层
最初由 home 发表
懂了,上面是个错误的例子了。楼主自已努力一下吧

我没有学过shell,我跟你一样,也是在乘法处理小数部分不懂。
这个是一个女生的作业来的。她自己写的(如下):
  1. func()
  2. {echo "that's all,thankyou!"
  3. echo "$m $n $p"
  4. echo "$1 $2 $3"
  5. }
  6. m="today"
  7. n="is"
  8. p'date'
  9. a1=((100000*0.075))
  10. a2=((200000*0.05))
  11. a4=((200000*0.03))
  12. a6=((400000*0.015))
  13. bon1=((100000*0.1))
  14. bon2=((bon1+a1))
  15. bon4=((bon2+a2))
  16. bon6=((bon4+a4))
  17. bon10=((bon6+a6))
  18. echo "plaese input the bonus:$bonus"
  19. read bonus
  20. b1=((bonus-100000))
  21. b2=((bonus-200000))
  22. b4=((bonus-400000))
  23. b6=((bonus-600000))
  24. b10=((bonus-1000000))
  25. c1=((b1*0.075))
  26. c2=((b2*0.05))
  27. c4=((b4*0.03))
  28. c6=((b6*0.015))
  29. c10=((b10*0.01))
  30. if [ $bonus -le 100000 ]
  31. then outcome=((bonus*0.1))
  32. else if [ $bonus -le 200000 ]
  33.       then outcome=((bon1+c1))
  34.       else if [ $bonus -le 400000 ]
  35.            then outcome=((bon2+c2))
  36.            else if [ $bonus -le 600000 ]
  37.                 then outcome=((bon4+c4))
  38.                 else if [ $bonus -le 1000000 ]
  39.                      then outcome=((bon6+c6))
  40.                      else outcome=((bon10+c10))
  41. fi
  42.       fi
  43.           fi
  44.                fi
  45.                      fi
  46. echo "the out come is:$outcome"
  47. func
复制代码
这个也是存在语法错误的,我根本不懂得如何修正,所以只能麻烦各位了。
发表于 2003-11-20 18:31:27 | 显示全部楼层
FREE# a=3
FREE# b=8
FREE# echo $((3*8))
24
FREE# echo $((b*a))
24
FREE# echo $((b*a+1))
25
FREE# echo $((b*((a+1))))
32
FREE# echo $((b/((a-1))))
4
FREE#

看看这些例子,那脚本不要这么复杂吧:ask :ask
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表