zoukankan      html  css  js  c++  java
  • shell 模拟银行系统,后期会进行完善。

    今天我们要用shell做一个简易的银行系统,暂时开放了登录安全验证、查询、存款、取款的功能,后期会进行完善。

    先说一下我们的银行系统所用到的知识点:

    函数库的创建和加载、自定义函数的使用、for循环、if判断、case语句、awk、sed 等命令,熟练掌握。

    我们创建了三个文件

    [root@logan bank]# ls
    yhku.sh  yh.sh  yh.txt

    第一个文件是函数库代码、第二个文件是银行系统的框架代码、第三个文件是测试文件。

    第一个文件内容:

    #!/bin/bash
    cunkuan(){
        yue=`awk -F: '{print $6}' ./yh.txt`
        cunkuan_new=$(($yue+$cunkuan_num))    
        sed -ri "s/$yue/$cunkuan_new/" ./yh.txt
    }
    qukuan(){
        yue=`awk -F: '{print $6}' ./yh.txt`
        qukuan_new=$((yue - qukuan_num))
        sed -ri "s/$yue/$qukuan_new/" ./yh.txt
    }
    
    chaxun(){
    user=`awk -F ":" '{print $2}' ./yh.txt`
    pass=`awk -F ":" '{print $4}' ./yh.txt`
    
    if [ $username == $user ] && [ $password -eq $pass ]
    then
        while true
        do
                echo "======================"
                echo "======================"
                echo "=====  欢迎使用  ======"
                echo "=====   1.查询   ====="
                echo "=====   2.存款   ======"
                echo "=====   3.取款   ====="
                echo "=====   4.退出   ====="
                echo "======================"
            read -p "请选择:" bianhao
            case $bianhao in
            1)
            echo "余额:`awk -F: '{print $6}' ./yh.txt`"
            ;;
            2)
            read -p "输入存款金额:" cunkuan_num
            cunkuan
            echo "成功"
            ;;
            3)
            read -p "输入取款金额:" qukuan_num                
            qukuan
            echo "成功!"
            ;;
            4)
            echo "谢谢使用!"
            break
            ;;
            *)
            echo "输入正确的编号!"
            ;;
            esac
        done
    else
        echo "账户或密码不正确!!"
        exit
    fi
    }

    这一部分主要是负责用户登录的安全验证、查询、存款、取款的功能。

    运用函数库,可以缩减一部分的代码量

    第二部分银行系统主题框架部分 

    #!/bin/bash
    . ./yhku.sh
    while true
    do
    echo "======================"
    echo "======================"
    echo "=====  欢迎使用   ====="
    echo "=====   1.登录   ====="
    echo "=====   2.注册   ====="
    echo "=====   3.退出   ====="
    echo "======================"
    echo "======================"
    
    read -p "请选择编号:" num
    
    case $num in 
        1)
        read -p "输入账号:" username 
        stty -echo
        read -p "输入密码:" password 
        stty echo
        chaxun
    ;;
        2)
        :
    ;;
        3)
        echo "谢谢使用!"
        exit
    ;;
        *)
        echo "输入正确编号"
    ;;
    esac
    done

    这部分我们把自己制作额函数库加载到这个脚本中,来完成整体功能的实现。

    第三个文件为测试文件

    [root@logan bank]# cat yh.txt 
    帐号:logan:密码:123:余额:9999

    测试用户安全验证:

    [root@logan bank]# bash yh.sh 
    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.登录   =====
    =====   2.注册   =====
    =====   3.退出   =====
    ======================
    ======================
    请选择编号:1
    输入账号:logan
    输入密码:======================
    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:
    [root@logan bank]# bash yh.sh 
    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.登录   =====
    =====   2.注册   =====
    =====   3.退出   =====
    ======================
    ======================
    请选择编号:1
    输入账号:sdf
    输入密码:账户或密码不正确!!

    测试用户登录后的操作:

    1.查询

    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:1
    余额:9999

    2.存款

    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:2
    输入存款金额:1
    成功
    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:1
    余额:10000
    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:

    3.取款

    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:3
    输入取款金额:5000 
    成功!
    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:1
    余额:5000
    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:

    4.退出

    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.查询   =====
    =====   2.存款   =====
    =====   3.取款   =====
    =====   4.退出   =====
    ======================
    请选择:4
    谢谢使用!
    ======================
    ======================
    =====  欢迎使用  =====
    =====   1.登录   =====
    =====   2.注册   =====
    =====   3.退出   =====
    ======================
    ======================
    请选择编号:3
    谢谢使用!

    后续 注册、转账功能,会进行完善。。。。。。。。。。。。

  • 相关阅读:
    SDUT 2143 图结构练习——最短路径 SPFA模板,方便以后用。。 Anti
    SDUT ACM 1002 Biorhythms 中国剩余定理 Anti
    nyist OJ 119 士兵杀敌(三) RMQ问题 Anti
    SDUT ACM 2157 Greatest Number Anti
    SDUT ACM 2622 最短路径 二维SPFA启蒙题。。 Anti
    二叉索引树 区间信息的维护与查询 Anti
    SDUT ACM 2600 子节点计数 Anti
    UVA 1428 Ping pong 二叉索引树标准用法 Anti
    2010圣诞Google首页效果
    Object
  • 原文地址:https://www.cnblogs.com/loganSxb/p/11100458.html
Copyright © 2011-2022 走看看