zoukankan      html  css  js  c++  java
  • shell基础之bus实战(if 练习)

    题目:

      一条公交路线共30站,乘客上车需支付1元,之后每超过5站支付0.5元;最好可以实现“余额不足的提醒”和“逃票,漏刷卡的显示”。

      注意:需下载bc计算器

    第一种方法(重复语句太多):

     1 #!/bin/bash
     2 read -p "请输入您的公交卡金额:" money
     3 if [ -z "$money" ] || [ "$money" -lt 1 ];then
     4 echo "您的余额不足,请尽快充值!"
     5 exit
     6 else
     7   read -p "请输入您的上车站号:" on
     8     if [ -z "$on" ];then
     9     echo "您有未刷卡记录"
    10     elif [ "$on" -gt 30 ] || [ "$on" -le 0 ];then
    11     echo "请输入正确的车站号!"
    12     exit
    13     fi
    14   read -p "请输入您的下车站号:" off 
    15     if [ -z "$off" ];then
    16     echo "您有未刷卡记录" 
    17     elif [ "$off" -le 0 ] || [ "$off" -gt 30 ];then
    18     echo "请输入正确的车站号!"
    19     exit
    20     fi 
    21   if [ -z "$on" ] && [ -z "$off" ];then
    22   echo "您已逃票一次,下次请自觉刷卡"
    23   exit
    24   elif [ -z "$on" ] || [ -z "$off" ];then  
    25   spe=3.5
    26   bal=`echo "$money-$spe" |bc`
    27   echo "您上车或者下车有未刷卡记录,将会扣除您全程车费$spe元,你的余额还剩$bal元!"
    28   exit
    29   fi
    30     beg=1
    31     if [ "$on" -le "$off" ];then
    32     dif=`echo "$off-$on" |bc`
    33     else
    34     dif=`echo "$on-$off" |bc` 
    35     fi
    36     if [ "$dif" -le "5" ];then
    37     spe="$beg"
    38     bal=`echo "$money-$spe" |bc`
    39     echo "您共坐了"$dif"站;花费了"$spe"元;您的余额还有"$bal""
    40     elif [ "$dif" -gt 5 ] && [ "$dif" -le 10 ];then
    41     spe=`echo "scale=1;$beg+0.5" |bc`
    42     bal=`echo "$money-$spe" |bc`
    43     echo "您共坐了"$dif"站;花费了"$spe"元;您的余额还有"$bal""
    44     echo "$bal"
    45     elif [ "$dif" -gt 10 ] && [ "$dif" -le 15 ];then
    46     spe=`echo "scale=1;$beg+1" |bc`
    47     bal=`echo "$money-$spe" |bc`    
    48     echo "您共坐了"$dif"站;花费了"$spe"元;您的余额还有"$bal""
    49     elif [ "$dif" -gt 15 ] && [ "$dif" -le 20 ];then
    50     spe=`echo "scale=1;$beg+1.5" |bc`
    51     bal=`echo "$money-$spe" |bc`    
    52     echo "您共坐了"$dif"站;花费了"$spe"元;您的余额还有"$bal""
    53     elif [ "$dif" -gt 20 ] && [ "$dif" -le 25 ];then
    54     spe=`echo "scale=1;$beg+2" |bc`
    55     bal=`echo "$money-$spe" |bc`    
    56     echo "您共坐了"$dif"站;花费了"$spe"元;您的余额还有"$bal""
    57     else
    58     spe=`echo "scale=1;$beg+2.5" |bc`
    59     bal=`echo "$money-$spe" |bc`    
    60     echo "您共坐了"$dif"站;花费了"$spe"元;您的余额还有"$bal""
    61     fi
    62 fi

    第二种方法(简化计算过程):

     1 #!/bin/bash
     2 #公交卡金额
     3 read -p "请输入您的公交卡金额:" MON
     4 #判断公交卡里是否金额足够
     5 if [ -z $MON ] || [ $MON -lt 1 ];then
     6 echo "您的公交卡余额不足,请尽快充值!"
     7 exit
     8 fi
     9 #上下车站号
    10 read -p "请输入您的上车车站号:" GON
    11 read -p "请输入您的下车车站号:" GOF
    12 #判断是否有逃票
    13 if [ -z $GON ] && [ -z $GOF ];then
    14 echo "您已经有逃票记录了,请注意你的信用值!"
    15 exit
    16 elif [ -z $GON ] || [ -z $GOF ];then
    17 BAL=`echo "$MON-3.5" |bc`
    18 echo "您有漏刷卡记录,将扣除您全程车票,您的公交卡余额还剩$BAL元!"
    19 exit
    20 fi
    21 NUM=`echo "$GOF-$GON" |bc`
    22 COS=`echo "($NUM-1)/5*0.5+1" |bc`
    23 BAL=`echo "$MON-$COS" |bc`
    24 echo "您一共乘坐了$NUM站,花费了$COS元,您的公交卡还剩$BAL元!"
  • 相关阅读:
    HTML CSS3 手风琴菜单
    python代码- post请求图片上传
    python 一行代码生成 二维码
    Jenkins 中定时任务构建
    Jenkins 常用插件
    window系统,GitLab 远程与本地 SSH 认证连接
    Jmeter+Maven+Jenkins+Git接口自动化流程
    jmeter 响应中有中文乱码问题,解决
    Excel文件导入功能 用例设计思路
    Jmeter01 -mac下的安装
  • 原文地址:https://www.cnblogs.com/renyz/p/11295059.html
Copyright © 2011-2022 走看看