python 银行系统 opetate.py 部分

python

from user import User
from card import Card
from helper import Helper


# 操作的类
class Operate:
    def __init__(self, userinfo={}):
        # 用户保存所有的用户信息
        self.userinfo = userinfo

    def new_user(self):
        name = input('请输入用户名:')
        uid = input('请输入身份证:')
        pwd = input('请输入密码:')
        # 加密密码
        pwd = Helper.generate_password_hash(pwd)
        # 先创建银行卡对象
        # 生成卡号
        cid = Helper.generate_cid()
        card = Card(cid, pwd)
        user = User(uid, name, card)
        # 保存到字典中
        self.userinfo[cid] = user
        # 保存所有用户信息
        User.save_user(self.userinfo)
        print('开户成功')

    def del_user(self):
        print('销户')

    def query_money(self):
        cid = input('请输入您的卡号:')
        user = self.userinfo.get(cid)
        if user:
            # 查看是否已经锁定
            if user.card.is_lock:
                print('该卡已锁定,请先解锁')
                return
            print('账户余额:¥{}元'.format(user.card.money))
        else:
            print('无效的卡号')

    def get_money(self):
        print('取钱成功')

    def save_money(self):
        cid = input('请输入您的卡号:')
        user = self.userinfo.get(cid)
        if user:
            # 查看是否已经锁定
            if user.card.is_lock:
                print('该卡已锁定,请先解锁')
                return
            # 记录密码错误次数
            count = 0
            while count < 3:
                pwd = input('请输入您的密码:')
                # 校验密码
                if Helper.check_password_hash(pwd, user.card.pwd):
                    money = input('请输入您要存的金额:')
                    user.card.money += int(money)
                    User.save_user(self.userinfo)
                    print('存款成功')
                    break
                else:
                    count += 1
                    print('密码有误,请重新输入')
            else:
                user.card.is_lock = True
                User.save_user(self.userinfo)
                print('密码错误已达上限,该卡已锁定')
        else:
            print('无效的卡号')

    # 转账
    def pass_money(self):
        cid = input('请输入您的卡号:')
        user = self.userinfo.get(cid)
        if user:
            pwd = input('请输入您的密码:')
            if Helper.check_password_hash(pwd, user.card.pwd):
                dst_cid = input('请输入收款人账号:')
                dst_user = self.userinfo.get(dst_cid)
                if dst_user:
                    money = int(input('请输入您的转账金额:'))
                    # 判断账户余额是否充足
                    if user.card.money >= money:
                        user.card.money -= money
                        dst_user.card.money += money
                        User.save_user(self.userinfo)
                        print('转账成功')
                    else:
                        print('余额不足,请及时充值')
                else:
                    print('收款人信息有误')
            else:
                print('密码错误')
        else:
            print('无效的卡号')

    def change_pwd(self):
        print('修改密码成功')

    # 变相已经帮大家实现了
    def lock_user(self, user):
        print('用户锁定')

    def unlock_user(self):
        cid = input('请输入您的卡号:')
        user = self.userinfo.get(cid)
        if user:
            uid = input('请出示您的身份证:')
            if uid == user.uid:
                user.card.is_lock = False
                User.save_user(self.userinfo)
                print('解锁成功')
            else:
                print('身份证是不是带错了@_@')
        else:
            print('卡是不是折了:卡号错了')

    def show_users(self):
        for user in self.userinfo:
            print(self.userinfo[user])

猜你喜欢

转载自blog.csdn.net/qq_42795565/article/details/81461658