Python模拟实现银行系统(平时的小练习)

class Bankin_system:
    login = '''
    ********************************************
    ***                                      ***
    ***                                      ***
    ***                                      ***
    ***       欢 迎 登 录 银 行 系 统           ***
    ***                                      ***
    ***                                      ***
    ***                                      ***
    ********************************************
    '''
    mainsting = '''
    ********************************************
    ***                                      ***
    ***      1.开户(1)        2.查询(2)        ***
    ***      3.取款(3)        4.存款(4)        ***
    ***      5.转账(5)                        ***
    ***      退出(Q)                          ***
    ***                                      ***
    ***                                      ***
    ********************************************
    '''
    # 定义一个字典用于存用户的信息
    user = {"张三": 12345, "李四": 12345, "1": 1}
    # 定义一个money字典用于存用户的余额
    money = {"张三": 1000, "李四": 5000, "1": 10000}

    # 定义构造函数
    def __init__(self):
        # 打印登录界面,在构造器中输入账号密码
        print(self.login)
        self.loginAct = input("请输入管理员账号:")
        self.password = eval(input("请输入密码:"))
        if self.user.get(self.loginAct) == self.password:
            print("操作成功请稍等....")
            self.main()

    #  定义一个主函数调用其他函数
    def main(self):
        print(self.mainsting)
        num = eval(input("请输入操作选项:"))
        if isinstance(num, int):
            if num == 1:
                self.open_account()
            elif num == 2:
                self.query()
            elif num == 3:
                self.qu_money()
            elif num == 4:
                self.cun_money()
            elif num == 5:
                self.transfer_accounts()
            else:
                print("FBI WARRING 请重新输入合法操作")
                self.main()
        elif isinstance(num, str):
            if num == "Q":
                print("感谢您的使用!!")
                return
        else:
            print("FBI WARRING 请重新输入合法操作")
            self.main()

    # 开户功能
    def open_account(self):
        loginAct = input("请输入您的用户名(中文):")
        password = eval(input("请设置您的密码:"))
        # 先判断一下,是否已存在
        if self.user.get(loginAct) is None:
            # 添加到userbiao中,
            password1 = eval(input("请再次输入您的密码:"))
            if password == password1:
                self.user[loginAct] = password
                print("开户成功")
                self.main()
            else:
                print("两次密码不相同")
                self.open_account()
        else:
            print("该用户已存在,请换个用户名!!")
            self.open_account()

    # 查询
    def query(self):
        print(f"{self.loginAct}的余额为:{self.money.get(self.loginAct)}")
        self.main()

        # 查询
    def query_money(self):
        return self.money.get(self.loginAct)

    # 取钱
    def qu_money(self):
        how_money = eval(input("请输入取款金额:"))
        # 先判断金额
        if self.money.get(self.loginAct) >= how_money:
            how_money = self.money.get(self.loginAct) - how_money
            #  取钱之后将账户中的值重新设置一下
            self.money[self.loginAct] = how_money
            #     并输出账户的余额
            self.query()
            self.main()
        else:
            print("您的账户余额不足!!")
            print(f"账户余额为{self.query()},请重新操作!!")
            self.main()

    # 存钱
    def cun_money(self):
        how_money = eval(input("请输入存款金额:"))
        new_money = self.money.get(self.loginAct) + how_money
        #     存钱之后将账户中的值重新设置一下
        self.money[self.loginAct] = new_money
        #     并输出账户的余额
        self.query()
        self.main()

    # 转账
    def transfer_accounts(self):
        how_money = eval(input("请输入转账金额:"))
        # 转账的时候先判断一下账户余额,没有就不能转账
        if self.money.get(self.loginAct) >= how_money:
            user = input("请输入转账用户的账户名:")
            #   自己的账户中的钱减少
            new_money = self.money.get(self.loginAct) - how_money
            #   取钱之后将账户中的值重新设置一下
            self.money[self.loginAct] = new_money

            # 转账用户的钱增加
            new_money = self.money.get(user) + how_money
            #   存钱之后将账户中的值重新设置一下
            self.money[user] = new_money
            #     并输出账户的余额
            self.query()
            self.main()
        else:
            print("您的账户余额不足!!")
            print(f"账户余额为{self.query_money()},请重新操作!!")
            self.main()


if __name__ == '__main__':
    bank = Bankin_system()

posted @ 2022-05-10 13:48  yfs1024  阅读(219)  评论(0)    收藏  举报