shell 模拟银行系统,后期会进行完善。

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

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

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

我们创建了三个文件

[[email protected] 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

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

第三个文件为测试文件

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

测试用户安全验证:

[[email protected] bank]# bash yh.sh
======================
======================
=====  欢迎使用  =====
=====   1.登录   =====
=====   2.注册   =====
=====   3.退出   =====
======================
======================
请选择编号:1
输入账号:logan
输入密码:======================
======================
=====  欢迎使用  =====
=====   1.查询   =====
=====   2.存款   =====
=====   3.取款   =====
=====   4.退出   =====
======================
请选择:
[[email protected] 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
谢谢使用!

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

原文地址:https://www.cnblogs.com/loganSxb/p/11100458.html

时间: 2024-08-01 16:26:32

shell 模拟银行系统,后期会进行完善。的相关文章

shell模拟银行系统

运用awk if语句 函数调用 case语句 死循环. 1.先创建个用户管理文件(info.txt) me passwd money ws 123 30000 qq 456 30000 2.创建银行系统(bank.sh) #!/bin/bash menu1="=============== = 1.登录 = = 2.退出 = =============== 请选择您的操作[1|2]: " menu2="++++++++++++++++ +++ 1.查询 +++ +++ 2.存

第十一周项目 4 银行系统的不一般的完善,(超好玩O!)

本程序是对上一重新......(初步银行系统)的进一步完善.有以下改进: 可提供账户余额不足提示,并给你提供最有效的解决办法. 对于您取款或存款我们会认真的帮您核对您的毛爷爷,以达到使您满意. 对于上一系统不能给您提供密码修改服务身表抱歉,本系统已对这一缺点进行修改,请开心使用. 本系统已对转账进行了升级,是您用得更放心. 运行及代码: <span style="font-size:14px;">/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *A

shell 模拟二维数组解析配置文件

前几日项目组内出shell OJ题进行练习, 题目大概为: 现有配置文件conf.ini如下,编写shell,输入title和key,输出其值, 如输入FIFO1 a1 ,则输出11 #this is a config file [FIFO1] a1=11 b1=12 c1=13 [FIFO2] a2=21 b2=22 c2=23 [FIFO3] a3=31 b3=32 c3=33 恰因这几日内在学习数组的用法,故使用shell来模拟二维数组,现博客之,以飨同学,共研讨. 注:本解法未考虑性能,

appium+python自动化37-adb shell模拟点击事件(input tap)

前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其它的方法去点击,比如我们可以用adb去执行点击事件 input事件 1.先查看input事件语法有哪些,首先确保手机连上电脑(我这里是电脑上打开的手机模拟器) > adb device > adb shell > input C:\Users\Gloria>adb devices Li

shell模拟并发执行

参考: http://www.51testing.com/html/28/116228-238978.html http://blog.chinaunix.net/uid-27571599-id-3473078.html         在bash中,使用后台任务来实现任务的多进程化.在不加控制的模式下,不管有多少任务,全部都后台执行.也就是说,在这种情况下,有多少任务就有多少"进程"在同时执行.   实例一:正常脚本(脚本功能:查看一个文件中的IP列表循环测试主机连通性) [[ema

---模拟银行系统---

本程序实现了简单的银行系统 据有开户.存款.转账.取款.查询.改密等基本功能 还加上了注销账户.解挂.挂失.银行信息统计等功能. 本程序共5个文件: 它们的代码是: 文件 main.cpp #include <iostream> #include "bank.h" using namespace std; /*主函数:*/ int main() { cout<<endl; cout<<" $$$$$$$$$$$$$$$$$$$$$$$$$$

Bash Shell模拟密码输入

function inpasswd {read -s -p "Enter You Password:" passwd1echoread -s -p "Please Check Password" passwd2echoif [[ $passwd1 == $passwd2 ]]         then                echo "correct" && exit 1         else             

linux shell 模拟post请求

curl -d "param1=value1&param2=value2" http://www.baidu.com 参考:http://blog.sina.com.cn/s/blog_6e2d53050101k230.html

linux 模仿shell操作

linux的文件系统,是把硬盘空间格式化为若干node和block数据块,一般文件的创建,目录的创建,都会占用一个node,如果创建的是文件,具体的数据保存在若干block数据块中,node记录数据块的号码,所有的node和block在文件系统中都已经编号好:如果创建的是目录,会占用一个node,一个block,block中记录着该目录中所有的文件名,block号码记录在node中. 根据linux文件系统的大体结构,用文件的方式,采用C++语言来模拟一些在shell中执行的命令:cd.mkdi