Python小项目——银行记账系统

项目描述:
该系统为银行记账系统,主要包含以下几个模块,用户模块,金融模块。
项目需求:
1、用户可以登陆自己的账户
2、用户可以存取款,如果金额单笔交易大于2W,则禁止交易,小于100禁止交易。
3、用户可以给其他账户转账。
4、用户可以查询到转账记录(转出、转入)。
5、有管理员用户,管理员用户可以查看所有用户的账户信息和金额。
6、管理员用户可管理所有人的交易信息。

额外:
7、记录用户登陆信息
8、记录存取款信息
import re
import sys
import time


def cun_kuan():
    a10 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt")
    a11 = a10.read()
    c = []
    k = re.findall("{}.*余额:(.*)".format(a3), a11)
    for i in range(1, len(k) + 1):
        c.append(k[-i])
    q = float(c[0])
    q = int(q)
    print("*"*100)
    print("欢迎进入存款界面")
    print(" "*100)
    print(" " * 100)
    print(" " * 100)
    print("*" * 100)
    c3 = float(input("请输入存款的金额:"))

    if c3 >= 100 and c3 <= 20000:
        print(f"存款{c3}元成功")
        q=q+c3
        a9 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
        a9.write("\n")
        m="用户名:"
        a9.write(m)
        a9.write(a3)
        a9.write(" ")
        t = "余额:"
        a9.write(t)
        q=str(q)
        a9.write(q)
        a9.close()
    else:
        print("存款金额太小或者太大")
    g=input("是否要直接退出(输入是或否):")
    if g=="是":
        print("退出登录")
    else:
        bank()

def qu_kuan():
    global q
    a10 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt")
    a11 = a10.read()
    c = []
    k = re.findall("{}.*余额:(.*)".format(a3), a11)
    for i in range(1, len(k) + 1):
        c.append(k[-i])
    q = float(c[0])
    q = int(q)
    print("*" * 100)
    print("欢迎进入取款界面")
    print(" " * 100)
    print(" " * 100)
    print(" " * 100)
    print("*" * 100)
    c4 = float(input("请输入取款的金额:"))
    if c4 >= 100 and c4 <= 20000:
        if c4<q:
            print(f"取款{c4}成功")
            q=q-c4
            a9 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
            a9.write("\n")
            m = "用户名:"
            a9.write(m)
            a9.write(a3)
            a9.write(" ")
            t="余额:"
            a9.write(t)
            q=str(q)
            a9.write(q)
            a9.close()
        else:
            print("余额不足,请重新输入取款金额")
            qu_kuan()
    else:
        print("取款金额太小或者太大")
        qu_kuan()
    g = input("是否要直接退出(输入是或否):")
    if g == "是":
        print("退出登录")
    else:
        bank()

def zhuan_zhang():
    print("*" * 100)
    print("欢迎进入转账界面")
    print(" " * 100)
    print(" " * 100)
    print(" " * 100)
    print("*" * 100)
    a10 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt")
    a11 = a10.read()
    c = []
    k = re.findall("{}.*余额:(.*)".format(a3), a11)
    for i in range(1, len(k) + 1):
        c.append(k[-i])
    q = float(c[0])
    q = int(q)
    a9 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
    d1 = float(input("请输入转账金额(金额大于100小于20000):"))
    c5 = input("用户名:")
    a5 = open(r"C:\Users\PC-win10-22\Desktop\存储用户名和密码.txt")
    a6 = a5.read()
    a7 = re.findall("用户名:(.*) ", a6)
    for i in a7:
            if c5 == i :
                print("转账成功")
                q = q-d1
                a9 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
                a9.write("\n")
                m = "用户名:"
                a9.write(m)
                a9.write(a3)
                a9.write(" ")
                t = "余额:"
                a9.write(t)
                q = str(q)
                a9.write(q)
                a9.write("\n")
                d3 = "转账记录:"
                a9.write(d3)
                a9.write(a3)
                a9.write(" ")
                d1 = str(d1)
                a9.write(d1)
                a9.write(" ")
                a9.write(c5)
                a9.close()
                d = []
                a10 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt")
                a11 = a10.read()
                k = re.findall("{}.*余额:(.*)".format(c5), a11)
                for i in range(1, len(k) + 1):
                    d.append(k[-i])
                l = float(d[0])
                d1 = float(d1)
                l = l + d1
                a9 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
                a9.write("\n")
                m = "用户名:"
                a9.write(m)
                a9.write(c5)
                a9.write(" ")
                t = "余额:"
                a9.write(t)
                l = str(l)
                a9.write(l)
                a9.close()
    g = input("是否要直接退出(输入是或否):")
    if g == "是":
        print("退出登录")
    else:
        bank()
def cha_xun2():
    print("*" * 100)
    print("欢迎进入查询界面")
    print(" " * 100)
    print(" " * 100)
    print(" " * 100)
    print("*" * 100)
    d3 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt")
    d4 = d3.read()
    a7=re.findall("用户名:{}.*".format(a3), d4)
    a8=re.findall("转账记录:{}.*".format(a3),d4)
    c=[]
    for i in range(1, len(a7) + 1):
        c.append(a7[-i])
    print(c[0])
    for j in a8:
        print(j)
    d3.close()
    g = input("是否要直接退出(输入是或否):")
    if g == "是":
        print("退出登录")
    else:
        bank()

def cha_xun1():
    print("*" * 100)
    print("欢迎进入管理员查询界面")
    print(" " * 100)
    print(" " * 100)
    print(" " * 100)
    print("*" * 100)
    d3 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt")
    d4 = d3.read()
    a7 = re.findall("用户名:.*", d4)
    a8=re.findall("转账记录:.*",d4)
    for i in a7:
        print(i)
    for j in a8:
        print(j)
    d3.close()
    g = input("是否要直接退出(输入是或否):")
    if g == "是":
        print("退出登录")
    else:
        bank1()
def guan_li():
    print("*" * 100)
    print("欢迎进入管理交易信息界面")
    print(" " * 100)
    print(" " * 100)
    print(" " * 100)
    print("*" * 100)
    f=input("是否允许该交易(填写是或否):")
    if f=="是":
        print("此次交易成功")
    elif f=="否":
        print("此次交易失败")
    g = input("是否要直接退出(输入是或否):")
    if g == "是":
        print("退出登录")
    else:
        bank1()
def bank1():
    print("*" * 100)
    print("管理交易信息(1)")
    print("查询所有账户信息(2)")
    print("退出登录(3)")
    print(" " * 100)
    print(" " * 100)
    print(" " * 100)
    print("*" * 100)
    b3 = int(input("请输入你想进行的操作代号:"))
    if b3 == 1:
        print("管理交易信息")
        guan_li()
    elif b3 == 2:
        print("查询所有账户信息")
        cha_xun1()
    elif b3 == 3:
        print("退出登录")
    else:
        print("请重新输入有效代号")
        bank()
def bank():
    print("*"*100)
    print("存款(1)")
    print("取款(2)")
    print("转账(3)")
    print("查询账户(4)")
    print("退出登录(5)")
    print("*"*100)
    b3=int(input("请输入你想进行的操作代号:"))
    if b3==1:
        print("进入存款界面")
        cun_kuan()
    elif b3==2:
        print("进入取款界面")
        qu_kuan()
    elif b3==3:
        print("进入转账界面")
        zhuan_zhang()
    elif b3==4:
        print("进入查询账户界面")
        cha_xun2()
    elif b3 == 5:
        print("退出登录")
    else:
        print("请重新输入有效代号")
        bank()
def deng_lu():
    global a3
    a3 = input("用户名:")
    a4 = input("密码:")
    a5 = open(r"C:\Users\PC-win10-22\Desktop\存储用户名和密码.txt")
    a6 = a5.read()
    a7 = re.findall("用户名:(.*) ", a6)
    a8 = re.findall("密码:(.*)", a6)
    if a3 == "admin" and a4 == "admin":
        print("登录管理员账号成功")
        d3 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
        d4 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        d5 = "登陆账户记录:"
        d3.write("\n")
        d3.write(d5)
        d3.write(a3)
        d3.write(" ")
        d3.write(d4)
        d3.close()
        bank1()
    for i in range(len(a7)):
            for j in range(len(a8)):
                if a3 == a7[i] and a4 == a8[i]:
                    print("登录成功")
                    d3 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
                    d4 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
                    d5 = "登陆账户记录:"
                    d3.write("\n")
                    d3.write(d5)
                    d3.write(a3)
                    d3.write(" ")
                    d3.write(d4)
                    d3.close()
                    bank()
                    break
                else:
                    pass

def zhu_ce():
        global a3
        a = input("是否已注册(填写是或者否):")
        if a == "否":
            print("您好,请注册")
            b1 = open(r"C:\Users\PC-win10-22\Desktop\存储用户名和密码.txt", "a")
            a1 = input("用户名:")
            a2 = input("密码:")
            c1 = "用户名:"
            c2 = "密码:"
            b1.write("\n")
            b1.write(c1)
            b1.write(a1)
            b1.write(" ")
            b1.write(c2)
            b1.write(a2)
            b1.close()
            b2=open(r"C:\Users\PC-win10-22\Desktop\记录.txt","a")
            c3="余额:"
            b2.write("\n")
            b2.write(c1)
            b2.write(a1)
            b2.write(" ")
            b2.write(c3)
            b2.write("0")
            b2.close()
            print("注册成功!")
            print("您好,请登录")
            a3 = input("用户名:")
            a4 = input("密码:")
            a5 = open(r"C:\Users\PC-win10-22\Desktop\存储用户名和密码.txt")
            a6 = a5.read()
            a7 = re.findall("用户名:(.*) ", a6)
            a8 = re.findall("密码:(.*)", a6)
            for i in range(len(a7)):
                for j in range(len(a8)):
                    if a3 == a7[i] and a4 == a8[i]:
                        print("登录成功")
                        d3 = open(r"C:\Users\PC-win10-22\Desktop\记录.txt", "a")
                        d4 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
                        d5 = "登陆账户记录:"
                        d3.write("\n")
                        d3.write(d5)
                        d3.write(a3)
                        d3.write(" ")
                        d3.write(d4)
                        d3.close()
                        bank()
                        break
        elif a == "是":
            print("您好,请登录")
            deng_lu()
        else:
            print("输入有误,请重新输入")
            zhu_ce()
print("欢迎来到银行记账系统")
zhu_ce()

猜你喜欢

转载自blog.csdn.net/liaoqingjian/article/details/106936557