ATM+购物车1.0

帅兰

# 执行文件
import os
import sys

base_path = os.path.dirname(os.path.dirname(__file__))

sys.path.append(base_path)

from core import src


if __name__ == '__main__':

    src.run()

import json
import os
import time

login_user = [None, None]
user_info = {}
user_info1 = {}


# 记录操作日志
def outter4(func):
    def wrapper(*args, **kwargs):
        res = func(*args, **kwargs)
        a = time.strftime('%Y-%m-%d %X')
        b = __name__
        c = f'用户{login_user[1]}于{a}使用了{b}功能;\n'
        user_file_path = r'D:\ATM\log\log1%s.json' % user_info['name']
        with open(user_file_path, 'a', encoding='utf-8')as f:
            json.dump(c, f)
        return res
    return wrapper

# 记录金钱流水
def outter3(func):
    def wrapper(*args, **kwargs):
        if user_info is None:
            return
        a = user_info['bal']
        res = func(*args, **kwargs)
        b = user_info['bal']
        if a > b:
            c = a - b
            user_file_path = r'D:\ATM\log\%s.json' % user_info['name']
            d = time.strftime('%Y-%m-%d %X')
            e = f'用户{login_user[1]}于{d}用了{c}元;\n'
            with open(user_file_path, 'a', encoding='utf-8')as f:
                json.dump(e, f)
        elif a < b:
            c = b - a
            user_file_path = r'D:\ATM\log\%s.json' % user_info['name']
            d = time.strftime('%Y-%m-%d %X')
            e = f'用户{login_user[1]}于{d}增加了{c}元;\n'
            with open(user_file_path, 'a', encoding='utf-8')as f:
                json.dump(e, f)
        else:
            user_file_path = r'D:\ATM\log\%s.json' % user_info['name']
            d = time.strftime('%Y-%m-%d %X')
            e = f'用户{login_user[1]}于{d}触发了该日志;\n'
            with open(user_file_path, 'a', encoding='utf-8')as f:
                json.dump(e, f)

        return res

    return wrapper


# 某些功能需要解锁使用
def outter(func):
    def wrapper(*args, **kwargs):
        if login_user[0] is None:
            print('请前往道具城解锁')
            return
        res = func(*args, **kwargs)
        return res

    return wrapper


# 欠钱超额催还
def outter2(func):
    def wrapper(*args, **kwargs):
        if int(user_info['bal']) < 1000:
            print('请保证欠款少于1000,快还钱')
            print('正在跳转')
            time.sleep(0.5)
            repayment()
        res = func(*args, **kwargs)
        return res

    return wrapper


# 验证用户是否登入
def outter1(func):
    def wrapper(*args, **kwargs):
        if login_user[1] is None:
            print('该功能需要先登入,即将跳转登入')
            time.sleep(0.5)
            login()
        res = func(*args, **kwargs)
        return res

    return wrapper


# 登入功能
@outter4
def login():
    while 1:
        print('登入')
        name_ = input('请输入您的用户名:').strip()
        password = input('请输入您的密码:').strip()
        user_file_path = r'D:\ATM\db\%s.json' % name_
        if not os.path.exists(user_file_path):
            print('账号不存在,请先注册')
            break
        with open(user_file_path, 'r', encoding='utf-8')as f:
            global user_info
            user_info = json.load(f)
            if name_ == user_info['name'] and user_info['pwd'] == password:
                print('登入成功')
                global login_user
                login_user = [None, name_]
                break
            else:
                print('账号密码错误')


# 注册功能
def register():
    print('注册')
    while 1:
        username = input('请输入您的用户名:').strip()
        password = input('请输入您的密码:').strip()
        re_password = input('请再次输入密码以确认:').strip()
        if password == re_password:
            user_file_path = r'D:\ATM\db\%s.json' % username
            if os.path.exists(user_file_path):
                print('用户名已存在!!!')
                continue
            user_info = {'name': username, 'pwd': password, 'bal': 1, 'shop_car': [], 'bank_flow': [], 'locked': False}
            with open(user_file_path, 'a', encoding='utf-8')as f:
                json.dump(user_info, f)

                print(f'注册成功少年,快点充钱吧,这边送了你一个Q币,可以购买会员,用于解锁新功能')
                break
        else:
            print('两次输入不一致,少年')


# 查询余额
@outter1
@outter4
def balance():
    if login_user[1] is None:
        return
    print('查询QB余额')
    a = user_info['bal']
    print(f'亲爱的{login_user[1]}先生/女生,您的账号余额为{a}元')


# 充值
@outter1
@outter3
@outter4
def recharge():
    if login_user[1] is None:
        return
    print('充钱')
    while 1:
        rec = input('请输入要充值的金额:').strip()
        if rec == '0':
            break
        elif rec.isdigit():
            a = int(rec)
            user_info['bal'] += a
            print(f'{login_user[1]}您已充值{rec}元')
            print('亲爱的这边感觉您还想充,输入0退回主页')
        else:
            print('请输入正确的类型')


# 转账
@outter1
@outter4
@outter2
@outter
@outter3
def transfer():
    print('转账')
    username = input('请输入对方用户名:')
    user_file_path = r'D:\ATM\db\%s.json' % username
    if not os.path.exists(user_file_path):
        print('对方账号不存在')
        return
    with open(user_file_path, 'r', encoding='utf-8')as f:
        global user_info1
        user_info1 = json.load(f)
        while 1:
            num = input('请输入转账金额:').strip()
            if num.isdigit():
                a = int(num)
                user_info1['bal'] += a
                user_info['bal'] -= a
                with open(user_file_path, 'w+', encoding='utf-8')as f1:
                    json.dump(user_info1, f1)
                    print(f'已向{username}转账{num}元')
                    break
            else:
                print('请输入正确的类型')


# 还款
@outter1
@outter
@outter4
@outter3
def repayment():
    print('还钱')
    while 1:
        num = input('请输金额:').strip()
        if num.isdigit():
            a = int(num)
            user_info['bal'] += a
            print(f'亲爱的{login_user[1]}这边已为您充值{a}元')
            return
        else:
            print('请输入正确的类型')


# 取钱
@outter1
@outter
@outter2
@outter4
@outter3
def withdraw():
    print('取钱')
    num = input('请输入您要的取的金额:').strip()
    if num.isdigit():
        a = int(num)
        if user_info['bal'] < a:
            print('亲亲您的账号余额不足')
            return
        else:
            user_info['bal'] -= a


# 商城
@outter1
@outter4
@outter2
@outter3
def shopping():
    print('道具城')
    tag = True
    while tag:
        dic = {'1': ['临时会员', 1],
               '2': ['火麒麟', 888],
               '3': ['雷神', 888]}
        for i in dic:
            print(f'{i}、{dic[i][0]} ==> 价格{dic[i][1]}')
        num = input('请输入商品对应的数字,可以查看属性功能,0:退出:').strip()
        if num in dic:
            if num == '1':
                print('''开通会员即可开启全部功能,临时会员退出失效,特价一元:
                确认购买输入’1‘
                退回输入’0‘
                ''')
                num1 = input('请输入数字:').strip()
                if num1 == '1':
                    user_info['bal'] -= dic[num][1]
                    global login_user
                    login_user[0] = True
                    print('购买成功')
                    continue
                elif num == '0':
                    continue

                else:
                    print('请输入正确数字')
                    continue
            elif num == '2':
                print('''火麒麟 想要变强吗?:
                确认购买输入’1‘
                退回输入’0‘
                ''')
                num2 = input('请输入数字:').strip()
                if num2 == '1':
                    user_info['bal'] -= dic[num][1]
                    print('购买成功')
                    user_info['shop_car'].append(dic[num][0])
                    continue
                elif num == '0':
                    continue
                else:
                    print('请输入正确数字')
                    continue
            elif num == '3':
                print('''雷神 想要变强吗?:
                确认购买输入’1‘
                退回输入’0‘
                ''')
                num3 = input('请输入数字:').strip()
                if num3 == '1':
                    user_info['bal'] -= dic[num][1]
                    print('购买成功')
                    user_info['shop_car'].append(dic[num][0])
                    continue
                elif num == '0':
                    continue
                else:
                    print('请输入正确数字')
                    continue
        elif num == '0':
            print('已退出')
            return
        else:
            print('请输入正确的数字')


# 查询
@outter1
@outter4
@outter
def shopping_info():
    print('购物及操作信息')
    while 1:
        print('''
            1:查看账号金钱流水流水日志
            2: 查看购物车''')
        num = input('请输入功能对应的编号, 0 :退出:').strip()
        if num == '1':
            user_file_path = r'D:\ATM\log\%s.json' % user_info['name']
            with open(user_file_path, 'r', encoding='utf-8')as f:
                for i in f:
                    print(i)
        elif num == '2':
            print(user_info['shop_car'])
        elif num == '0':
            print('已退出')
            return

        else:
            print('请输入正确的数字')


# 函数调用的使用
dic = {'1': [login, '登入'],
       '2': [register, '注册'],
       '3': [balance, '余额'],
       '4': [recharge, '充值'],
       '5': [transfer, '转账'],
       '6': [repayment, '还款'],
       '7': [withdraw, '取款'],
       '8': [shopping, '道具城'],
       '9': [shopping_info, '购物及操作信息']}


# 主页
def run():
    while 1:
        print('''欢迎您来到七鹅商城
1: 登入     6: 还款
2: 注册     7: 取款
3: 余额     8: 道具城
4: 充值     9: 购买信息
5: 转账    ''')
        num = input('请输入数字对应的功能,输入0 退出:')
        if num == '0':
            print('已退出')
            if login_user[0] is None:
                return
            else:
                user_file_path = r'D:\ATM\db\%s.json' % user_info['name']
                with open(user_file_path, 'w', encoding='utf-8')as f:
                    json.dump(user_info, f)
                    return

        elif num in dic:
            dic[num][0]()
        else:
            print('请输入正确的指令')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值