51_work--购物车

import jsonimport osimport datetime

info = ‘‘‘*************欢迎光临*****************                                   **        1.按"A"或"a"注册           **        2.按"L"或"l"登陆           *  *        3.按"Q"或"q"退出           *                                  ***********************************‘‘‘error_info = ‘输入错误,请重新输入!‘

def save_account(message, filename=‘message.json‘):    with open(filename, ‘w‘) as f:        json.dump(message, f)

def load_message(filename=‘message.json‘):    with open(filename) as f:        message = json.load(f)    return message

def add_user():    message = load_message(‘message.json‘)    while True:        username = input(‘请输入用户名>>>:‘).strip()        if username in message:            print(‘该用户名已存在,请重新输入!‘)        else:            break    while True:        pwd1 = input(‘请输入密码>>>:‘)        pwd2 = input(‘请再次输入密码>>>:‘)        if pwd1 != pwd2:            print(‘两次密码不一样,请重新输入>>>:‘)        else:            print(‘账户创建成功,请登录!‘)            message[username] = {‘pwd‘: pwd1, "balance": 0, ‘shopping_list‘: [], ‘shopping_time‘: None}            save_account(message)            break

def login():    message = load_message(‘message.json‘)    locklist = load_message(‘locklist.json‘)    print(‘Welcom to shopping system!‘)    while True:        account = input(‘请输入你的用户名(按q退出系统)>>>:‘)        if account in locklist:            print(‘抱歉,你的账号已被锁定!‘)            log_out()        elif account == ‘q‘:            log_out()        elif account in message:            count = 0            while count < 3:                pwd = input(‘请输入密码>>>:‘)                if pwd == message[account][‘pwd‘]:                    while True:                        account_balance = get_balance(account)                        print(‘你的账户余额为\033[32m%d\033[0m‘ % account_balance)                        command = input(‘按h查询购物历史,按s开始购物,按r充值>>>:‘)                        if command == ‘h‘:                            if message[account][‘shopping_time‘] != None:                                get_shopping_history(account)                            else:                                print(‘您在本商城没有购物历史!‘)                        elif command == ‘s‘:                            shopping(account)  # 开始购物                        elif command == ‘r‘:                            recharge(account)                        else:                            print(error_info)                else:                    count += 1                    print(‘密码错误,你还有%d次机会‘ % (3 - count))            locklist.setdefault(account)            print(‘你的账号已被锁定!‘)            save_account(locklist, ‘locklist.json‘)            log_out()        else:            print(‘该用户不存在!按b返回上一层或按q退出‘)

def log_out(account=None):    if account != None:        get_shopping_history(account)    exit(‘Thank you so much for coming!‘)

def get_balance(account):    message = load_message(‘message.json‘)    account_balance = message[account][‘balance‘]    return account_balance

def shopping(account):    goods = {‘家电类‘: {‘电视‘: {‘小米电视‘: 3999, ‘乐视电视‘: 4299},                     ‘空调‘: {‘格力空调‘: 8999, ‘海尔空调‘: 6000},                     ‘冰箱‘: {‘美的冰箱‘: 5099, ‘西门子冰箱‘: 4599}},             ‘3C类‘: {‘电脑‘: {‘联想笔记本‘: 6888, ‘mac air‘: 8009},                     ‘手机‘: {‘小米5‘: 1999, ‘iPhone6‘: 5299}},             ‘生活类‘: {‘鞋子‘: {‘NIKE篮球鞋‘: 899, ‘安踏‘: 399},                     ‘T恤‘: {‘森马‘: 89, ‘真维斯‘: 75, ‘优衣库‘: 97}}}    while True:        for each in enumerate(goods.keys()):            print(each)  # 打印第一级菜单(第一级keys)        choose = input(‘请输入您要选择的物品分类名(输入q退出):‘).strip()        str1 = ‘‘        if choose in goods:            for each in enumerate(goods[choose].keys()):                print(each)  # 打印第二级菜单(第二级keys)                str1 += (each[1] + ‘\n‘)            str1 += ‘:‘            while True:                c_name = input("请输入您要选择的%s分类名称(输入b返回上级菜单输入q退出):\n%s"                               % (choose, str1)).strip()                str2 = ‘‘                if c_name == ‘b‘:                    break                elif c_name == ‘q‘:                    log_out(account)                elif c_name in goods[choose]:                    for each in goods[choose][c_name].keys():                        print(each, goods[choose][c_name][each])  # 打印第三级菜单(物品菜单和价格)                        str2 += (each + ‘\n‘)                    str2 += ‘:‘                    while True:                        p_name = input("请输入您要购买的物品名称(输入b返回上级菜单,q退出,h查询购物清单):\n%s"                                       % str2).strip()                        if p_name == ‘b‘:                            break                        elif p_name == ‘q‘:                            log_out(account)                        elif p_name == ‘h‘:                            database = load_message()                            if database[account][‘shopping_time‘] != None:                                get_shopping_history(account)                            else:                                print(‘您在本商城没有购物历史!‘)                        elif p_name in goods[choose][c_name]:                            while True:                                num = input(‘请输入您要购买的数量:‘).strip()                                if num.isdigit():                                    num = int(num)                                    account_balance = get_balance(account)  # 获取物品单价                                    price = (goods[choose][c_name][p_name]) * num  # 单价*数量                                    if account_balance >= price:  # 余额大于商品价格才能购买                                        set_balance(account, price)                                        print(‘您成功购买%d件商品:%s!‘ % (num, p_name))                                        set_shopping_list(account, p_name, num)  # 将所购买的物品保存到文件                                        account_balance = get_balance(account)  # 获取账户余额                                        print(‘您的账户余额为\033[31m%d\033[0m元‘ % account_balance)                                        set_shopping_time(account)                                        break  # 购买完返回上级菜单                                    else:                                        print(‘您的账户余额不足,请您及时充值!‘)                                        break  # 余额不足返回上级菜单                                else:                                    print(error_info)                        else:                            print(error_info)

else:                    print(‘输入错误,请重新输入‘)

elif choose == ‘q‘:            log_out(account)        else:            print(‘输入错误,请重新输入‘)

def get_shopping_history(account):    database = load_message()    history = database[account][‘shopping_list‘]    l1 = []    for each in history:        if each not in l1:            l1.append(each)    for each in l1:        count = history.count(each)        date = get_datetime(account)        print(‘您于%s购买了%d件%s‘ % (date, count, each))

def set_shopping_time(account):    message = load_message()    d1 = datetime.datetime.now()    d2 = d1.strftime(‘%Y-%m-%d %H:%M:%S‘)    message[account][‘shopping_time‘] = d2    save_account(message)

def get_datetime(account):    message = load_message()    data = message[account][‘shopping_time‘]    return data

def set_shopping_list(account, c_name, num):    message = load_message()    for i in range(num):        message[account][‘shopping_list‘].append(c_name)        save_account(message)

def set_balance(account, price):    message = load_message()    message[account][‘balance‘] -= price    save_account(message)

def recharge(account):    message = load_message()    while True:        num = input(‘请输入您要充值的金额:‘)        if num.isdigit():            message[account]["balance"] += int(num)            save_account(message)            account_balance = get_balance(account)            print(‘您已成功充值,您的余额为\033[32m%d\033[0m元‘ % account_balance)            return None        else:            print(‘您的输入有误,请重新输入!‘)

def main():    while True:        print(info)        commend = input(‘请输入操作指令>>>:‘)        if commend.upper() == ‘A‘:            add_user()        elif commend.upper() == ‘L‘:            login()        elif commend.upper() == ‘Q‘:            log_out()        else:            print(error_info.center(40,‘-‘))

if __name__ == "__main__":    main()
时间: 2024-10-20 13:05:49

51_work--购物车的相关文章

微信 小程序组件 加入购物车全套 one js

// pages/shop/shop.js Page({ /** * 页面的初始数据 */ data: { carts: [ { teaname: '冠军乌龙茶-150g', image: '../../imgs/car/shopping_pic_1.png', num: '1', price: '1200.00', sum: '1200.0', selected: true, cid: 1001, }, { teaname: '18年老茶-150g', image: '../../imgs/c

微信 小程序组件 加入购物车全套 one wxml

<!--pages/shop/shop.wxml--> <view wx:if="{{hasList}}"> <view class="container carts-list"> <view wx:key="isshop" wx:for="{{carts}}" class="carts-item" > <view class="carts-c

easymall项目的商品删除,前台商品分页,商品详情,购物车模块

简单的挑选一下昨天所学的重点知识模块,以备后续的复习 一.购物车模块1.1购物车两种实现的区别:!!!!!!!! 用session保存  缺点:浏览器关闭,session失效时保存在session中购物信息将会消失  后续优化,将购买的信息除了保存在session中以外,还要将购物的信息保存在cookie中,这样  就解决了浏览器关闭购买商品信息丢失的问题(但是解决不了跟换电脑信息丢失的问题)  优点:不用操作数据库,可以减少数据库访问压力 数据库中:  缺点:只用登录的用户才能添加购物车   

java web 开发 购物车功能的实现

为了方便自己以后复习,所以写的比较仔细,记录下自己的成长..... 既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好了,现在进入我们的重头戏,Servlet 点击放入购物车时,将访问Servlet 购物车代码 1 package com.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util

利用JSP编程技术实现一个简单的购物车程序

实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP中数据库编程方法: 二.实验要求 : 利用JSP编程技术实现一个简单的购物车程序,具体要求如下. (1)用JSP编写一个登录页面,登录信息中有用户名和密码,分别用两个按钮来提交和重置登录信息. (2)编写一个JSP程序来处理用户提交的登录信息,如果用户名为本小组成员的名字且密码为对应的学号时,采用J

webform之session传值(临时数据的存储)与扩展属性 --(购物车练习)

页面传值:1.QueryString传值在源页面写:Response.Redirect("Main.aspx?uid="+uid+"&pwd="+pwd);在目标页面:Request["uid"].ToString();2.Session *****特点:可以存任何东西,每个用户都会生成一个特定的Session,Session是存储在服务中的,一般默认存储20分钟,20分钟之后过期用法:在登录页面:Session["uid&qu

购物车前端开发

作为一名不在软件公司工作的软件工程师,不仅要会写后台代码(PHP/JAVA/SQL...),还是兼顾前端工程师的工作(html/javascript/css...).下面就来分享一个在实际工作项目中使用到的购物车的前端开发. 这里分享的仅仅是针对购物车的操作(产品数量的增加减少,删除购物车中产品项),假设购物车中已经放有若干产品.闲话少说,先上两张效果图. HTML代码如下:这里使用到了JQuery1.11和bootstrap3 . <!DOCTYPE html> <html> &

实用的php购物车程序

实用的php教程购物车程序以前有用过一个感觉不错,不过看了这个感觉也很好,所以介绍给需要的朋友参考一下. <?php//调用实例require_once 'cart.class.php';session_start();if(!isset($_SESSION['cart'])) { $_SESSION['cart'] = new Cart;}$cart =& $_SESSION['cart']; if( ($_SERVER['REQUEST_METHOD']=="POST"

java web 程序---购物车选商品,购买,付款

虚函数使用的时机 为什么虚函数不总是适用? 1. 虚函数有事会带来很大的消耗: 2. 虚函数不总是提供所需的行为: 3. 当我们不考虑继承当前类时,不必使用虚函数. 必须使用虚函数的情况: 1. 当你想删除一个表面上指向基类对象,实际却是指向派生类对象的指针,就需要虚析构函数. java web 程序---购物车选商品,购买,付款,布布扣,bubuko.com

Python 购物车

Python 购物车 需求 用户名和密码存放于文件中,格式为:xxx|xxx 启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 流程图 Python代码实现 1 #! /usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # 商城购物车 4 product_list = [ 5