• day18作业


    ATM(1.0)

    from db import db_handler
    import os
    
    
    def admin_interface(name):
        user_file_path = r'D:pyATMdb\%s.json' % name
        if os.path.exists(user_file_path):
            to_dic = db_handler.select(name)
            to_dic['locked'] = True
            db_handler.save(to_dic)
            return True, '已成功冻结该用户'
        else:
            return False, '该用户不存在'
    
    
    def checking(user_name):
        user_file_path = r'D:pyATMdb\%s.json' % user_name
        if os.path.exists(user_file_path):
            user_dic = db_handler.select(user_name)
            if user_dic['locked'] == True:
                print('该用户已被冻结'.center(20, '*'))
                return True
    admin.py
    import json
    import os
    from db import db_handler
    from lib import common
    
    
    def check_bal_interface():
        user_name = common.name['name']
        user_dict = db_handler.select(user_name)
        return '您的余额为:%s' % user_dict['bal']
    
    
    def withdraw_interface(money):
        user_name = common.name['name']
        user_dict = db_handler.select(user_name)
        money2 = money * 1.05
        if user_dict['bal'] >= money2:
            user_dict['bal'] = user_dict['bal'] - money2
            db_handler.save(user_dict)
            return True, '取款 %s 成功' % money
        return False, '余额不足无法取款'
    
    
    def repay_interface(money):
        user_name = common.name['name']
        user_dict = db_handler.select(user_name)
        user_dict['bal'] += money
        db_handler.save(user_dict)
        return '还款 %s 成功' % money
    
    
    def transfer_interface(name, money):
        user_name = common.name['name']
        if name == user_name:
            return False, '用户不能是自己'
        user_dic = db_handler.select(user_name)
        to_dic = db_handler.select(name)
        user_file_path = r'D:pyATMdb\%s.json' % name
        if os.path.exists(user_file_path):
            user_dic['bal'] = user_dic['bal'] - money
            to_dic['bal'] += money
            db_handler.save(user_dic)
            db_handler.save(to_dic)
            return True, '向用户 %s 转账 %s 成功' % (name, money)
        return False, '用户不存在,请重新输入'
    
    
    def check_flow_interface():
        user_name = common.name['name']
        db_handler.bank_flow_select(user_name)
        return ''
    bank.py
    from lib import common
    from db import db_handler
    
    shopping_dic = {
        '1': ['商品A', 10],
        '2': ['商品B', 100],
        '3': ['商品C', 101],
        '4': ['商品D', 1050],
        '5': ['商品E', 140],
        '6': ['商品F', 20000],
    }
    
    
    def shopping_interface(choice):
        if choice in shopping_dic:
            shop_num = input('请输入购买数量').strip()
            shop_num = int(shop_num)
            shop_name = shopping_dic[choice][0]
            name = common.name['name']
            db_handler.shopping_save(name, shop_name, shop_num)
            return True, '加入购物车成功!'
        else:
            return False, '暂无此商品,请重新输入'
    
    
    def check_shop_interface():
        user_name = common.name['name']
        user_dic = db_handler.select(user_name)
        return '您的购物车为:
    %s' % user_dic['shop_car']
    shop.py
    import os
    import json
    from db import db_handler
    from lib import common
    
    
    def register_interface(name, password):
        user_dic = db_handler.select(name)
        if user_dic:
            return False, '用户已存在,请重新输入'
        user_info = {'name': name, 'password': password, 'bal': 15000, 'shop_car': [], 'bank_flow': [],
                     'locked': False}
        db_handler.save(user_info)
        return True, '注册成功'
    
    
    def login_interface(user_name, user_password):
        user_dic = db_handler.select(user_name)
        if user_dic:
            if user_dic['name'] == user_name and user_dic['password'] == user_password:
                common.name['name'] = user_name
                return True, '登录成功'
            else:
                return False, '密码错误'
        else:
            return False, '用户名不存在'
    user.py
    import os
    import sys
    
    path = os.path.dirname(__file__)
    
    sys.path.append(path)
    
    from core import src
    
    if __name__ == '__main__':
        src.run()
    start.py
    import json
    import os
    from lib import common
    from interface import user
    from interface import bank
    from interface import shop
    from interface import admin
    
    def register():
        print('注册功能'.center(20, '*'))
        while True:
            user_name = input('请输入用户名:').strip()
            user_pwd = input('请输入密码:').strip()
            re_user_pwd = input('请再次输入密码:').strip()
            if user_pwd == re_user_pwd:
                flag, msg = user.register_interface(user_name, user_pwd)
                if flag:
                    print(msg)
                    break
                else:
                    print(msg)
            else:
                print('两次密码不一致,请重新输入')
    
    
    def login():
        print('登录功能'.center(20, '*'))
        while True:
            user_name = input('请输入用户名:').strip()
            flag = admin.checking(user_name)
            if flag:
                break
            else:
                user_pwd = input('请输入密码:').strip()
                flag, msg = user.login_interface(user_name, user_pwd)
                if flag:
                    print(msg)
                    break
                else:
                    print(msg)
    @common.deco
    def check_bal():
        print('查看余额'.center(20, '*'))
        msg = bank.check_bal_interface()
        print(msg)
    
    
    @common.deco
    @common.otter('转账')
    def transfer():
        while True:
            print('转账功能'.center(20, '*'))
            t_name = input('请输入转账对象:').strip()
            t_money = input('请输入转账金额:').strip()
            t_money = int(t_money)
            flag, msg = bank.transfer_interface(t_name, t_money)
            if flag:
                print(msg)
                break
            else:
                print(msg)
             
    
    
    @common.deco
    @common.otter('还款')
    def repay():
        while True:
            print('还款功能'.center(20, '*'))
            money = input('请输入取款金额:').strip()
            if not money.isdigit():
                print('请输入数字')
                continue
            money = int(money)
            msg = bank.repay_interface(money)
            print(msg)
            break
    
    
    @common.deco
    @common.otter('取款(含百分之5手续费)')
    def withdraw():
        while True:
            print('取款功能'.center(20, '*'))
            money = input('请输入取款金额:').strip()
            if not money.isdigit():
                print('请输入数字')
                continue
            money = int(money)
            flag, msg = bank.withdraw_interface(money)
            if flag:
                print(msg)
                break
            else:
                print(msg)
                break
    
    
    @common.deco
    def check_flow():
        print('查看流水'.center(20, '*'))
        msg = bank.check_flow_interface()
        print(msg)
    
    @common.deco
    @common.otter('购物')
    def shopping():
        while True:
            print('购物功能'.center(20, '*'))
            print('0   退出')
            for k in shop.shopping_dic:
                print('商品编号:%s  商品名:%s  商品价格:%s' % (k, shop.shopping_dic[k][0], shop.shopping_dic[k][1]))
            choice = input('请输入您想要购买的商品编号:').strip()
            if choice == '0':
                break
            else:
                flag, msg = shop.shopping_interface(choice)
                if flag:
                    print(msg)
                else:
                    print(msg)
    @common.deco
    def check_shop():
        print('查看购物车'.center(20, '*'))
        msg = shop.check_shop_interface()
        print(msg)
    
    
    @common.deco
    def Administration():
        print('管理'.center(20, '*'))
        t_name = input('请输入冻结对象:').strip()
        flag, msg = admin.admin_interface(t_name)
        if flag:
            print(msg)
        else:
            print(msg)
    
    func_dic = {
        '1': [register, '注册功能'],
        '2': [login, '登录功能'],
        '3': [check_bal, '查看余额'],
        '4': [transfer, '转账功能'],
        '5': [repay, '还款功能'],
        '6': [withdraw, '取款功能'],
        '7': [check_flow, '查看流水'],
        '8': [shopping, '购物功能'],
        '9': [check_shop, '查看购物车'],
        '10': [Administration, '管理']
    }
    
    
    def run():
        while True:
            print('0   退出功能')
            for k in func_dic:
                print('%s   %s' % (k, func_dic[k][1]))
            choice = input('请输入您的指令编号:').strip()
            if choice == '0':
                break
            elif choice in func_dic:
                func_dic[choice][0]()
            else:
                print('未识别的指令')
    src.py
    import json
    import os
    
    
    def select(name):
        user_file_path = r'D:pyATMdb\%s.json' % name
        if os.path.exists(user_file_path):
            with open(user_file_path, 'r', encoding='utf-8') as f:
                user_dic = json.load(f)
                return user_dic
    
    
    def save(user_dic):
        user_file_path = r'D:pyATMdb\%s.json' % user_dic['name']
        with open(user_file_path, 'w', encoding='utf-8') as f:
            json.dump(user_dic, f)
    
    
    def login(mag):
        user_file_path = r'D:pyATMlogaccess.log'
        with open(user_file_path, 'a', encoding='utf-8') as f:
            f.write(mag)
    
    
    def bank_flow_save(msg, name):
        user_dic = select(name)
        user_dic['bank_flow'].append(msg)
        save(user_dic)
    
    
    def bank_flow_select(name):
        user_dic = select(name)
        print('您的流水为:')
        for i in user_dic['bank_flow']:
            print(i, end='')
    
    
    def shopping_save(name, shop_name, shop_num):
        dic = {}
        user_dic = select(name)
        shop_car = user_dic['shop_car']
        if shop_car:
            for i in shop_car:
                if shop_name in i:
                    dic[shop_name] = i[shop_name] + 1
                    shop_car.remove(i)
                    break
                else:
                    dic[shop_name] = shop_num
        else:
            dic[shop_name] = shop_num
        shop_car.append(dic)
        save(user_dic)
    
    # shop_car = [{'b':11}, {'a':23}, {'c':33}]
    # dic = {}
    # for i in shop_car:
    #     if 'a' in i:
    #         dic['a'] = i['a'] + 1
    #         print(dic)
    #         shop_car.remove(i)
    # shop_car.append(dic)
    # print(shop_car)
    db_handler.py
    common.py
  • 相关阅读:
    axis2 WebService的发布与调用
    sql语句having子句用法,很多时候你曾忘掉
    linux下tomcat开机自启动
    框架使用的技术主要是SpringMVC 在此基础上进行扩展
    SpringMVC整合Mongodb开发 架构搭建
    解决Linux下3T硬盘分区只有2T(2199G)可用
    ubuntu cp(copy) command
    Linux如何根据UUID自动挂载磁盘分区
    python exec和eval
    在OpenERP报表中使用selection 类型字段
  • 原文地址:https://www.cnblogs.com/hansblogs/p/13387484.html
Copyright © 2020-2023  润新知